各个目录释义:
/backup/ 备份目录 统一服务器本地备份目录,便于管理
/var/spool/cron/root 定时任务服务配置文件
/etc/rc.local 开机启动配置文件
/server/scripts 日常脚本目录 统一服务器本地脚本目录,便于管理
/var/html/www web服务器站点目录
/app/logs web服务器访问日志路径
[root@web01 /]# mkdir /server/scripts/ -p
[root@web01 /]# cd /server/scripts/
[root@web01 /server/scripts]# vim bak.sh
写脚本:
#!/bin/sh
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
export RSYNC_PASSWORD=oldboy
IP=$(hostname -i)
mkdir -p /backup/$IP
#1.打包
tar zchf /backup/$IP/bak_${IP}_$(date +%F_%w).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /var/html/www /app/logs &>/dev/null &&\
touch /backup/$IP/bak_${IP}_$(date +%F_%w).flag &&\
#采集指纹
find /backup/ -type f -name "*.tar.gz"|xargs md5sum >/backup/$IP/bak_${IP}_$(date +%F_%w).flag &&\
#2.删除
find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f &&\
#3.推送
rsync -az /backup/ rsync_backup@172.16.1.41::backup &>/dev/null
客户端配置完成
定时任务:
[root@web01 /server/scripts]# crontab -l|tail -2
######back.....
00 00 * * * /bin/sh /server/scripts/bak.sh >/dev/null 2>&1
[root@web01 /server/scripts]# find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f
服务端
#!/bin/bash
export RSYNC_PASSWORD=oldboy
IP=$(ifconfig eth1|awk 'NR==2{print $2}')
mkdir -p /backup/$IP
#打包
tar zcfh /backup/$IP/$(date +%F_%w).tar.gz /server/scripts /var/html/www /app/logs /var/spool/cron/root /etc/rc.local &&\
#删除
find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f &&\
#采集指纹
find /backup/$IP -type f -name "*.tar.gz"|xargs md5sum >/backup/$IP/${IP}_$(date +%F).flag &&\
#t推送
rsync -az /backup/ rsync_backup@172.16.1.41::backup
#!/bin/bash
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
export RSYNC_PASSWORD=oldboy
#采集指纹
find /backup/ -type f -name "*.flag"|xargs md5sum -c >/backup/$(date +%F).log &&\
#删除
find /backup/ -type f -name "*1.tar.gz" -mtime +180|xargs rm -f &&\
find /backup/ -type f ! -name "*1.tar.gz" -mtime +7|xargs rm -f &&\
#3.推送
rsync -az /backup/ rsync_backup@172.16.1.41::backup &>/dev/null
#发邮件
mail -s "rsync data result" 1374557442@qq.com </backup/$(date +%F).log
客户端配置完成
在etc/mail.rc 配置/
set from=
set smtp=
set smtp-auth-user=
set smtp-auth-password=
set smtp-auth=
from 是发送的邮件地址
smtp 是发送的外部smtp服务器的地址
smtp-auth-user 是外部smtp服务器认证的用户名
smtp-auth-password 是外部smtp服务器认证的用户密码(授权码)
set smtp-auth=login 是邮件的认证方式