用rsync实现镜像服务器之间的定时数据同步及备份(下)
2011-09-14 14:56
706 查看
rsync定时自动备份
要实现rsync定时自动备份,首先需要让ssh能够自动登陆而不用输入密码,其实需要crontab来控制rsync的同步时间。
ssh自动登陆
A为本地主机(即用于控制其他主机的机器,即Client) ;
B为远程主机(即被控制的机器Server), 假如ip为192.168.2.11;
A和B的系统都是Linux
在A上运行命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.60.110 "mkdir .ssh; chmod 0700 .ssh" (登陆到Server后在当前目录下建立.ssh目录,并且将其属性修改为0700;需要输入密码)
# scp ~/.ssh/id_rsa.pub root@192.168.60.110:.ssh/id_rsa.pub (将本机生成的公钥传送至Server的.ssh目录下;需要输入密码)
在B上的命令:
# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)
回到A机器进行试验:
# ssh root@192.168.60.110 (不需要密码, 登录成功)
用crontab脚本来控制rsync实现定时同步
crontab的语法:
crontab [-u username] [-l|-e|-r]
參數:
-u :只有 root 才能進行這個任務,亦即幫其他使用者建立/移除 crontab;
-e :編輯 crontab 的工作內容
-l :查閱 crontab 的工作內容
-r :移除 crontab 的工作內容
範例:
範例一:用 dmtsai 在每天的 12:00 發信給自己
[dmtsai@linux ~]$ crontab -e
# 此時會進入 vi 的編輯畫面讓您編輯工作!注意到,每項工作都是一行。
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
分 時 日 月 週 |<==============指令串========================>|
任 何使用者只要不被列入 /etc/cron.deny 當中,那麼他就可以直接下達『 crontab -e 』去編輯自己的例行性命令了!整個過程就如同上面提到的,會進入 vi 的編輯畫面, 然後以一個工作一行來編輯,編輯完畢之後,輸入『 :wq 』儲存後離開 vi 就可以了! 而每項工作的格式都是『 五個時間參數 實際動作指令 』,那麼那五個時間參數代表什麼呢?
比較有趣的是那個『週』喔!當週為 0 或 7 時,都代表『星期天』的意思!另外, 還有一些輔助的字符,大概有底下這些:
假如每五分鐘需要執行 /home/rsync/test.sh 一次,使用 crontab -e 進入編輯:
*/5 * * * * /home/rsync/test.sh
你每個星期五下午4:30需要同步,使用 crontab -e
30 16 * * 5 /home/rsync/test.sh
test.sh就是预先编辑好的rsync指令,如:
#!/bin/bash
/home/rsync/bin/rsync -azu --progress root@192.168.2.11:/tmp/test/. /home/test/
编辑完成后,chmod 755 /home/rsync/test.sh,赋予该文件执行权限。
要实现rsync定时自动备份,首先需要让ssh能够自动登陆而不用输入密码,其实需要crontab来控制rsync的同步时间。
ssh自动登陆
A为本地主机(即用于控制其他主机的机器,即Client) ;
B为远程主机(即被控制的机器Server), 假如ip为192.168.2.11;
A和B的系统都是Linux
在A上运行命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.60.110 "mkdir .ssh; chmod 0700 .ssh" (登陆到Server后在当前目录下建立.ssh目录,并且将其属性修改为0700;需要输入密码)
# scp ~/.ssh/id_rsa.pub root@192.168.60.110:.ssh/id_rsa.pub (将本机生成的公钥传送至Server的.ssh目录下;需要输入密码)
在B上的命令:
# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)
回到A机器进行试验:
# ssh root@192.168.60.110 (不需要密码, 登录成功)
用crontab脚本来控制rsync实现定时同步
crontab的语法:
crontab [-u username] [-l|-e|-r]
參數:
-u :只有 root 才能進行這個任務,亦即幫其他使用者建立/移除 crontab;
-e :編輯 crontab 的工作內容
-l :查閱 crontab 的工作內容
-r :移除 crontab 的工作內容
範例:
範例一:用 dmtsai 在每天的 12:00 發信給自己
[dmtsai@linux ~]$ crontab -e
# 此時會進入 vi 的編輯畫面讓您編輯工作!注意到,每項工作都是一行。
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
分 時 日 月 週 |<==============指令串========================>|
任 何使用者只要不被列入 /etc/cron.deny 當中,那麼他就可以直接下達『 crontab -e 』去編輯自己的例行性命令了!整個過程就如同上面提到的,會進入 vi 的編輯畫面, 然後以一個工作一行來編輯,編輯完畢之後,輸入『 :wq 』儲存後離開 vi 就可以了! 而每項工作的格式都是『 五個時間參數 實際動作指令 』,那麼那五個時間參數代表什麼呢?
代表意義 | 分鐘 | 小時 | 日期 | 月份 | 週 |
數字範圍 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 |
特殊字符 | 代表意義 |
* | 代表任何時刻都接受的意思!舉例來說,上表的範例一,那個日、月、週都是 * , 就代表著『不論何月、何日的禮拜幾的 12:00 都執行後續指令』的意思! |
, | 代表分隔時段的意思。舉例來說,如果要下達的工作是 3:00 與 6:00 時,就會是: 0 3,6 * * * command 還是有五欄,不過第二欄是 3,6 ,代表 3 與 6 都適用! |
- | 代表一段時間範圍內,舉例來說, 8 點到 12 點之間的每小時的 20 分都進行一項工作: 20 8-12 * * * command 仔細看到第二欄變成 8-12 喔!代表 8,9,10,11,12 都適用的意思! |
/n | 那個 n 代表數字,亦即是『每隔 n 單位間隔』的意思,例如每五分鐘進行一次,則: */5 * * * * command 很簡單吧!用 * 與 /5 來搭配,也可以寫成 0-59/5 ,相同意思! |
*/5 * * * * /home/rsync/test.sh
你每個星期五下午4:30需要同步,使用 crontab -e
30 16 * * 5 /home/rsync/test.sh
test.sh就是预先编辑好的rsync指令,如:
#!/bin/bash
/home/rsync/bin/rsync -azu --progress root@192.168.2.11:/tmp/test/. /home/test/
编辑完成后,chmod 755 /home/rsync/test.sh,赋予该文件执行权限。
相关文章推荐
- 用rsync实现镜像服务器之间的定时数据同步及备份(上)
- rsync实现文件备份同步(比如服务器镜像)
- rsync+inotify实现多台服务器之间数据实时同步 推荐
- rsync数据镜像备份+inotify实时同步的简单实现
- 使用rsync实现服务器数据同步备份
- Rsync实现服务器文件定时同步备份
- 通过rsync实现服务器之间同步、备份
- 通过rsync+inotify实现服务器之间数据的实时备份
- 完整利用Rsync实现服务器/网站数据增量同步备份
- rsync+inotify实现多台服务器之间数据实时同步
- centos6.5 rsync+inotify实现服务器之间文件实时同步
- rsync服务器架设(数据同步|文件增量备份)下
- rsync+inotify实现服务器之间文件实时同步
- rsync+inotify实现服务器之间文件实时同步
- linux系统中rsync+inotify实现服务器之间文件实时同步
- rsync+inotify实现服务器之间文件实时同步--转
- centos6.5 rsync+inotify实现服务器之间文件实时同步
- rsync参数详解、利用ssh、rsync 实现数据的定时同步
- 利用ftp命令+bat程序实现本地数据定时备份到服务器
- rsync+inotify实现服务器之间文件实时同步