解決全網伺服器備份至rsync,每日通知管理員備份結果
阿新 • • 發佈:2018-11-01
解決全網伺服器備份至rsync,每日通知管理員備份結果
//每天需要備份的伺服器上執行定時任務備份,具體備份的檔案自定義(下面列舉了一些) [[email protected] /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/
[email protected]$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 {} \; //新增到定時任務中 [[email protected] /soft/scripts]# crontab -e ##rsync * 14 * * * sh /soft/scripts/rsync_cron_backup.sh &>/dev/null
- 定時郵件通知
[[email protected] /backup]# yum install -y mailx
[[email protected] /backup]# vim /etc/mail.rc
############
set [email protected]
set smtp=smtp.qq.com
set [email protected]
set smtp-auth-password=16位授權碼
set smtp-auth=login
set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
//測試下是否可以傳送
[ [email protected] /backup]# mail -s "rsync show" [email protected] < /tmp/mail.txt
//編寫自動化傳送郵件指令碼
[[email protected] /backup]# vim /soft/scripts/rsync_mail.sh
#!/bin/bash
Path=/backup/
Date=$(date +%F)
MailFile=/tmp/mail.txt
Mail_Title=Rsync_backup_$Date
[email protected]
# 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
//新增到定時任務中
[[email protected] /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