赞
踩
本来想用压缩后传输的逻辑,后来觉得数据量有点大,所以就用rsync每次传差异的值就可以了。这里统一备份到集中备份服务器上。
这里基于蓝鲸来做服务器初始化。
设置权限为600。
同时设置定时任务:00 23 * * * /bin/bash /data/scripts/fastdfs/rsync_fastdfs.sh &>/dev/null
脚本如下:
#!/bin/bash ################################ #copyright by hwb #date:2020-02-08 ################################ #调用函数库 [ -f /etc/init.d/functions ] && source /etc/init.d/functions export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin #注释消息:You have mail in /var/spool/mail/root echo "unset MAILCHECK" >> /etc/profile source /etc/profile #Require root to run this script. [ $(id -u) -gt 0 ] && echo "请用root用户执行此脚本!" && exit 1 #参数定义 date=`date +"%Y-%m-%d-%H:%M:%S"` fastdfs_ip="xx.142" webhook='https://oapi.dingtalk.com/robot/send?access_token=18b060d781xxb30' #报错日志记录 [ -f /tmp/install_error.log ] || touch /tmp/install_error.log function SendMsgToDingding() { curl $webhook -H 'Content-Type: application/json' -d " { 'msgtype': 'text', 'text': { 'content': ' [通知] $fastdfs_ip \n $message \n 时间:$date \n ' }, 'at': { 'atMobiles': [ "18825144300", "18822212312" ], "isAtAll": false } }" } function rsync_fastdfs(){ echo "" echo -e "\033[33m****************************************************备份fastdfs文件*****************************************************\033[0m" action "****开始进行fastdfs备份****" /bin/true rsync --port=8888 -vzrtopg --progress --timeout 600 --password-file=/data/auth/.rsync.auth --delete rsync@${fastdfs_ip}::fastdfs/* /data/fastdfs/ if [ $? -eq 0 ];then action "fastdfs备份成功!" /bin/true message="fastdfs数据备份成功!" SendMsgToDingding else action "fastdfs备份失败!" /bin/false message="fastdfs数据备份失败,请检查!" SendMsgToDingding fi echo "" echo -e "\033[33m*************************************************已完成fastdfs文件备份**************************************************\033[0m" echo "" sleep 1 } rsync_fastdfs
备份过程如下:
1)备份失败时:
钉钉消息提示如下:
2)备份成功时:
钉钉消息成功提示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。