參考出處:Linux 环境实现自动备份站点文件和数据库(連結失效)
加入自己需要的部份,並把nginx、mariadb設定檔一起備份、同步到第二個備份空間

後記,現在網站都上 VPS,懶得跑 shellscript 備份了,用 VPS 本身的快照及 UpdraftPlus 外掛備份,比較簡單方便

#yum install rsync
#vim /home/backup/backup.sh

內容如下
#!/bin/bash
#source /etc/profile
# 进入到备份文件夹
cd /home/backup
# 创建存放备份文件和数据库的文件夹,并修改权限为777
mkdir -m 777 -p /home/backup/backup$(date +"%Y%m%d")
# 将需要备份的文件复制到备份文件夹内
cp -r /var/www/wordpress /home/backup/backup$(date +"%Y%m%d")/wordpress
# 備份相關設定檔
cp /etc/nginx/nginx.conf /etc/nginx/conf.d/* /etc/my.cnf /var/www/nextcloud/config/config.php /home/backup/backup$(date +"%Y%m%d")/
# 导出数据库到备份文件夹内
mysqldump -uwpdbuser -ppassword wpdb > /home/backup/backup$(date +"%Y%m%d")/wpdb.sql
# 压缩存放备份文件和数据库的文件夹
tar -zcvf ./backup$(date +"%Y%m%d").tar.gz ./backup$(date +"%Y%m%d")
# 備份到第二個位置
cp ./backup$(date +"%Y%m%d").tar.gz /backup

################這部份沒用到#################
# 以附件形式发送压缩包到指定邮箱
# echo "My-Blog-data"|mutt -s "Backup$(date +%Y-%m-%d)" -a ./backup$(date +"%Y%m%d").tar.gz [email protected]
# 删除备份文件夹与压缩包
# rm -rf /home/backup/backup$(date +"%Y%m%d")
# rm /home/backup/backup$(date +"%Y%m%d").tar.gz
################這部份沒用到#################

# 删除7天前的备份
rm -rf /home/backup/backup$(date -d -7day +"%Y%m%d").tar.gz

加入執行權限backup.sh
#chmod +x /home/backup/backup.sh
設定每日排程備份
#crontab -e
加入
0 2 * * * /home/backup/backup.sh

驗證了一下備份,有跑起來!後續再加入發信通知功能

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *