2016年1月4日 星期一

使用tar來做資料轉移或資料備份

在Linux下面備份資料最常見的程式叫做tar,一開始是用在磁帶機上面,但由於把一堆資料夾包成一個檔案實在是很方便,所以現在也常用在硬碟上面來使用。
實作上常常會配合壓縮指令gzip等把包成一包的檔案給壓縮放在本機端,或是透過加密指令ssh把包起來的檔案傳到遠端的機器上面。下面就介紹 tar + gzip (or bzip) + ssh 如何使用


資料轉移

將原本在/home下面叫做folder的資料夾複製到/mnt下面
$ cd /home && tar cpf - folder | tar xC /mnt/

過網路用ssh加密,將原本在本機/home下面的folder資料夾複製到遠端機器的/mnt下面
$ cd /home && tar cpf - folder | ssh -c blowfish User@remoteIP tar xC /mnt/


資料備份

將原本在/home下面叫做folder的資料夾備份到/backup下面黨名叫做archive.tgz
$ cd /home && tar cpfv - folder | gzip -9 > /backup/archive.tgz

這邊在壓縮的時候用的是parallel gzip,簡稱pigz,用12個CPU核心去做壓縮
$ cd /home && tar cpfv - folder | pigz -9 -p 12 > /backup/archive.tgz

這樣類似加速壓縮指令用法,也可以直接使用
$ tar -c --use-compress-program=pigz -f archive.tgz foler
$ tar -I pbzip2 -cf archive.tgz folder

配合ssh加密,可以備份到遠端機器的/Remote資料夾下面
$ cd /home && tar cpf - folder | gzip -9 | ssh -c blowfish User@remoteIP dd of=/Remote/archive.tgz

ssh加密 + pigz平行壓縮,將資料夾備份到遠端機器/Remote資料夾下面
$ cd /home && tar cpf - folder | pigz -9 -p 12 | ssh -c blowfish User@remoteIP dd of=/Remote/archive.tgz



磁帶機

使用tar把資料備份在磁帶機(magnetic tape driver)裡面,請參考工作雜記會紅的Linux筆記。要先用mt這個指令來操作磁帶機,轉到想要讀取或是寫入的block以後,再用tar把資料給寫進去 (遠目...)

沒有留言:

張貼留言