作者 主題: System backup: tar,cpio,dump, dd  (閱讀 7670 次)

0 會員 與 1 訪客 正在閱讀本文。

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
System backup: tar,cpio,dump, dd
« 於: 2004-08-18 23:51 »
tar 的整理連結 keyword: 1.111.5 Maintain an effective data backup strategy
http://phorum.study-area.org/viewtopic.php?t=26270&highlight=%C0%C9%AE%D7+usr+etc+bin

#tar -cvf home.tar /home
#tar -xvf home.tar [ file to extract ]
#tar -tvf home.tar

#tar tf /dev/st0
#tar xvf /dev/st0
#tar xvf /dev/st0 /etc/hosts

regarding to /dev/st0
#mt -f /dev/nst0 fsf2 #forwar 2 tarfile to the third tar
#mt -f /dev/st0 offline #reject the tape
#ls -l /dev/tape #view the real instrument of /dev/tape
#ln -s /dev/st0 /dev/tape



#tar cvzf /dev/fd0 -V "root home dir" /root
#tar cvzf /dev/hdd -V "root home dir" /root



#tar -zcvf home.tar.gz /home  #use gzip to zip
#tar -jcvf home.tar.bz2 /home #use bzip2 to zip

#tar -Pcvf home.tar /home #use the absolute path, if you extract the contents may be overwrite the now directory

#tar -cvfM /dev/fd0 1440 /home #cut the file to fix the floppy



------------------------------------------------------------

incremental backup =level 2(Mon),3(Tue),4(We),5(Thu)
differential backup =level 1 (2nd 3rd 4th Fri)
system backup ==level 0 (1st 5th Fri)


incremental :
#tar -N $(date -d "yesterday" +"%Y-%m-%d")

differential :
#tar -N $(date -d "last Friday" +"%Y-%m-%d")

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
cpio
« 回覆 #1 於: 2004-08-18 23:53 »
#find dir1|cpio -ov > dir1.cpio
#find /home | cpio -ov > /dev/st0

#find /home > home.list
#cpio -ov < home.list > home.cpio

#cpio -ov < dir.lst > dir cpio

#cpio -iv < dir.cpio
#cpio -itv <dir.cpio #check the content


吃 pathname
吐到 營幕

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
dump
« 回覆 #2 於: 2004-08-18 23:55 »
dump -0 -u -a -f /backupdir/home.dump /home

dump -1 -u -f root@pc1.pattatech.com:/tux.dump /home

******dump use the rsh protocol


------------------------------------------------------------

incremental backup =level 2(Mon),3(Tue),4(We),5(Thu)
differential backup =level 1 (2nd 3rd 4th Fri)
system backup ==level 0 (1st 5th Fri)

system:
#dump -0 -u -a -f /backupdir/home.dump /home


incremental :
#dump -2 -u -f root@pc1.pattatech.com:/tux.dump /home
#dump -3 -u -f root@pc1.pattatech.com:/tux.dump /home
#dump -4 -u -f root@pc1.pattatech.com:/tux.dump /home
#dump -5 -u -f root@pc1.pattatech.com:/tux.dump /home


differential :
#dump -1 -u -f root@pc1.pattatech.com:/tux.dump /home



-------------------遠端dump及restore---------------------------

#dump -l -u -f sysop@61.64.186.241:rootbackupfile.dump /
#cd /
#restore -xvf sysop@61.64.186.241:rootbackupfile.dump

-----------------------------------------------------------------------

note: only the mount point with "1" mark in the /etc/fstab will dump

LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
/dev/hda3               swap                    swap    defaults        0 0

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
dd
« 回覆 #3 於: 2004-08-18 23:59 »
#dd if=/dev/hda of=/mnt/nfs/hda.img bs=1M
#dd if=/mnt/nfs/hda.img of=/dev/hdc bs=1M

將hda的資料備分到hdc

#dd if=/dev/zero of=/dev/hda bs=1M
#dd if=/dev/urandom of=/dev/hda bs=1M

將hard disk 資料銷毀

#dd if=/dev/hda of=/mnt/nfs/mbr.img bs=512 count=1
只被份mbr

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
rsync & CVS
« 回覆 #4 於: 2004-08-18 23:59 »
1.使用tar做完整備份
2.用rsync做差異備份


scp 61.64.186.241:/var/www/html/* .
scp tome.tgz sysop@61.64.186.241:/home/sysop/

代碼: [選擇]

用在沒有ssh只有rsh的老主機
情況 主機 dec1 有磁帶機, 主機 dec2 沒有磁帶機
1. 在dec1 的 root 家目錄
#cd ~
#vi .rhosts
  dec2  root

#tar -cv /dev/rmt0h . 備份
#tar -cv /dev/rmt0h /etc /bin 備份/etc /bin下的目錄
#tar -tvf /dev/rmt0h  列出已備份好的磁帶機的內容

#mt -f /dev/rmt0h rewind #將磁帶機倒帶
#mt -f /dev/rmt0h offline #將磁帶機退出


tar cf - <備份目錄名> | rsh -l <帳號> <工作站> dd of=<Device Name> obs=20b

Name> obs=20b
在dec2上,以root登錄
#rsh dec1 "ls /tmp"

#tar cf - / | rsh -l root dec1 dd of=/dev/rmt0h obs=20b


備份詳解
http://72.14.203.104/search?q=cache:c1UQGDAbJDMJ:www.cc.nctu.edu.tw/faq/tapedriver.htm+%22rsh%22+%22.rhost%22+&hl=zh-TW&lr=&strip=1


tar zcvf - /home | ssh sysop@61.64.186.241 "cat > home.tgz"
tar zcvf - /var/www/html | ssh sysop@61.64.186.241 "cat > /dev/tape"

cd /usr/local
tar zcf - apache/ | ssh root@61.64.186.241 "cd /usr/local;mv apache apache.bak; tar zpxvf -"

把61.64.186.241的/usr/local/apache更名為/usr/local/apache.bak,然後把自己近端的/usr/local/apache原封不動搬過去

ssh root@61.64.186.241 "cd /usr/local/pacland; tar zpvxf - " < really-big-archive.tag


ssh root@61.64.186.241 "caat really-big-archive.tgz" | tar zpvxf -


2.用rsync做差異備份


rsync -ave ssh --delete sysop@61.64.186.241:/home/ftp/pub/ /home/ftp/pub/

將61.64.186.241的pub目錄下的資料,同步至本地/home/ftp/pub/下,使用delete選項,若來源處檔案被刪除也會同步

rsync -ave ssh sysop@61.64.186.241:/home/six /tmp
將61.64.186.241的/home/six/目錄下所有內容複製到近端電腦的/tmp/six/下
注意目錄結構


代碼: [選擇]

#!/bin/bash
targets="/etc /home"

fullday=Mon
device="/dev/st0"
device_n="/dev/n`/bin/basename $device`"

datefile="/var/tmp/backup_full_date"
prev_full'`/bin/cat $datefile`
now=`/bin/date`

if (`echo $now | grep $fullday > /dev/null`)
then

    /bin/echo $now >$datefile
    /bin/chmod 600 $datefile

for tarfet in $targets
do
    /bin/tar -cvzf $device_n \
    -V "Full backup of $target on $now" \
    $target
    sleep 5
done

else

do
    /bin/tar -cvzf $device_n \
    -V "Differential backup of $target from $pre_full to $now" \
    [color=red]-N "$prev_full"[/color] \
    $target
    sleep 5
    done

fi

/bin/mt -f $device rewind
sleep 1
/bin/mt -f $device offline