Linux/Unix下使用rsync同步文件(简单的例子)
大部分网上找的,一小部分自己发挥。硬件:2台Linux服务器,都开启了SSH。A:192.168.1.1B:192.168.1.2目的:定时同步A机器某目录的资料到B机器。A为服务器端,B为客户端。1,下载rsynchttp://rsync.samba.org/ 2,编译安装]#tar xvf rsync-2.6.6.tar.gz]#cd rsync-2.6.6]#./configure -
·
大部分网上找的,一小部分自己发挥。
硬件:2台Linux服务器,都开启了SSH。
A:192.168.1.1
B:192.168.1.2
目的:定时同步A机器某目录的资料到B机器。A为服务器端,B为客户端。
1,下载rsync
http://rsync.samba.org/
2,编译安装
3,为SSH做秘钥。(B机器操作)
a,生成
在/root/.ssh内已经生成id_dsa与id_dsa.pub(分别为私钥和公钥)
b,发布
服务器要求输入登录密码验证身份,成功后在A server的/root/.ssh目录里面生成authorized_keys(公钥)
测试:在B上输入 ssh A的IP B可以无需密码验证就登录进A
4,启动服务(A机器操作)
5,备份(B机器操作)
参数意义如下﹕
-a, --archive
It is a quick way of saying you want recursion and want to preserve almost everything.
-v, --verbose
This option increases the amount of information you are given during the transfer.
-l, --links
When symlinks are encountered, recreate the symlink on the destination.
-R, --relative
Use relative paths. 保留相对路径...才不让子目录跟 parent 挤在同一层...
--delete
是指如果Server端刪除了一文件,那客戶端也相应把这一文件刪除,保持真正的一致。
-e ssh
建立起加密的连接。
6,定时备份(B机器操作)
附:Crontab的用法
Crontab命令使用的文件具体位置: /Var/Spool/Cron/Crontabs 目录下,每个用户都有其对应的名字,比如,root用户的文件为root.
上海霍富root用户的Cron是:
00 02 * * 1-5 /usr/sysadm/dailybackup.sh > /uf/logs/dailybackup.log 2>&1
00 03 * * 1-5 find /u01/app/oracle/admin/prod/archive -name "*.ARC" -mtime +4 -exec rm {} /;
【解释】
第一行的意思是,每个周的周一到周五的凌晨2点,系统会自动执行一个脚本程序dailybackup.sh,并且把执行信息和错误提示信息输出到dailybackup.log这个文件中,是追加形式。
第二行的意思是,在目录/u01/app/oracle/admin/prod/archive中,查找文件名为*.ARC的文件,并删除4天前的文件。
硬件:2台Linux服务器,都开启了SSH。
A:192.168.1.1
B:192.168.1.2
目的:定时同步A机器某目录的资料到B机器。A为服务器端,B为客户端。
1,下载rsync
http://rsync.samba.org/
2,编译安装
]#tar xvf rsync-2.6.6.tar.gz
]#cd rsync-2.6.6
]#./configure --prefix=/usr/local/rsync
]#make
]#make install
]#cd rsync-2.6.6
]#./configure --prefix=/usr/local/rsync
]#make
]#make install
3,为SSH做秘钥。(B机器操作)
a,生成
]#cd /root/.ssh
]#ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): <-- 此处不打passphrase..下次才不会询问password
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66 root@mondeo.adj.idv.tw
]#
]#ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): <-- 此处不打passphrase..下次才不会询问password
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66 root@mondeo.adj.idv.tw
]#
在/root/.ssh内已经生成id_dsa与id_dsa.pub(分别为私钥和公钥)
b,发布
]#scp id_dsa.pub A机器IP:/root/.ssh/authorized_keys
服务器要求输入登录密码验证身份,成功后在A server的/root/.ssh目录里面生成authorized_keys(公钥)
测试:在B上输入 ssh A的IP B可以无需密码验证就登录进A
4,启动服务(A机器操作)
]#rsync --daemon
5,备份(B机器操作)
rsync -avlR --delete -e ssh A的IP:/var/lib/mysql /backup/
参数意义如下﹕
-a, --archive
It is a quick way of saying you want recursion and want to preserve almost everything.
-v, --verbose
This option increases the amount of information you are given during the transfer.
-l, --links
When symlinks are encountered, recreate the symlink on the destination.
-R, --relative
Use relative paths. 保留相对路径...才不让子目录跟 parent 挤在同一层...
--delete
是指如果Server端刪除了一文件,那客戶端也相应把这一文件刪除,保持真正的一致。
-e ssh
建立起加密的连接。
6,定时备份(B机器操作)
]#vi sync
rsync -avlR --delete -e ssh B的IP:/var/lib/mysql /backup/
]#crontab -e
0 0 * * * /backup/sync (表示分、时、日、月、年)
rsync -avlR --delete -e ssh B的IP:/var/lib/mysql /backup/
]#crontab -e
0 0 * * * /backup/sync (表示分、时、日、月、年)
附:Crontab的用法
Crontab命令使用的文件具体位置: /Var/Spool/Cron/Crontabs 目录下,每个用户都有其对应的名字,比如,root用户的文件为root.
上海霍富root用户的Cron是:
00 02 * * 1-5 /usr/sysadm/dailybackup.sh > /uf/logs/dailybackup.log 2>&1
00 03 * * 1-5 find /u01/app/oracle/admin/prod/archive -name "*.ARC" -mtime +4 -exec rm {} /;
【解释】
第一行的意思是,每个周的周一到周五的凌晨2点,系统会自动执行一个脚本程序dailybackup.sh,并且把执行信息和错误提示信息输出到dailybackup.log这个文件中,是追加形式。
第二行的意思是,在目录/u01/app/oracle/admin/prod/archive中,查找文件名为*.ARC的文件,并删除4天前的文件。
更多推荐
已为社区贡献1条内容
所有评论(0)