解决全网服务器备份至rsync,每日通知管理员备份结果
//每天需要备份的服务器上运行定时任务备份,具体备份的文件自定义(下面列举了一些)
[root@lb-node1 /soft/scripts]# vim rsync_cron_backup.sh
#!/bin/bash
###Client
Client_BackupDIR=/backup
Client_Host=$(hostname)
Client_IP=$(/sbin/ifconfig eth0|awk 'NR==2'|awk -F " " '{print $2}')
Client_Date=$(/usr/bin/date +%F)
Client_Date_File=$(/usr/bin/date +%H_%M)
Client_Desc_DIR="$Client_BackupDIR"/"$Client_Host"_"$Client_IP"_"$Client_Date"
[ ! -d $"$Client_Desc_DIR" ] && mkdir -p "$Client_Desc_DIR"
### copy conf,base
/bin/tar czf "$Client_Desc_DIR"/conf_"$Client_Date".tar.gz -C / var/spool/cron/ etc/rc.local etc/fstab etc/hosts && \
## log
/bin/tar czf "$Client_Desc_DIR"/system_log_"$Client_Date".tar.gz -C / var/log/nginx/ && \
## scripts
/bin/tar czf "$Client_Desc_DIR"/scripts_"$Client_Date".tar.gz -C / soft/scripts/ && \
## Nginx
/bin/tar czf "$Client_Desc_DIR"/nginx_conf_"$Client_Date".tar.gz -C / etc/nginx && \
## md5sum
/usr/bin/md5sum "$Client_Desc_DIR"/*_"$Client_Date".tar.gz > "$Client_Desc_DIR"/flag_"$Client_Date".md5
### Rsync ###
Server_User=rsync_backup
Server_IP=rsync-server
Server_mode=backup/
Server_pass=/etc/rsync.secrets
/usr/bin/rsync -avz $Client_BackupDIR/ $Server_User@$Server_IP::$Server_mode --password-file=$Server_pass
##find time out 7 delete
/usr/bin/find $Client_BackupDIR -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
//添加到定时任务中
[root@lb-node1 /soft/scripts]# crontab -e
##rsync
* 14 * * * sh /soft/scripts/rsync_cron_backup.sh &>/dev/null
[root@rsync-server /backup]# yum install -y mailx
[root@rsync-server /backup]# vim /etc/mail.rc
############
set from=lsszzqy@foxmail.com
set smtp=smtp.qq.com
set smtp-auth-user=lsszzqy@foxmail.com
set smtp-auth-password=16位授权码
set smtp-auth=login
set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
//测试下是否可以发送
[root@rsync-server /backup]# mail -s "rsync show" lsszzqy@163.com < /tmp/mail.txt
//编写自动化发送邮件脚本
[root@rsync-server /backup]# vim /soft/scripts/rsync_mail.sh
#!/bin/bash
Path=/backup/
Date=$(date +%F)
MailFile=/tmp/mail.txt
Mail_Title=Rsync_backup_$Date
Mail_User=lsszzqy@foxmail.com
# check md5sum
/usr/bin/find /backup/ -type f -iname "flag_*"|xargs md5sum -w -c > /tmp/mail.txt
# Send mail
/usr/bin/mail -s "$Mail_Title" $Mail_User < $MailFile
# Find Mtime 7
/usr/bin/find $Path -type d -mtime +7 |xargs rm -f
//添加到定时任务中
[root@rsync-server /backup]# crontab -e
###Rsync_backup
*/5 * * * * /usr/bin/sh /soft/scripts/rsync_cron_backup.sh &>/dev/null
###Rsync info mail
*/5 * * * * /usr/bin/sh /soft/scripts/rsync_mail.sh &>/dev/null