1. 程式人生 > >解決全網伺服器備份至rsync,每日通知管理員備份結果

解決全網伺服器備份至rsync,每日通知管理員備份結果

解決全網伺服器備份至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