问: 为什么虚拟用户rsync创建的UID号是1000? 讲的不是1-999吗?
默认的:
管理员 0
虚拟用户: 1-999
普通用户: 1000+
手动创建的可指定UID号
虚拟用户可以指定1000+
普通用户可以指定1-999
如果不指定UID号,创建的所有用户默认都是按顺序排号的,比如当前的用户UID 1001已存在,默认创建虚拟用户则UID 1002
Rsync参数选项
传输过程中需要对方服务器用户密码: 免交互
#方法1:
#传输过程中需要对方服务器用户密码: 免交互
1.将密码写入文件中
[root@web01 ~]#echo 123456 > /etc/rsync.pass
2.测试不修改rsync.pass权限位情况
[root@web01 ~]#rsync -avz testpass rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.pass
ERROR: password file must not be other-accessible #提示密码文件不能是other可访问的
rsync error: syntax or usage error (code 1) at authenticate.c(196) [sender=3.1.2]
3.修改密码文件权限为非600 但是other不可访问
[root@web01 ~]#chmod 640 /etc/rsync.pass
[root@web01 ~]#ll /etc/rsync.pass
-rw-r----- 1 root root 7 Apr 12 22:11 /etc/rsync.pass
[root@web01 ~]#rsync -avz testpass rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.pass
sending incremental file list
testpass/
sent 65 bytes received 28 bytes 186.00 bytes/sec
total size is 0 speedup is 0.00
[root@backup backup]#ll
total 0
drwxr-xr-x 2 rsync rsync 6 Apr 12 22:13 testpass
[root@backup backup]#tree testpass/
testpass/
#####经测试可知 密码文件的other位必须不能有r和w的权限 有x权限无问题
4.为密码文件设置默认600权限位
[root@web01 ~]#chmod 600 /etc/rsync.pass
[root@web01 ~]#ll /etc/rsync.pass
-rw------- 1 root root 7 Apr 12 22:11 /etc/rsync.pass
5.推送使用参数 #将testpass目录 放到backup模块的主目录下
[root@web01 ~]#rsync -avz testpass rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.pass
sending incremental file list
testpass/
testpass/123
sent 120 bytes received 47 bytes 334.00 bytes/sec
total size is 0 speedup is 0.00
[root@backup backup]#ll
total 0
drwxr-xr-x 2 rsync rsync 17 Apr 12 22:20 testpass
[root@backup backup]#
方法2: 使用rsync的内置变量
rsync的内置变量RSYNC_PASSWORD
在执行rsync推送的过程中先查找RSYNC_PASSWORD 里面是否存在密码,默认里面为空,如果没有会提示让用户输入密码,如果有直接使用变
量中的密码
[root@web01 ~]#export RSYNC_PASSWORD=123456 #注意这里export的作用 默认不加export只在当前shell生效 当运行命令进入子shell后不生效
测试不生效的案例:
[root@web01 ~]#方法2: 使用rsync的内置变量
-bash: 方法2:: command not found
[root@web01 ~]#RSYNC_PASSWORD=123456
[root@web01 ~]#rsync -avz testpass rsync_backup@10.0.0.41::backup
Password: #仍需输入密码
测试生效的案例:
[root@web01 ~]#echo $RSYNC_PASSWORD
123456
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]#rsync -avz testpass rsync_backup@10.0.0.41::backup
sending incremental file list
sent 81 bytes received 25 bytes 212.00 bytes/sec
total size is 0 speedup is 0.00
[root@web01 ~]#
个人多余测试
#当在一个sh文件中写变量 并且不加export的情况下 sh中的命令相当于子shell的子shell 变量仍然不起作用
#shell中的变量 不影响父shell
[root@web01 ~]#cat 1.sh
#!/bin/bash
RSYNC_PASSWORD=123456
rsync -avz testpass rsync_backup@10.0.0.41::backup
[root@web01 ~]#rsync -avz testpass rsync_backup@10.0.0.41::backup
Password:
sending incremental file list
sent 81 bytes received 25 bytes 42.40 bytes/sec
total size is 0 speedup is 0.00
[root@web01 ~]#echo $RSYNC_PASSWORD
[root@web01 ~]#
#当在一个sh文件中写变量 加export的情况下 sh中的命令相当于子shell的子shell 变量起作用
#并且在子shell中export的变量不会影响到父shell
[root@web01 ~]#cat 1.sh
#!/bin/bash
export RSYNC_PASSWORD=123456
rsync -avz testpass rsync_backup@10.0.0.41::backup
[root@web01 ~]#sh 1.sh
sending incremental file list
sent 81 bytes received 25 bytes 212.00 bytes/sec
total size is 0 speedup is 0.00
[root@web01 ~]#echo $RSYNC_PASSWORD
[root@web01 ~]#
–delete参数 无差异同步
作用: 无差异同步
以A服务器为准备
A 服务器有啥 B服务器必须有啥
A 服务器没啥 B服务器必须没啥
远程访问模式:
10.0.0.41 创建目录和文件
[root@backup backup]#ll /opt/oldboy/
total 0
-rw-r--r-- 1 root root 0 Apr 12 17:52 a.txt
-rw-r--r-- 1 root root 0 Apr 12 17:55 b.txt
将oldboy目录同步给10.0.0.7
[root@web01 ~]#ll /opt/
total 0
[root@web01 ~]#
[root@backup backup]#rsync -avz --delete /opt/oldboy 10.0.0.7:/opt #将本机oldboy目录同步到10.0.0.7的opt目录下
root@10.0.0.7's password:
sending incremental file list
oldboy/
oldboy/a.txt
oldboy/b.txt
sent 182 bytes received 58 bytes 160.00 bytes/sec
total size is 0 speedup is 0.00
[root@backup backup]#
[root@web01 ~]#ll /opt/oldboy/
total 0
-rw-r--r-- 1 root root 0 Apr 12 17:52 a.txt
-rw-r--r-- 1 root root 0 Apr 12 17:55 b.txt
在backup服务器上删除一个文件使用--delete参数进行数据同步,以backup服务器数据为准
[root@backup opt]#rm oldboy/a.txt
rm: remove regular empty file ‘oldboy/a.txt’? y
[root@backup opt]#ll oldboy/
total 0
-rw-r--r-- 1 root root 0 Apr 12 17:55 b.txt
[root@backup opt]#rsync -avz --delete /opt/oldboy 10.0.0.7:/opt
root@10.0.0.7's password:
sending incremental file list
deleting oldboy/a.txt
oldboy/
sent 86 bytes received 32 bytes 47.20 bytes/sec
total size is 0 speedup is 0.00
[root@backup opt]#
[root@web01 opt]#ll oldboy/
total 0
-rw-r--r-- 1 root root 0 Apr 12 17:55 b.txt
[root@web01 opt]#
个人多余测试
[root@web01 opt]#rm -rf oldboy/
[root@web01 opt]#ll
total 0
[root@web01 opt]#
[root@backup opt]#rsync -avz --delete /opt/ 10.0.0.7:/opt
####实现效果与rsync -avz --delete /opt/oldboy 10.0.0.7:/opt 前提是两台设备opt目录下无其他任何文件
root@10.0.0.7's password:
sending incremental file list
./
oldboy/
oldboy/b.txt
sent 148 bytes received 46 bytes 129.33 bytes/sec
total size is 0 speedup is 0.00
小结:
以41服务器的/opt/oldboy下数据为准
rsync -avz --delete /opt/oldboy 172.16.1.7:/opt/oldboy
###这条命令什么含义? 将oldboy目录放到对端172.16.1.7的oldboy的目录下 所以个人认为老师的这条命令是错误的
测试个人认为的错误案例:
[root@backup opt]#mkdir oldboy
[root@backup opt]#touch oldboy/{a..c}.txt
[root@backup opt]#ll oldboy/
total 0
-rw-r--r-- 1 root root 0 Apr 12 23:46 a.txt
-rw-r--r-- 1 root root 0 Apr 12 23:46 b.txt
-rw-r--r-- 1 root root 0 Apr 12 23:46 c.txt
[root@web01 opt]#tree oldboy/
oldboy/
├── a.txt
└── b.txt
0 directories, 2 files
[root@backup opt]#rsync -avz --delete /opt/oldboy 172.16.1.7:/opt/oldboy
root@172.16.1.7's password:
sending incremental file list
oldboy/
oldboy/a.txt
oldboy/b.txt
oldboy/c.txt
sent 228 bytes received 77 bytes 203.33 bytes/sec
total size is 0 speedup is 0.00
[root@backup opt]#
[root@web01 opt]#tree oldboy/
oldboy/
├── a.txt
├── b.txt
└── oldboy
├── a.txt
├── b.txt
└── c.txt
1 directory, 5 files
#####个人认为未达到理想的效果 出现了oldboy目录下的oldboy目录
正确的应该为:
rsync -avz --delete /opt/oldboy 172.16.1.7:/opt/
测试案例:
[root@web01 opt]#rm -rf oldboy/
[root@backup opt]#rsync -avz --delete /opt/oldboy 172.16.1.7:/opt/
root@172.16.1.7's password:
sending incremental file list
oldboy/
oldboy/b.txt
sent 126 bytes received 39 bytes 110.00 bytes/sec
total size is 0 speedup is 0.00
[root@backup opt]#
[root@web01 opt]#tree oldboy/
oldboy/
└── b.txt
0 directories, 1 file
以7的/opt/oldboy下数据为准
rsync -avz --delete 172.16.1.7:/opt/oldboy /opt/oldboy
###这条命令什么含义? 将172.16.1.7的oldboy的目录 放到本机的/opt/oldboy的目录下 所以个人认为老师的这条命令是错误的
错误结果案例:
[root@web01 oldboy]#ll
total 0
-rw-r--r-- 1 root root 0 Apr 12 23:25 a.txt
-rw-r--r-- 1 root root 0 Apr 12 17:55 b.txt
[root@backup opt]#ll
total 0
[root@backup opt]#
[root@backup opt]#tree oldboy/
oldboy/
└── oldboy
├── a.txt
└── b.txt
1 directory, 2 files
#####个人认为未达到理想的效果 出现了oldboy目录下的oldboy目录
正确的应该为:
rsync -avz --delete 172.16.1.7:/opt/oldboy /opt
[root@backup opt]#rm -rf oldboy/
[root@backup opt]#ll
total 0
[root@backup opt]#
[root@web01 oldboy]#ll
total 0
-rw-r--r-- 1 root root 0 Apr 12 23:25 a.txt
-rw-r--r-- 1 root root 0 Apr 12 17:55 b.txt
[root@backup opt]#rsync -avz --delete 172.16.1.7:/opt/oldboy /opt
root@172.16.1.7's password:
receiving incremental file list
oldboy/
oldboy/a.txt
oldboy/b.txt
sent 66 bytes received 178 bytes 162.67 bytes/sec
total size is 0 speedup is 0.00
[root@backup opt]#tree oldboy/
oldboy/
├── a.txt
└── b.txt
0 directories, 2 files
企业案例: 服务器代码中毒使用--delete参数快速恢复业务
服务器中毒后,使用delete参数进行无差异和备份服务器 测试服务器同步
--bwlimit 带宽限速
测试带宽限速的选项
在10.0.0.7上上生成一个100M的文件
[root@web01 ~]#dd if=/dev/zero of=/root/100M bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.930404 s, 113 MB/s
[root@web01 ~]#ll -h
total 100M
-rw-r--r-- 1 root root 100M Apr 14 15:56 100M
默认不使用带宽限制参数传输文件到10.0.0.41上
[root@web01 ~]#rsync -avzP /root/100M rsync_backup@10.0.0.41::backup
Password:
sending incremental file list
100M
104,857,600 100% 115.97MB/s 0:00:00 (xfr#1, to-chk=0/1)
sent 102,065 bytes received 43 bytes 22,690.67 bytes/sec
total size is 104,857,600 speedup is 1,026.93
[root@web01 ~]#
使用带宽限制参数传输文件到10.0.0.41上 #实验失败了 经老师指点 不能带z参数就成功了
[root@web01 ~]#rsync -avzP --bwlimit=1M /root/100M rsync_backup@10.0.0.41::backup
sending incremental file list
100M
104,857,600 100% 113.21MB/s 0:00:00 (xfr#1, to-chk=0/1)
sent 102,065 bytes received 43 bytes 68,072.00 bytes/sec
total size is 104,857,600 speedup is 1,026.93
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]#ll -h
total 100M
-rw-r--r-- 1 root root 100M Apr 14 15:56 100M
[root@web01 ~]#rsync -avP --bwlimit=1M /root/100M rsync_backup@10.0.0.41::backup
Password:
sending incremental file list
100M
9,732,096 9% 1.00MB/s 0:01:32
整体实验部分
客户端需求:
1.客户端提前准备存放的备份的目录,目录规则如下: 以主机名称IP地址和时间命名
例如:/backup/nfs_172.16.1.31_2018‐09‐02
主机名可以通过hostname命令获取 ##注意非内置变量
[root@web01 ~]#echo $hostname
[root@web01 ~]#
[root@web01 ~]#hostname
web01
####反引号 意思为将反引号内的内容优先执行完成 ###
[root@web01 ~]#echo `hostname`
web01
#ip地址可以通过hostname -I命令获取
[root@web01 ~]#hostname -I
10.0.0.7 172.16.1.7
[root@web01 ~]#hostname -I | awk '{print $1}'
10.0.0.7
[root@web01 ~]#
#时间名可以通过date命令获取
[root@web01 ~]#date +%F
2024-04-14
[root@web01 ~]#
echo /backup/`hostname`_`hostname -I | awk '{print $1}'`_`date +%F-%H-%M`
[root@web01 ~]#echo /backup/`hostname`_`hostname -I | awk '{print $1}'`_`date +%F-%H-%M`
/backup/web01_10.0.0.7_2024-04-14-16-03
###########以上会存在一个问题 就是date +%F是随着命令的执行时刻在一直变化的 后面可能会出现路径不匹配问题 因此最好的办法就是使用变量锁定时间##########################################
Date=`date +%F-%H-%M`
echo /backup/`hostname`_`hostname -I | awk '{print $1}'`_$Date
[root@web01 ~]#Date=`date +%F-%H-%M`
[root@web01 ~]#
[root@web01 ~]#echo /backup/`hostname`_`hostname -I | awk '{print $1}'`_$Date
/backup/web01_10.0.0.7_2024-04-14-16-19
#为了方便 在定义一个变量dir
dir=`hostname`_`hostname -I | awk '{print $1}'`_$Date
echo $dir
#注意在创建文件夹是需要判断上级目录是否存在 不存在需要加-p参数
mkdir -p /backup/$dir
#为了规范 在系统上创建一个固定存放脚本的目录
[root@web01 ~]#mkdir -p /server/scripts
vim /server/scripts/rsync.sh
[root@web01 scripts]#cat rsync.sh
#1.客户端提前准备存放的备份的目录,目录规则如下: 以主机名称IP地址和时间命名
#定义时间变量 锁定时间
Date=`date +%F-%H-%M`
#定义目录变量 以主机名_IP地址_精确到分钟的时间为目录名称
dir=`hostname`_`hostname -I | awk '{print $1}'`_$Date
#创建需要准备的备份目录 注意是否需要-p参数
mkdir -p /backup/$dir
2.客户端在本地打包备份放入创建好的目录
#本实验默认设置设定需要打包的文件为/etc/passwd /etc/hosts
tar zcf /backup/$dir/etc_$Date.tar.gz /etc/passwd /etc/hosts
[root@web01 scripts]#tar zcf /backup/$dir/etc_$Date.tar.gz /etc/passwd /etc/hosts
tar: Removing leading `/' from member names
#有不需要的提示,优化一下
tar zcf /backup/$dir/etc_$Date.tar.gz /etc/passwd /etc/hosts &>/dev/null
[root@web01 scripts]#cat /server/scripts/rsync.sh
#1.客户端提前准备存放的备份的目录,目录规则如下: 以主机名称IP地址和时间命名
#定义时间变量 锁定时间
Date=`date +%F-%H-%M`
#定义目录变量 以主机名_IP地址_精确到分钟的时间为目录名称
dir=`hostname`_`hostname -I | awk '{print $1}'`_$Date
#创建需要准备的备份目录 注意是否需要-p参数
mkdir -p /backup/$dir
#2.客户端在本地打包备份放入创建好的目录
tar zcf /backup/$dir/etc_$Date.tar.gz /etc/passwd /etc/hosts &>/dev/null
[root@web01 scripts]#
[root@web01 scripts]#sh rsync.sh
[root@web01 scripts]#ll /backup/web01_10.0.0.7_2024-04-14-16-31/etc_2024-04-14-16-31.tar.gz
-rw-r--r-- 1 root root 627 Apr 14 16:31 /backup/web01_10.0.0.7_2024-04-14-16-31/etc_2024-04-14-16-31.tar.gz
[root@web01 scripts]#tar tf /backup/web01_10.0.0.7_2024-04-14-16-31/etc_2024-04-14-16-31.tar.gz
etc/passwd
etc/hosts
[root@web01 scripts]#
3.客户端最后将备份的数据进行推送至备份服务器
[root@web01 scripts]#sh rsync.sh
[root@web01 scripts]#
[root@web01 scripts]#sh -x rsync.sh
++ date +%F-%H-%M
+ Date=2024-04-14-16-59
++ hostname
++ hostname -I
++ awk '{print $1}'
+ dir=web01_10.0.0.7_2024-04-14-16-59
+ mkdir -p /backup/web01_10.0.0.7_2024-04-14-16-59
+ tar zcf /backup/web01_10.0.0.7_2024-04-14-16-59/etc_2024-04-14-16-59.tar.gz /etc/passwd /etc/hosts
+ export RSYNC_PASSWORD=123456
+ RSYNC_PASSWORD=123456
+ rsync -az /backup/web01_10.0.0.7_2024-04-14-16-59 rsync_backup@10.0.0.41::backup
[root@web01 scripts]#
#5.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间
find /backup -type f -mtime +7 -exec rm -rf {} \;
####推送无问题
[root@backup backup]#ll
total 0
drwxr-xr-x 2 rsync rsync 41 Apr 14 16:58 web01_10.0.0.7_2024-04-14-16-58
drwxr-xr-x 2 rsync rsync 41 Apr 14 16:59 web01_10.0.0.7_2024-04-14-16-59
#测试完成案例
[root@web01 backup]#cat /server/scripts/rsync.sh
#1.客户端提前准备存放的备份的目录,目录规则如下: 以主机名称IP地址和时间命名
#定义时间变量 锁定时间
Date=`date +%F-%H-%M`
#定义目录变量 以主机名_IP地址_精确到分钟的时间为目录名称
dir=`hostname`_`hostname -I | awk '{print $1}'`_$Date
#创建需要准备的备份目录 注意是否需要-p参数
mkdir -p /backup/$dir
#2.客户端在本地打包备份放入创建好的目录
tar zcf /backup/$dir/etc_$Date.tar.gz /etc/passwd /etc/hosts &>/dev/null
#3.做一个MD5值写入md5.log中
md5sum /backup/$dir/*.tar.gz > /backup/$dir/md5.log
4.客户端最后将备份的数据进行推送至备份服务器
#4.客户端最后将备份的数据进行推送至备份服务器
export RSYNC_PASSWORD=123456
rsync -az /backup/$dir rsync_backup@10.0.0.41::backup
5.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间
find /backup -type f -mtime +7 -exec rm -rf {} \;
[root@web01 backup]#rm -rf /backup/*
[root@web01 backup]#sh /server/scripts/rsync.sh
[root@web01 backup]#ll
total 0
drwxr-xr-x 2 root root 56 Apr 14 17:11 web01_10.0.0.7_2024-04-14-17-11
[root@backup backup]#rm -rf /backup/*
[root@backup backup]#ll
total 0
drwxr-xr-x 2 rsync rsync 56 Apr 14 17:11 web01_10.0.0.7_2024-04-14-17-11
[root@backup backup]#md5sum -c web01_10.0.0.7_2024-04-14-17-11/md5.log
/backup/web01_10.0.0.7_2024-04-14-17-11/etc_2024-04-14-17-11.tar.gz: OK
[root@backup backup]#
服务端需求:
1.服务端部署rsync服务,用于接收客户端推送过来的备份数据
1.安装rsync #默认已安装
2.配置rsync
[root@backup ~]#cat /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup
3.创建必要数据信息
创建虚拟用户rsync
[root@backup ~]#cat /etc/passwd | grep rsync
rsync:x:1000:1000::/home/rsync:/sbin/nologin
设置backup目录属主属组
[root@backup ~]#ll -d /backup
drwxr-xr-x 3 rsync rsync 45 Apr 14 17:11 /backup
创建/etc/rsync.passwd
[root@backup ~]#cat /etc/rsync.passwd
rsync_backup:123456
4.启动rsync服务 #默认已启动
5.检查rsync服务
[root@backup ~]#netstat -tnulp | grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 16729/rsync
tcp6 0 0 :::873 :::* LISTEN 16729/rsync
2.服务端需要每天校验客户端推送过来的数据是否完整并且服务端需要每天校验的结果通知给管理员
1.客户端修改脚本
客户端需求部分中第三步新加的增加了md5sum的部分
2.服务端校验
[root@backup ~]#mkdir -p /server/scripts
[root@backup ~]#cd /server/scripts
每天就需要使用到了定时任务 最后统一配置
3.
邮件通知需要使用到邮件服务器
配置邮件服务:
vim /etc/mail.rc # 进入到最后一行粘贴以下内容
set from=759993420@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=759993420@qq.com
set smtp-auth-password=#客户端授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
[root@backup scripts]#vim check.sh
Date=`date +%F`
md5sum -c /backup/*_*_*/md5.log > /backup/$Date.log
#2.将校验后的结果发送到邮箱
mail -s "$Date 检查结果" 759993420@qq.com < /backup/$Date.log &>/dev/null
#以下为仅当文件中出现FAILED后才会发送邮件
#if [ `grep FAILED /backup/$Date.log|wc -l` -ge 1 ];then
#mail -s "$Date 检查结果" 759993420@qq.com < /backup/$Date.log &>/dev/null
#fi
3.删除180天前的数据
#3.删除180天前的数据
find /backup -mtime +180|xargs rm -rf
[root@backup scripts]#vim /server/scripts/check.sh
#1.服务端需要每天校验客户端推送过来的数据是否完整
Date=`date +%F`
md5sum -c /backup/*_*_*/md5.log > /backup/$Date.log
#2.将校验后的结果发送到邮箱
mail -s "$Date 检查结果" 759993420@qq.com < /backup/$Date.log &>/dev/null
#以下为仅当文件中出现FAILED后才会发送邮件
#if [ `grep FAILED /backup/$Date.log|wc -l` -ge 1 ];then
#mail -s "$Date 检查结果" 759993420@qq.com < /backup/$Date.log &>/dev/null
#fi
#3.删除180天前的数据
find /backup -mtime +180|xargs rm -rf
设置定时任务(客户端、服务端 注意:客户端的定时任务执行时间需要大于客户端的时间)
#客户端:
[root@web01 ~]#crontab -l
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#每天凌晨12点执行(打包、rsync)定时任务
00 00 * * * sh /server/scripts/rsync.sh
[root@backup scripts]#crontab -l
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#每天凌晨1点执行(打包、rsync)定时任务
51 * * * * sh /server/scripts/check.sh
#临时验证 -----以下证明验证无问题 记得将定时任务修改回去
48分的操作
[root@web01 ~]#rm -rf /backup/*
[root@backup scripts]#rm -rf /backup/*
[root@backup scripts]#crontab -e
no crontab for root - using an empty one
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#每天凌晨1点执行(打包、rsync)定时任务
51 * * * * sh /server/scripts/check.sh
[root@web01 ~]#crontab -l
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#每天凌晨12点执行(打包、rsync)定时任务
49 * * * * sh /server/scripts/rsync.sh
49分查看客户端
[root@web01 ~]#ll /backup/
total 0
drwxr-xr-x 2 root root 56 Apr 14 17:49 web01_10.0.0.7_2024-04-14-17-49
51分查看服务端及邮件
[root@backup scripts]#ll /backup/
total 4
-rw-r--r-- 1 root root 72 Apr 14 17:51 2024-04-14.log
drwxr-xr-x 2 rsync rsync 56 Apr 14 17:49 web01_10.0.0.7_2024-04-14-17-49
收到了邮件