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 不復制文件,只是生成鏈接文件。
⑵ 如何在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下備份一個目錄下所有文件及目錄,應該用什麼命令
1、bzip2 filename
//文件即會被壓縮,並被保存為 filename.bz2。
2、gzip filename
//文件即會被壓縮,並被保存為 filename.gz
3、tar 這個命令把大量的文件和目錄打包成一個文件
-c 創建一個新歸檔
-f 當與-c 選項一起使用時,創建的tar 文件使用該選項指定的文件名;當與-x選項一起使用時,則解除該選項指定的歸檔
-t 顯示包括在tar 文件中的文件列表
-v 顯示文件的歸檔進度
-x 從歸檔中抽取文件
-z 使用gzip壓縮tar 文件
-j 使用bzip2壓縮tar 文件
(3)linux本地文件夾同步備份擴展閱讀:
要創建一個使用tar和bzip2來歸檔壓縮的文件,使用-j選項: tar -cjvf filename.tbz file
如果使用bunzip2 命令解壓filename.tbz文件,則filename.tbz會被刪除,以filename.tar代替。
要擴展並解除歸檔bzip.tar文件,輸入命令: tar -xjvf filename.tbz
要創建一個用tar 和gzip歸檔並壓縮的文件,使用-z選項: tar -czvf filename.tgz file
如果使用gunzip 命令解壓filename.tgz文件,則filename.tgz會被刪除,以filename.tar代替。
⑷ linux下備份一個目錄下所有文件及目錄,應該用什麼命令
這里教大家如何用find、xargs和tar命令完成上面的功能。
建立一個測試環境,新建幾個文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png a.php b.js c.css
接下來,通過find命令找出指定後綴的文件,為了支持多個後綴文件,find命令用到了正則匹配
# find . -type f -regex ".*.(php|js|css)"
./b.js
./a.php
./c.css
-regex後面的參數看起來很復雜,其實很簡單,我來做個解釋,雙引號就不需要解釋了吧
.*.(php|js|css) 簡化一下就是.*.(php|js|css),其實就是對.()|做了下轉義而已,開頭的.*匹配除換行符外的任意字元(這個懂正則表達式的應該都明白)
找出文件後,就是如何備份這些文件了,tar需要指定源文件,怎麼獲取find出來的這些文件,並傳給tar呢,xargs的作用就來了。看到下面xargs輸出的是什麼了吧,這個正是tar需要的。
# find . -type f -regex ".*.(php|js|css)" | xargs
./b.js ./a.php ./c.css
# find . -type f -regex ".*.(php|js|css)" | xargs tar czvf test.tar.gz
./b.js
./a.php
./c.css
下面看看文件是否備份成功了
# tar tzvf test.tar.gz
-rw-r--r-- root/root 0 2014-03-14 10:38 ./b.js
-rw-r--r-- root/root 0 2014-03-14 10:37 ./a.php
-rw-r--r-- root/root 0 2014-03-14 10:38 ./c.css
⑸ linux下備份一個目錄下所有文件及目錄,應該用什麼命令
可以使用cp -rdir(目錄)這個命令。cp是復制命令。-r 遞歸處理,指定目錄下的文件和子目回錄一並處答理。
通過shh連接上Linux主機,然後輸入「cp -r www/root/」,回車即可備份root文件夾。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和資料庫的操作系統。
⑹ linux下備份一個目錄下所有文件及目錄,應該用什麼命令
這里教大家如何用find、xargs和tar命令完成上面的功能。
建立一個測試環境,新建幾個文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png a.php b.js c.css
接下來,通過find命令找出指定後綴的文件,為了支持多個後綴文件,find命令用到了正則匹配
# find . -type f -regex ".*.(php|js|css)"
./b.js
./a.php
./c.css
-regex後面的參數看起來很復雜,其實很簡單,我來做個解釋,雙引號就不需要解釋了吧
.*.(php|js|css) 簡化一下就是.*.(php|js|css),其實就是對.()|做了下轉義而已,開頭的.*匹配除換行符外的任意字元(這個懂正則表達式的應該都明白)
找出文件後,就是如何備份這些文件了,tar需要指定源文件,怎麼獲取find出來的這些文件,並傳給tar呢,xargs的作用就來了。看到下面xargs輸出的是什麼了吧,這個正是tar需要的。
# find . -type f -regex ".*.(php|js|css)" | xargs
./b.js ./a.php ./c.css
# find . -type f -regex ".*.(php|js|css)" | xargs tar czvf test.tar.gz
./b.js
./a.php
./c.css
下面看看文件是否備份成功了
# tar tzvf test.tar.gz
-rw-r--r-- root/root 0 2014-03-14 10:38 ./b.js
-rw-r--r-- root/root 0 2014-03-14 10:37 ./a.php
-rw-r--r-- root/root 0 2014-03-14 10:38 ./c.css
⑺ Linux常用備份方法
用於備份的Tar
備份工具Tar是以前備份文件的可靠方法,幾乎可以工作於任何環境中,Linux老用戶一般都信賴它。 Linux中以.tar結尾的文件都是用tar創建的。它的使用超出了單純的備份,可用來把許多不同文件放到一起組成一個易於分開的文件。tar是從Tape ARchiver備份工具起步的。包含在Linux中的GNU tar工具簡便易用,包含了一個用來壓縮的選項,且支持不斷增加的備份。tar是一個命令行的工具,沒有圖形界面。使用Konsole或Kvt打開一個終端窗口,接下來是一個簡單的備份命令: $tar cvf - /home > /temp/backup.tar
這個命令在/tmp目錄中創建一個backup.tar的文件,/home目錄中所有內容都包含在其中。接下來可以把tar文件拷貝到備份磁碟中。使用簡單備份時,如果要使用壓縮功能,改為下面命令: $tar czvf - /home > /tmp/backup.tgz
上面擴展名. tgz指出這是一個壓縮文件。下一個例子可以用來直接備份到一個安裝好的Jaz驅動器中,但這樣做要確定有足夠的空間: $tar czvf /mnt/jaz/backup.tgz - /home
對於一個磁帶驅動器,使用設備名稱: $tar czvf /dev/st0/backup.tgz - /home
如果有一個備份非常大,可以使用多卷選項。但是,這樣做就不能使用壓縮。當第一個磁碟或磁帶填滿後,tar將提示插入另一張: $tar cvMf /dev/st0/5mar2000.tar -home
要恢復備份使用下面的命令,以Jaz磁碟為例: $tar xzvf /mnt/jaz/5mar2000.tgz /home
表1列出了tar主要功能參數。此外還有很多可選參數,本文不再詳述。
表1備份工具tar可以用crontab工具設置成基於時間的有規律地運行。例如,每晚2點把/home目錄備份到SCSI磁帶驅動器中,只要將下面語句添加到root的crontab中即可: 00 02 * * * tar cvf /dev/st0/homefiles.tar - /home
用於備份的Cpio
GNU cpio工具像tar一樣從命令提示行啟動程序。與tar相比cpio更復雜,但是也更為可靠。因為如果一個tar文件中某處有一個壞塊,就不能對備份文件的其它部分進行訪問,而使用cpio,只有壞塊不能被訪問。cpio創建一個稱為-out mode的備份,備份存檔中包含了文件和所有者、時間及訪問許可等信息。cpio需要一個假定要備份的文件列表。創建列表的一個最方便的方法就是使用ls命令。例如,要把/home目錄備份到SCSI磁帶設備中,輸入下面的命令: $ls /home | cpio -o > /dev/st0
也可以使用find命令。它包括許多選項可以用來消減被存檔文件的數量。例如,下面的命令對所有在上一個2 4小時內修改過的文件進行存檔: $find /home -mtime 1 -type f -print | cpio -o > /dev/st0
- in模式把文件從備份存檔中解出來。下面的命令會恢復前兩個備份例子中的所有文件: $cpio -i < /dev/st0
你也可以對cpio的備份進行計劃,用crontab工具設置成基於任何時間的有規律地運行。例如,要在每晚2點把/ home目錄備份到SCSI磁帶驅動器中,把下面的語句添加到root的crontab文件中即可: 00 02 * * * ls /home | cpio -o > /dev/st0
⑻ linux 文件備份命令
Linux備份命令詳解
(2008-11-0807:58:34)
轉載
標簽:
雜談
分類:學習
vmp的常用方式:
1). 對於文件需要在只讀方式下備份的文件,建議進入單用戶:
# init s 或
>>>boot–fl s
2). 對操作系統各MOUNT點進行備份
3). # mount -a
# vmp -0uvf/dev/ntape/tape0_d1 /
# vmp -0uvf/dev/ntape/tape0_d1 /usr
# vmp -0uf/dev/ntape/tape0_d1 /var (如過var區是做為單獨的文件子集也需要單獨備份)
-f : 設備文件名 ( 比如 DDS tape driver)
-u : 更新/etc/vmpdates,用於增量備份
- v: 備份內容詳細列表
- 0 : 零級備份
/dev/ntape0_d1: 系統執行完畢後,磁帶停止在當前位置,可繼續往下備份
/;/usr;/var : 各文件系統的MOUNT點
4). 其他說明
a、該命令方式對系統當前mounted的文件系統進行備份
b、備份級別說明
備份級別有0~9個級別,如果當前系統採用零級備份,當下一次採用5級備份時,系統僅將會對有變化的文件進行備份。
系統恢復常用命令--vrestore
恢復整個操作系統各文件系統的內容:
1). 准備工作:
a. 准備一個可用的新硬碟,容量大小和原盤基本相符。
b. 准備一套與備份系統相同版本的安裝光碟
2). 用操作系統安裝光碟啟動到安裝界面,調整新硬碟各分區大小後進入單用戶。
* >>>bootdqa0 (dqa0 為SRM下的光碟機設備號)
* 按正常安裝步驟選著OK—》NEXT—》NEXT---》NEXT—NEXT---NEXT-CUSTOMIZEFILE SYSSTEM LAYOUT(調整分區大小)--》QUIT OR SHELL WINDOW。
* 注意:在調整新硬碟分區時一定要在引導塊上選擇ADVFS,並定義B區為SWAP
3). 創建操作系統的各文件系統。(如系統新盤為 dsk0)
mkfdmn/dev/disk/dsk0a root_temp (創建文件系統域)
mkfset root_temproot (創建文件子集)
mkfdmn/dev/disk/dsk0g usr_temp
mkfset usr_temp usr
mkfset usr_temp var(條件:在原系統中VAR為單獨的文件子集)
註:在高級文件系統創建過程中,域名只要不和原來沖突,命名是任意的。但對文件子集命名方面最好和原來一致。(以避免不必要的修改工作)
4). 操作系統各文件系統的的恢復
#mount root_temp#root/mnt
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1 (恢復該文件系統上所有數據)
#cd /
#umount /mnt
#mount usr_temp#usr/mnt
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1
#cd /
#umount /mnt
#mount usr_temp#var/mnt (條件:VAR為單獨的文件子集)
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1
-f: 設備文件名
-x: 恢復磁帶當前備份數據段上的所有數據
- v: 備份內容詳細列表
5). 如果恢復硬碟與備份盤在系統中設備名的不同(如:備份盤為dsk0,恢復盤為dsk1)需要做以下修改:
#mount root_temp#root/mnt
#cd /mnt/etc/fdmns
#cd root_domain
#rm *
#ln –s/dev/disk/dsk1a
#cd ..
#cd usr_domain
#rm *
#ln –s/dev/disk/dsk1g
#cd /mnt/etc
#vi sysconfigtab
將swapdevice=/dev/disk/dsk0b修改為swapdevice=/dev/disk/dsk1b
6). SHUTDOWN系統,在SRM下,用新盤引導
恢復文件系統中某些目錄或文件:
#vrestore –if/dev/ntape/tape0_d1
(/) add vmunixgenvmunix (在系統根區備份中只恢復vmunix和genvmunix兩個文件)
(/) extract (開始恢復)
對個別或若干個目錄單獨恢復同上
操作磁帶機需要注意的幾個問題
磁帶機在備份過程中是分段記錄的,在恢復時一定考慮磁帶的位置問題。按上述備份例子,在數據帶上一共創建了3段獨立的數據備份信息(/;/usr;/var)。以下命令可調整數據帶的位置。
#mt rewind (磁帶機回卷磁帶到初始位置)
需要單獨恢復/usr文件系統或個別文件信息:
#mt rewind
#mt fsf 1 ( 跳過第一個數據備份段 / )
如果以上需求發生在/var上則:
#mt rewind (跳過前兩個數據備份段)
#mt fsf 2
⑼ 大家怎麼備份自己的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 /即可恢復系統。