導航:首頁 > 操作系統 > linux實時備份

linux實時備份

發布時間:2023-03-16 13:40:39

❶ (十六)linux文件備份

1.Linux系統需要備份的數據

/root/目錄:

/home/目錄:

/var/spool/mail/目錄:

/etc/目錄:

其他目錄:

數據備份的原則: 不要把雞蛋放在同一個籃子里

2.安裝服務的數據

apache需要備份的數據

配置文件

網頁主目錄

日誌文件

mysql需要備份的數據

源碼包安裝的mysql:/usr/local/mysqld/data/

RPM包安裝的mysql:/var/lib/mysql/

3.備份策略

完全備份: 完全備份就是指把所有需要備份的數據全部備份,當然完全備份可以備份整塊硬碟,整個分區或某個具體的記錄(需要更大的硬碟空間和時間)

增量備份: 第一天完全備份,第二天備份當天新增數據,第三天備份當天數據,即每次都是備份新增數據,每次備份後數據要進行壓縮(需要較小的硬碟空間恢復麻煩)

差異備份: 第一天完全備份,第二天備份當天新增數據,第三天備份相比原始備份新增數據,即每次都是備份與原始數據相比的新增數據(比完全備份需要的空間小一點,比增量備份恢復容易一點)

1.mp命令

mp [選項] 備份之後的文件名 原文件或目錄

選項

-level                    就是我們說的0-9十個備份級別

-f 文件名              指定備份之後的文件名

-u                          備份成功之後,把備份時間記錄在/etc/mpdates文件

-v                          顯示備份過程中更多的輸出信息

-j                          調用bzib庫壓縮備份文件,其實就是把備份文件壓縮為.bz2格式

-W                        顯示允許被mp的分區的備份等級及備份時間

備份分區實例

mp -0uj -f /root/boot.bak.bz2 /boot/        備份命令,先執行一次完全備份,並壓縮和更新備份時間

cat /etc/mpdates                查看備份時間文件

cp install.log /boot/                復制日誌文件到boot分區

mp -luj -f /root/boot.bak1.bz2              增量備份/boot分區,並壓縮

mp -W                  查詢分區的備份時間及備份級別的

備份文件或目錄實例

mp -0j /root/etc.mp.bz2 /etc/        完全備份/etc/目錄,只能使用0級別進行完全備份,而不再支持增量備份

注意: mp只能針對分區做增量備份,對文件或目錄不能進行增量備份

2.restore命令

restore [模式選項] [選項]

模式選項:restore命令常用的模式有一下四種,這四個模式不能混用

-C            比較備份數據和實際數據的變化

-i             進入交互模式,手工選擇需要恢復的文件

-t             查看模式,用於查看備份文件中擁有哪些數據

-r             還原模式,用於數據還原

選項

-f            指定備份文件的文件名

比較備份數據和實際數據的變化

mv /boot/vmlinuz-2.3.32--279.el6.i686 /boot/vmlinuz-2.6.32-279.el6.i686.bak

把boot目錄中內核鏡像文件改個名字

restore -C -f /root/boot.bak.bz2

restore發現內核鏡像文件丟失

查看模式

restore -t -f boot.bak.bz2

還原模式

還原boot.bak.bz2分區備份

mkdir boot.test

cd boot.test/

先還原完全備份的數據

restore -r -f /root/boot.bak.bz2

再恢復增量備份的數據

restore -r -f /root/boot.bak1.bz2

還原/etc/目錄的備份etc.mp.bz2

restore -r -f etc.mp.bz2

還原etc.mp.bz2備份

❷ LINUX 自動備份怎麼實現

首先我在/root/backup 目錄下建立一個文件夾,

#mkdir /root/backup/mysqlbackup

以後在每天五點鍾,就會有一個文件保存在這里.

接著新建文件

#vim /root/mysqlautobak

輸入:

filename=` date +%Y%m%d `

mysqlmp --all-databases -uroot -p(mysql密碼)> /root/backup/mysqlbackup/mysql$file.sql保存退出!

讓它可以執行

#chomd +X /root/mysqlautobak

接著開始完crontab了

#vi /etc/crontab添加一行01 5 * * * root /root/mysqlautobak

保存退出.

重新啟動你的crond服務進程

# /etc/rc.d/init.d/crond restart

===============================================================================

hp unix 自動全備份腳本(shell)

說明:每天夜裡10點自動備份並且壓縮,保留2天備份,在備份完當天後刪除前天的備份。在一切執行之後,發郵件通知,郵件內容有刪除文件和備份文件名稱及備份開始時間,結束時間。
使用方法:nohup backup.sh &

filename:backup.sh
reportlist=""
while [ 1 ]
do
hou=`date +%H`
backdate=`date +%Y%m%d`
if [ $hou -eq 22 ]
then
begintime=`date +%Y-%m-%d:%H-%M`
cd /data_log2/for_test
log_txt=`ls -al -crt log.txt | awk '{print $9}' | wc -l`
if [ $log_txt -gt 0 ]
then
mv log.txt log.txt.bak
fi

exp owner=user file=/data_log2/for_test/tmp_now.dmp
compress /data_log2/for_test/tmp_now.dmp
mv tmp_now.dmp.Z report_$backdate.dmp.Z
echo "---------report database backuped----------- ">> log.txt
echo "filename="report_$backdate.dmp.Z >>log.txt

delfile=`ls -al -crt *.Z | awk '{print $9}' | head -1`
count=`ls -al -crt *.Z | awk '{print $9}' | wc -l`

if [ $count -gt 2 ]
then
rm `ls -al -crt *.Z | awk '{print $9}' | head -1`
echo "----------- old backup deleted ---------" >> log.txt
echo "the deleted backup filename="$delfile >> log.txt
fi

echo "-----------------beigin time----------------" >> log.txt
echo $begintime >> log.txt
echo "-----------------end time----------------" >> log.txt
echo `date +%Y-%m-%d:%H-%M` >> log.txt

rm log.txt.bak

mailx -s "10.203.116.23 daily database backup" -r ")" $reportlist < log.txt
fi

sleep 3600
done

======================================================================================
1 給我自己的伺服器寫的一段自動備份的shell
#!/bin/bash

#指定要備份的系統目錄
SYSTEM_DIR=/home

#指定要備份的目錄MAIL_DIR=mailbox #郵件目錄
WEBSITE_DIR=www/html #WEB目錄
DATABASE_DIR=databases #資料庫目錄

#指定備份文件的前綴
MAIL_PREFIX=mail
WEBSITE_PREFIX=web
DATABASE_PREFIX=database

#有朋友的一台WIN2K伺服器,我在上面開了ftp,把備份文件傳到他的伺服器上,相當於我實現了個雙機備份

#ftp伺服器的IP
FTP_SERV=211.144.155.111
#ftp用戶名
FTP_USER=username
#ftp密碼
FTP_PASS=12345678

#備份文件存放目錄
BACKUP_DIR=/home/backup

#格式化一下日期,備份文件時用日期來做文件名的
DATE=`date +%Y%m%d`

#開始備份郵件
if [ -f ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ]; then #如果當天的郵件已經備份,那沒跳過
echo `date +%Y-%m-%d`'s mail backup file is existing
else #如果沒有備份,那麼用tar命令來打包郵件目錄
tar -czvf ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${MAIL_DIR}
fi

#開始備份網站目錄,備份過程同上
if [ -f ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ]; then
echo `date +%Y-%m-%d`'s webebsite backup file is existing
else
tar -czvf ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${WEBSITE_DIR}
fi

#開始備份資料庫目錄,備份過程同上
if [ -f ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ]; then
echo `date +%Y-%m-%d`'s database backup file is existing
else
tar -czvf ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${DATABASE_DIR}
fi

#開始把備份文件傳輸到另一台伺服器上
ftp -i -n $FTP_SERV <<AUTO_FTP
user $FTP_USER $FTP_PASS
passive
binary
put ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ${MAIL_PREFIX}${DATE}.tar.gz
put ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ${WEBSITE_PREFIX}${DATE}.tar.gz
put ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ${DATABASE_PREFIX}${DATE}.tar.gz
AUTO_FTP

別忘了,還有最後一步,就是在crontab里加上個任務,這樣你就不用每次備份都一步步地敲那些瑣碎的命令了。

我的網站,希望大家多多交流

===================================
linux下:

MySQL :: Linux 下自動備份資料庫的 shell 腳本
Linux 伺服器上的程序每天都在更新 MySQL 資料庫,於是就想起寫一個 shell 腳本,結合 crontab,定時備份資料庫。其實非常簡單,主要就是使用 MySQL 自帶的 mysqlmp 命令。

腳本內容如下:
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"

# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`

# TODO
$BIN_DIR/mysqlmp --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz

然後使用將此腳本加到 /etc/crontab 定時任務中:

01 5 * * 0 mysql /home/mysql/backup.sh

好了,每周日凌晨 5:01 系統就會自動運行 backup.sh 文件備份 MySQL 資料庫了。

/home/www/inc/back

❸ Linux備份與恢復

實體機無法做快照、如果出現系統異常或者數據損壞、後果嚴重 、要重做系統、還會造成數據丟失、所以我們可以使用備份和恢復技術。
Linux的備份和恢復很簡單、有兩種方式:
1、把需要的文件(或者分區)用TAR打包就行、下次需要恢復的時候、再解壓開覆蓋即可
2、使用mp和restore命令
如果linux上沒有mp和restore指令、需要先安裝

基本介紹
mp支持分卷和增量備份
通過mp命令在配合crontab可以實現無人值守備份

基本介紹
restore命令用來恢復已備份的文件、可以從mp生成的備份文件中恢復原文件
基本語法

❹ Linux系統備份

分類: 電腦/網路 >> 操作系統/系統故障
問題描述:

在Linux中如何備份整個文件系統呢?有沒有類似Ghost那樣的工具可以將整個文件系統備份下來,需要時可以方便的恢復呢?

我需要在多個操作系統漸進行切換,種種原因又不能用VMware製作虛擬機,所以在多個操作系統間切換變得很麻煩,總不可能頻繁的安裝操作系統吧。所以不知道有沒有類似Ghost這樣的工具,可以把整個Linux或Unix操作系統備份下來。

解析:

如果是我的話,我會選擇軟體來進行系統備份。

下載地址是
2.cddc.vt.e/pub/linux/utils/press/xtar-4.4.6.tar.gz

他叫Xtar 是桌面環境下查看和處理tar的工具。tar工具是Unix備份文件的工具,Linux繼承了它。tar幾乎可以工作於任何環境中,所以Linux老用戶都信賴它。但是tar是一個命令行的工具,沒有圖形界面。tar命令的參數非常多,常用的包括30多個,初學者往往不易掌握。Xtar是一個圖形化的tar工具。Xtar全部兼容tar命令,可以在桌面環境下完成打包整個目錄樹的任務,這使得它特別適合用於備份。Xtar與文件系統無關,可以使用在ext2、ext3、JFS、Reiser和其它文件系統上,支持各種備份介質:軟盤、光碟、可重寫的光碟、JazZip、磁帶等。

❺ Linux下數據備份命令scp、rsync和後台運行

scp和rsync 均可實現文件的復制,但相比較,scp佔用系統資源較小,rsync速度較快。當小文件眾多時,rsync會導致硬碟I/O非常高,而scp基本不影響系統正常使用。可根據需要這倆選其一實現文件復制。

scp 是secure 的縮寫,scp是Linux系統下基於ssh登錄進行安全的遠程文件拷貝命令。
可以實現本地文件復制到遠程伺服器,也可以將遠程文件復制到本地。

rsync 是remote sync的縮寫。使用rsync備份數據時,不會直接覆蓋以前的數據(如果數據已經存在),而是先判斷已存在的數據和新數據的差異(默認規則是文件大小或修改時間有差異),只有數據不相同時才會把不相同的部分覆蓋。在僅作增量數據的時比scp靈活。

一般CentOS默認安裝rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安裝。

單個冒號和雙冒號的區別 :使用rsync在遠程傳輸數據前,是需要進行登陸認證的,這個過程可使用ssh協議也可以使用rsync協議完成。單冒號(:)使用的是ssh協議;雙冒號(::)使用的是rsync協議。

默認情況下,rsync只確保源文件的所有內容(明確排除的文件除外)都復制到目標目錄。它不會使兩個目錄保持不同,並且不會刪除文件。如果要使目標目錄成為源目錄的鏡像副本,則使用--delete選項。可刪除只存在目標目錄,不存在於源目錄的文件。

增量備份算是一個經常使用的場景了。兩台伺服器之間進行文件定期備份,無需所有文件都一遍,僅復制有變動的文件。

具體做法是,第一次同步是全量備份,所有文件在基準目錄裡面同步一份。以後每一次同步都是增量備份,只同步源目錄與基準目錄之間有變動的部分,將這部分保存在一個新的目標目錄。這個新的目標目錄之中,也是包含所有文件,但實際上,只有那些變動過的文件是存在於該目錄,其他沒有變動的文件都是指向基準目錄文件的硬鏈接。

--link-dest 參數用來指定同步時的基準目錄。

上面命令中, --link-dest 參數指定基準目錄 /compare/path ,然後源目錄 /source/path 跟基準目錄進行比較,找出變動的文件,將它們拷貝到目標目錄 /target/path 。那些沒變動的文件則會生成硬鏈接。這個命令的第一次備份時是全量備份,後面就都是增量備份了。

一般伺服器之間復制文件都比較大,為防止誤操作,最好在後台運行。但因為需要和遠程伺服器之間的ssh通訊多是需要密碼的,所以不能直接使用nohup 放置於後台。無論是scp還是rsync都可操作如下:

後台和前台任務的切換

scp不支持斷點續傳,掛起scp進程可能導致數據缺失。傾向於使用rsync。

如果有其他任務需要使用nohup後台運行,但執行時卻忘記了使用nohup,也可參照此方法進行設置。

參考:1. Linux之scp命令及後台運行scp

❻ linux怎麼備份系統

首先切換到root用戶下,執行sudo su
並執行cd / 切到跟路徑下,再按下面執行操作
執行命令df -h
查看分區磁碟情況,一些沒有作用的分區可以不用備份的。比如說mnt,一般都是掛載的光碟機文件,還有media等。
使用命令 tar cvpzf backup.tgz --exclude=/data --exclude=/datafile /
還是要根據自己的實際情況來選擇舍棄,先分析一下你的各分區大小,在看看備份的路徑分區大小夠不夠。我這里是將不用的datafile和data分區舍棄了,備份的文件名backup.tgz存放路徑是「/」路徑(因為足夠大,就索性全備了)
ps:「cvpfz」是tar的選項,意思是「創建檔案文件」、「保持許可權」(保留所有東西原來的許可權)、「使用gzip來減小文件尺寸」。
執行命令後,linux就立即開始了備份作業,備份過程截圖備份完成後有如下的一個警告提示,應該是不影響的。
我們來看看備份的最終成果吧,在「/」路徑下執行命令:ls -l
可以看到備份的文件backup.tgz了
也可以用命令df -h看看/根目錄分區的使用狀態,比未備份前少了8%,約7G左右

❼ 如何在Linux伺服器中實現數據實時同步及備份

科技時代,任何行業都離不開數據的分析以及統籌,如果掌握了最關鍵的數據及技術,那成功就指日可待,所以數據對於一個企業來說,就是最無形的財富,而一個企業的數據基本都有伺服器保存及管理著,如何保證數據安全,實現數據同步及備份?誠愷科技小編就同大家一起來看看在Linux伺服器中利用rsync配合inotify實現數據實時同步及備份的方法。
rsync:可以鏡像保存整個目錄樹和文件系統。可以很容易做到保持原來文件的許可權、時間、軟硬鏈接等等。第一次同步時 rsync 會復制全部內容,但在下一次只傳輸修改過的文件。
方案:起初用rsync進行數據備份是利用計劃任務,定時執行一下命令實現rsync的同步,但最近開發這邊修改比較頻繁,看來需要實時同步備份來完善備份機制!所以需要利用inotify觸發器來改善!達到一旦指定的位置有了新的變動就將其同步!
環境:
CentOS 6.4 64位
rsync-3.0.9
inotify-tools-3.14

說明:
10.10.1.6 (rsync+inotify)----------網站程序(/data0/htdocs/)
10.10.1.9 (rsync)------------------網站程序備份(/data0/htdocs/)
目的:
實現10.10.1.6的/data0/htdocs/目錄下發生任何變動都將實時同步到10.10.1.9的/data0/htdocs/上(另,這兩台都跑有keepalived+nginx,來實現出現故障自動切換的容災,詳細配置會在後面補上)
一、web伺服器10.10.1.6 (rsync+inotify)
1、准備軟體包
2、安裝Rsync
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
建立密碼認證文件
[root@ftp ~]# echo "111111">/etc/rsyncd/rsyncd.secrets建立密碼認證文件
*其中111111可以自己設置密碼,rsyncd.secrets名字也可以自己設置;
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
# chmod 600 /etc/rsyncd/rsyncd.secrets
3、安裝inotify
1)、1234 tar-zxvf inotify-tools-3.14.tar.gz
2)、cdinotify-tools-3.14
3)、./configure--prefix=/usr/local/inotify
4)、make;makeinstall
4、創建rsync復制腳本
此項功能主要是將ftp端的目錄/data0/htdocs/里的內容,如果修改了(無論是添加、修改、刪除文件)能夠通過inotify監控到,並通過rsync實時的同步給10.10.1.9的/data0/htdocs里,下面是通過shell腳本實現的。
[root@web ~]# vim /root/shell/rsync.sh

[root@web ~]# chmod u+x /root/shell/rsync.sh
[root@web ~]# setsid /root/shell/rsync.sh &
#後台運行腳本,關閉shell終端繼續後台運行
rsync.sh腳本加入開機啟動項
# echo "/root/shell/rsync.sh" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
二、備份伺服器10.10.1.9(rsync)
1、准備工作
創建備份目錄:
# mkdir /data0/htdocs
2、安裝rsync(備份主機只安裝rsync)
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
3、建立用戶與密碼認證文件
[root@backup ~]# echo "root:111111" > /etc/ rsyncd/rsyncd.secrets
[root@backup ~]# less /etc/rsyncd/rsyncd.secrets
root:111111
注意:
請記住,在10.10.1.6端建立的密碼文件,只有密碼,沒有用戶名;而在10.10.1.9里建立的密碼文件,用戶名與密碼都有。
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
#chmod 600 /etc/rsyncd/rsyncd.secrets
4、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd/rsyncd.conf

啟動rsync服務
# /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
# ps -ef |grep rsync
Rsync服務加入開機啟動項
# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
完成,其實這個時候數據已經同步了!
測試一下:
由於/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/為例

主機名可以區別是兩台機器,裡面的內容完全一直,連文件的屬性都一樣
再對裡面修改一下試試,創建一個文件,然後刪除user目錄試試

❽ Linux裡面系統如何備份

對於備份和恢復來說,Linux提供了諸如tar、cpio、 mp等工具來實現。
下面是一個簡單的使用該工具進行數據備份的例子:
tar czvf - /root/code > /tmp/code_bak.tgz (將/root/code目錄下的所有程序文件打包備份到/tmp/code_bak.tgz)
tar xzvf /tmp/code_bak.tgz /root/code (將備份的目錄文件恢復到指定目錄)

❾ linux系統如何備份

做法是:

1、在保存備份文件的目錄 xxx 下建立一個文件 backup.sh,其內容是:

tar -zcf bin.tar.gz /bin

tar -zcf boot.tar.gz /boot

tar -zcf dev.tar.gz /dev

tar -zcf etc.tar.gz /etc

tar -zcf lib32.tar.gz /lib32

tar -zcf lib64.tar.gz /lib64

tar -zcf lib.tar.gz /lib

tar -zcf opt.tar.gz /opt

tar -zcf sbin.tar.gz /sbin

tar -zcf selinux.tar.gz /selinux

tar -zcf srv.tar.gz /srv

tar -zcf var.tar.gz /var

tar -zcf usr.tar.gz /usr

2、在需要備份的時候進入到保存備份內容的目錄執行一次命令: sh backup.sh

3、在保存備份文件的目錄 xxx 下建立一個叫 restore.sh 的文件,其內容如下:

tar -zxf /mnt/xxx/bin.tar.gz

tar -zxf /mnt/xxx/boot.tar.gz

tar -zxf /mnt/xxx/dev.tar.gz

tar -zxf /mnt/xxx/etc.tar.gz

tar -zxf /mnt/xxx/lib32.tar.gz

tar -zxf /mnt/xxx/lib64.tar.gz

tar -zxf /mnt/xxx/lib.tar.gz

tar -zxf /mnt/xxx/opt.tar.gz

tar -zxf /mnt/xxx/sbin.tar.gz

tar -zxf /mnt/xxx/selinux.tar.gz

tar -zxf /mnt/xxx/srv.tar.gz

tar -zxf /mnt/xxx/var.tar.gz

tar -zxf /mnt/xxx/usr.tar.gz

4、如果需要系統恢復,我就用光碟啟動,mount 原來的根目錄為 yyy,接著 mount 保存備份文件的目錄為 xxx,接著進入到 /mnt/yyy,並在此下達命令: sh /mnt/xxx/restore.sh

閱讀全文

與linux實時備份相關的資料

熱點內容
淮南程序員接私活項目 瀏覽:480
怎樣加密自己的密碼 瀏覽:521
安卓怎麼關許可權保護隱私 瀏覽:390
海牛微視app怎麼用 瀏覽:70
單片機怎樣選變壓器 瀏覽:829
癌症pdf 瀏覽:725
雲伺服器鏡像批量部署環境 瀏覽:683
安卓手機瀏覽器能訪問什麼網站 瀏覽:254
找不到網站的伺服器ip地址該如何解決 瀏覽:743
演算法十個數降序排列 瀏覽:95
基於單片機的老年人健康監測系統 瀏覽:706
python入門經典pdf下載 瀏覽:17
東芝變頻2p空調壓縮機 瀏覽:227
自家wifi怎麼能加密 瀏覽:644
紅米k40加密門禁卡 瀏覽:847
什麼樣的源碼好看 瀏覽:156
手機主伺服器有什麼用 瀏覽:612
程序編寫命令 瀏覽:597
android發送心跳包 瀏覽:385
指標源碼和原理 瀏覽:700