分类: LINUX
2010-09-11 21:55:35
要想保留文件的所有者和权限,可以使用 p 选项保留每个文件和目录的元数据:$ tar cfp - ./etc |( cd /backup; tar xfp - )。
掌握这种基本结构之后,就可以执行更复杂的操作。例如,可以只复制在特定时间之后修改过的文件:$ tar cf - --newer 20090101 ./etc |(cd /backup; tar xf - )。这个命令创建在 2009 年 1 月 1 日之后修改过的文件的拷贝。
通过与 rsh 或 ssh 结合使用,还可以把文件同步到远程主机:$ tar cfp - ./etc |(ssh -- tar xfp -)。按照这种方式使用 ssh 和 tar 是在远程主机上创建本地文件备份的好方法。但是,还有更高效的信息同步方法。
1、在A机压缩后,复制到B机器并解压缩 2、在A机压缩,并将压缩文件复制到B机 3、将A机的压缩文件,复制到B机并解压缩 |
传输到远程:tar czf - file| ssh server "tar zxf -"
压缩到远程:tar czf - file| ssh server "cat > file.tar.gz"
解压到远程:ssh server "tar zxf -" < file.tar.gz
解压到本地:ssh server "cat file.tar.gz" | tar zxf -
-----------------------------------------------------------------
$target 表示目的机器,指远端机器
$backup_server 表示备份机器,同样也是指远端机器
$save 则是指备份目录
要求远端备份并拉回 local
ssh $target tar -cf - / --exclude /mnt | bzip2 -9 | cat > $target.tar.bz2
解开本地备份并回存到远端去
bunzip2 -dc $target.tar.bz2 | ssh $target "cd /;tar -pxkf -"
备份 local 资料,丟到远端去压缩并存档
tar cf - / --exclude xxx | ssh $backup_server "bzip2 -9 > $save/test.tar.bz2"
把远端资料拉回 local,作解压缩动作
ssh $backup_server "cat $save/test.tar.bz2" | bunzip2 | tar -xpkf -
在本地脚本放在远程执行
cat myscript.sh | ssh kramer /bin/sh
hostname
date
w
ifconfig
ps -ef | grep http | awk '{print $NF}'
#! /bin/sh ssh 172.16.1.2 < sa=`/usr/sbin/alternatives --config java 2>&1` echo "Result:" echo "$sa" echo echo "Will I find anything when I look in that result for jdk1.6.0_05 ???" echo "$sa" | grep "jdk1.6.0_05" echo "Nope. I thought not! But the reason should be clear now!" EOF
ssh技巧
chinaunix网友2010-09-13 14:57:15
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com