1、在保存備份文件的目錄xxx下建立一個文件backup.sh,其內容是:
tar-zcfbin.tar.gz/bin
tar-zcfboot.tar.gz/boot
tar-zcfdev.tar.gz/dev
tar-zcfetc.tar.gz/etc
tar-zcflib32.tar.gz/lib32
tar-zcflib64.tar.gz/lib64
tar-zcflib.tar.gz/lib
tar-zcfopt.tar.gz/opt
tar-zcfsbin.tar.gz/sbin
tar-zcfselinux.tar.gz/selinux
tar-zcfsrv.tar.gz/srv
tar-zcfvar.tar.gz/var
tar-zcfusr.tar.gz/usr
2、在需要備份的時候進入到保存備份內容的目錄執行一次命令:shbackup.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
說明:
(1)、備份和恢復需要1個多小時,這個時間根據你電腦的CPU速度和硬碟轉速會有所不同。
(2)、上面備份與恢復沒有顧及/home目錄和/root目錄,因為我的系統主要是給學生做練慣用的,那兩個目錄的內容沒有意義。
在實際工作中,可能這兩個目錄才是最重要的,你可以模仿著別的目錄添加到backup.sh和restore.sh文件中去,甚至別的目錄都不備份(以便節約備份時間)就備份這兩個目錄。
B. linux怎麼設置原目錄和備份目錄
1、首先linux怎麼設置喊源原目錄和備份目錄成為root用戶。
2、其次進入文件系統的根目錄,然後進入首頁裡面。
3、姿鍵最後tar命令,這個現在經鄭冊態常使用用來打包即可。
C. 如何在Linux伺服器中備份
linux系統下使用腳本定時備份資料庫,代碼如下:
#!/bin/bash
#Setting
#設置資料庫名,資料庫登錄名,密碼,備份路徑,日誌路徑,數據文件位置,以及備份方式
#默認情況下備份方式是mysqlmp,還可以是mysqlmp,mysqldot,如果注釋掉第
#18行,則默認以tag的方式備份
#默認情況下,用root(空)登錄mysql資料庫,備份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=123456
BackupPath=/home/wang/www/backup/mysql/mysqlbackup
LogFile=/home/wang/www/backup/mysql/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqlmp
#BackupMethod=mysqlhot
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >> $LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can』t Backup!" >> $LogFile
else
case $BackupMethod in
mysqlmp*)
if [ -z $DBPasswd ]
then
mysqlmp -u $DBUser --opt $DBName > $DumpFile
else
mysqlmp -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
mysqlhot*)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhot -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
else
mysqlhot -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >/dev/null 2>&1
tar czvf $NewFile $DBPath >> $LogFile 2>&1
/etc/init.d/mysqld start >/dev/null 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
;;
esac
fi
echo "-------------------------------------------"
echo
#lftp -f lftp.sh 如果有FTP可同時上傳ftp中。
再利用crontab命令生成/var/spool/cron/root 文件:
#crontab –e
//打開一個編輯窗口,第一行會有內容格式的提示,在此輸入命令
//m h dom mon dow command
//具體意義表示:分鍾 小時 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期幾(dow)的幾點(h,24小時制)幾分(m)執行某個命令(command)
//如: 10 02 * * * /home/backup/autobackupmysql.sh (表示零晨二點十分執行備份腳本)
D. Linux如何備份文件夾常用命令有哪些
linux備份文件夾的命令是什麼?在Linux操作系統中,可用於備份文件夾的命令有兩個:cp命令、mp命令,本文為大家詳細介紹一下這兩個命令,希望能夠給你們帶來幫助。
1、mp命令
Linux mp命令用於備份文件系統。
mp為備份工具程序,可將目錄或整個文件系統備份至指定的設備,或備份成一個大文件。
語法:
mp[-cnu][-0123456789][-b
<區塊大小>][-B<區塊數目>][-d<密度>][-f<設備名稱>][-h<層級>][-s<磁帶長度>][-T<日期>][目錄或文件系統]或mp[-wW]
參數:
-0123456789 備份的層級
-b<區塊大小> 指定區塊的大小,單位為KB
-B<區塊數目> 指定備份卷冊的區塊數目
-c 修改備份磁帶預設的密度與容量
-d<密度> 設置磁帶的密度,單位為BPI
-f<設備名稱> 指定備份設備
-h<層級> 當備份層級等於或大於指定的層級時,將不備份用戶標示為nomp的文件
-n 當備份工作需要管理員介入時,向所有operator群組中的使用者發出通知
-s<磁帶長度> 備份磁帶的長度,單位為英尺
-T<日期> 指定開始備份的時間與日期
-u 備份完畢後,在/etc/mpdates中記錄備份的文件系統,層級,日期與時間等
-w 與-W類似,但僅顯示需要備份的文件
-W 顯示需要備份的文件及其最後一次備份的層級,時間與日期。
2、cp命令
Linux cp命令主要用於復制文件或目錄。
語法:
①cp [options] source dest
②cp [options] source... directory
參數:
-a 此選項通常在復制目錄時使用,它保留鏈接、文件屬性,並復制目錄下的所有內容,其作用等於dpR參數組合
-d 復制時保留鏈接,這里所說的鏈接相當於Windows系統中的快捷方式
-f 覆蓋已經存在的目標文件而不給出提示
-i 與-f選項相反,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋,回答y時目標文件將被覆蓋
-p 除復制文件的內容外,還把修改時間和訪問許可權也復制到新文件中
-r 若給出的源文件是一個目錄文件,此時將復制該目錄下所有的子目錄和文件
-l 不復制文件,只是生成鏈接文件。
E. linux下備份文件
一、使用tar命令進行備份:
tar命令本來的作用是能夠把很多文件放到一個小文件中進行歸檔,但是同時又能夠對文件進行壓縮。所以,一般情況下都採用tar進行文件整理和壓縮。
/* 把/root整個目錄進行壓縮備份 */
# tar cvzf /tmp/root_backup_1215.tar.gz /root
那麼就能夠把 /tmp/root_backup_1215.tar.gz進行存儲,比如保存到磁帶機上等。
說明: 壓縮的tar檔案通常的擴展名是 tar.gz、tgz、或者tar.bz2。前兩個擴展名一般是使用gzip命令進行壓縮的tar檔案,後一個擴展名是
基於bzip2的壓縮,因為壓縮演算法的原因,後一個壓縮更強。
同時,也很容易把已經打包壓縮的文件進行恢復:
/* 從備份文件中進行還原 */
# tar tkvzf root_backup_1215.tar.gz
二、使用cpio備份存檔:
cpio ( in/out) 命令可以建立存檔,跟tar不同之處在於,能夠處理標準的輸入輸出。顧名思義,就是復制,輸入,輸出的意思。
如果要備份root的文件,使用下列命令:
# find /root | cpio -o > /tmp/root_backup_1215.cpio
cpio能夠使用通配符將一組文件設置成標准輸入。比如,下面見所有的.tif文件建立檔案:
# find *.tif | cpio -o > /tmp/back.cpio
記住,find命令很靈活,下列命令把系統中所有的.tif文件進行歸檔:
# find / -name '*.tif' | cpio -o > /tmp/back_tif.cpio
同時,也很容易從cpio檔案中恢復文件。下列命令恢復back_tif.cpio中的文件:
# cpio -i < back_tif.cpio
和tar命令一樣,cpio命令恢復從目錄保存的文件時,取決於是相對路經還是絕對路經。
cpio命令還有一個優點是可以直接將文件發送給外部源。
例如,下列命令恢復/root主目錄中的文件,並把文件發送到SCSI磁帶機:
# find /root | cpio -o -> /dev/st0
# cpio -i < /dev/st0
F. 如何備份Linux系統
tar:
特點
1、保留許可權
2、適合備份整個目錄
3、可以專選擇不屬同的壓縮方式
4、如果選擇不壓縮還能實現增量備份,部份還原,參考man tar
A備份
如果要備份/home這個目錄,備份文件保存在/backup(可以把一個獨立的分區掛載在這里),則如下命令:
1、使用無壓縮的,速度很快
以下是引用片段:tar -cpf /backup/home.bak.tar /home
2、使用gzip壓縮的,速度一般,通常使用這個
以下是引用片段:tar -cpzf /backup/home.bak.tar.gz /home
3、使用bzip2壓縮的,速度慢,但比gzip的版本小約5%。
以下是引用片段:tar -cpjf /hackup/home.bak.tar.bz2 /home
c新建
p保留許可權
z用gzip處理
j用bzip2處理
f後緊跟文件名
也可以加上v使備份過程顯示在終端上。
B還原
以下是引用片段:tar ——overwrite -xpf /backup/home.bak.tar -C /
G. 大家怎麼備份自己的linux
由於Linux系統本身的優越性,系統的備份和還原還是比較容易的。主要表現在以下方面:
1.Linux系統所有的數據都以文件的形式存在,所以備份就是直接拷貝文件;硬碟分區也被當成文件,所以可以直接克隆硬碟數據。
2.Lnux系統自帶很多實用工具,比如tar、dd、rsync等,備份還原系統不需要購買或下載第三方軟體。
3.Lnux系統在運行時其硬碟上的文件可以直接被覆蓋,所以還原系統的時候不需要另外的引導盤。(當然,系統完全掛掉到無法啟動這種情況還是需要另外的引導盤的。)
備份Linux系統的策略有很多,比如使用dd命令直接克隆硬碟分區:
復制代碼
代碼如下:
sudo dd if=/dev/sda1 of=/dev/sdb1
或者,使用tar將硬碟上的文件打包:
復制代碼
代碼如下:
cd /sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/backup.tgz /
還原系統的命令是:
復制代碼
代碼如下:
sudo dd if=/dev/sdb1 of=/dev/sda1或tar xvpfz backup.tgz -C /
但是我最終選擇的是rsync命令。rsync是一個非常優秀的文件同步工具,從它的名字可以看出,它支持遠程同步。當然,在備份我的桌面系統時,只需要用到它的本地同步功能就行了。之所以選擇rsync,是因為它具有如下優點:
在備份還原過程中,可以保存文件原有的時間、許可權、軟硬鏈接等信息;
首次備份時,需要復制所有文件,但是再次備份或還原系統時,只需要復制修改過的文件。
關於rsync的使用方法,其主要參考文檔是man rsync,另外,rsync也可以作為守護進程運行用來建立文件備份伺服器,可以參考文檔man rsyncd.conf。
桌面系統備份實戰
對於我的桌面系統,我選擇的備份策略是使用rsync命令將硬碟上的所有文件(當然要排除/proc和/sys目錄下的內容)復制到U盤上。首先使用df -lh命令查看一下我電腦的系統佔多大空間,如下圖:
從上圖可以看出,根目錄所在的分區佔用了14G,而/boot目錄所在的分區才佔用100多M。其實Linux系統本來不用這么臃腫,只是因為我安裝了太多的軟體包,比如一整套的texlive啊什麼的,才佔用了這么多的空間。不過這都不是事兒,反正現在U盤也便宜,所以找個32G的USB 3.0的U盤來備份我這個系統,肯定是很輕松愉快的。
新U盤插到電腦上會被自動識別,使用不帶參數的mount命令可以查看U盤的設備文件和掛載路徑,使用fdisk命令了解U盤的大小和分區情況。如下圖:
整個U盤分成一個區我沒什麼意見,不過我不喜歡它的vfat文件系統,萬一碰到超過4G的巨型文件怎麼辦?so,先umount它,然後使用mkfs.ext3為它重新建立一個文件系統,如下圖:
再把U盤mount起來,掛載的路徑為/media/youxia/usb。如下圖:
然後,可以開始備份了,我備份的命令是:
復制代碼
代碼如下:
sudo rsync -Pa / /media/youxia/usb/backup_20141216 --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/mnt/* --exclude=/tmp/*
如下圖:
下圖是備份完成後的效果,可以看到整個備份過程花了59分多鍾,U盤被佔用15G,如下圖:
如果哪天系統再崩潰了的話,只需要使用sudo rsync -Pa /media/youxia/usb/backup_20141216 /即可恢復系統。
H. Linux NFS掛載,實現異地文件備份
最近做了一個文件的異地備份,採用網路掛載的方式,效果比之前用sync拷貝要方便的多。
也比之前簡單的多,其實也就是幾件事情。
首先是,需要備份的伺服器和備份的伺服器都裝上nfs。
yum install nfs-utils
有的可能還需要單獨安裝一下rpcbind
那就
yum install rpcbind
接著在被掛載伺服器編寫配置文件
vim /etc/exports
/root/work 192.168.0.3(rw,no_root_squash,no_all_squash,async)
/root/work 192.168.0.16(rw,no_root_squash,no_all_squash,async)
如像這樣,授權了本地的/root/work 目錄可以被兩個伺服器訪問胡槐,許可權是讀寫(rw)
這一部分就完成了。
接下來是需要備份的伺服器:
安裝玩nfs以後,在/mnt目錄下建一個目錄(通常都是在這個目錄下,別問為什麼?問就是通用習慣。)
cd /mnt
mkdir backserver
這就完成了目錄創建
接著也是最重要的一步
mount -t nfs 192.168.0.18:root/work/backup /mnt/backserver/
這條命令的意思是掛載192.168.0.18:root/work/backup目錄到本機的/mnt/backserver/
-t 是指定掛載類型,nfs,就是網路文件系統的簡稱。
這樣之後,本機的/mnt/backserver/存的文件實際上是存在192.168.0.18:root/work/backup目錄下的。
接下來就是一個見的文件拷貝命令。
rsync -avz /usr/local/nginx /usr/local/tomcat /mnt/backserver/09back
就把文件備份到192.168.0.18:root/work/backup目錄下了。
實現自族橡動備份就更簡單了,直接把剛才的命令寫入shell腳兆做旁本
保存為backup.sh
然後加入系統定時計劃
crontab -e
30 3 * * * sh /root/work/work/backup.sh
意思是每天三點執行一次腳本,就完成了自動異地備份。
整個過程還是很簡答的,其中涉及一個cs的模式。
需要知道:
1,是客戶端掛載到服務端。
2,服務端需要授予客戶端訪問許可權。