inotify+rsync实现实时同步(7)

[root@nfs01 sersync]# vim /server/scripts/inotify.sh #!/bin/bash inotifywait -mrq /data --format "%w%f" -e create,delete,moved_to,close_write|\ while read line do rsync -az --delete /data/ rsync_backup@172.16.1.41::nfsbackup --password- file=/etc/rsync.password done

脚本说明:

for循环会定义一个条件,当条件不满足时停止循环

while循环:只要条件满足就一直循环下去

2.3.4 对脚本进行优化

#!/bin/bash Path=/data backup_Server=172.16.1.41 /usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete /data | while read line do if [ -f $line ];then rsync -az $line --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password else cd $Path &&\ rsync -az ./ --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password fi done

2.4 第四个里程碑:测试编写的脚本 2.4.1 让脚本在后台运行

/data 目录先创建6个文件

[root@nfs01 data]# sh /server/scripts/inotify.sh & [root@nfs01 data]# touch {1..6}.txt

backup服务器上,已经时候同步过去了6个文件。

[root@backup ~]# ll /nfsbackup/ total 8 -rw-r--r-- 1 rsync rsync 0 Oct 17 12:06 1.txt -rw-r--r-- 1 rsync rsync 0 Oct 17 12:06 2.txt -rw-r--r-- 1 rsync rsync 0 Oct 17 12:06 3.txt -rw-r--r-- 1 rsync rsync 0 Oct 17 12:06 4.txt -rw-r--r-- 1 rsync rsync 0 Oct 17 12:06 5.txt -rw-r--r-- 1 rsync rsync 0 Oct 17 12:06 6.txt

2.5 利用while循环语句编写的脚本停止方法(kill

01. ctrl+z暂停程序运行,kill -9杀死 02. 不要暂停程序,直接利用杀手三剑客进行杀进程

 说明:kill三个杀手不是万能的,在进程暂停时,无法杀死;kill -9 (危险)

2.5.1 查看后台都要哪些程序在运行

[root@nfs01 data]# jobs [1]+ Running sh /server/scripts/inotify.sh &

2.5.2 fg将后台的程序调到前台来

[root@nfs01 data]# fg 1 sh /server/scripts/inotify.sh

2.6 进程的前台和后台运行方法:

fg    -- 前台

bg    -- 后台

2.6.1 脚本后台运行方法

01. sh inotify.sh & 02. nohup sh inotify.sh & 03. screen实现脚本程序后台运行

sh /server/scripts/inotify.sh &

nohup

nohup sh inotify.sh &

2.7 screen实现脚本程序后台运行 2.7.1 经过yum查找发现screen命令属于screen

[root@test ~]# yum provides screen Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.7 kB 00:00 epel | 4.3 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 screen-4.0.3-19.el6.x86_64 : A screen manager that supports multiple logins on : one terminal Repo : base Matched from:

2.7.2 安装screen软件

[root@test ~]# yum install -y screen

2.7.3 screen命令的参数

shell中输入 screen即可进入screen 视图

[root@test ~]# screen

Screen实现后台运行程序的简单步骤:

screen -ls :可看screen会话

screen -r ID :指定进入哪个screen会话

Screen命令中用到的快捷键

Ctrl+a c :创建窗口

Ctrl+a w :窗口列表

Ctrl+a n :下一个窗口

Ctrl+a p :上一个窗口

Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口

(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)

exit :关闭当前窗口,并且切换到下一个窗口

(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)

Ctrl+a d :退出当前终端,返回加载screen前的shell命令状态

Ctrl+a " : 窗口列表不同于w

2.8 sersync软件实现实时同步

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/19efd1fc8108fdf56fbc34006c26c3ba.html