Robin

  • 主页
  • 金融研究
  • 常用
    • 常用脚本
    • 常用工具
Robin
疏影横斜水清浅,暗香浮动月黄昏
  1. 首页
  2. Code
  3. 正文

Linux Shell 备份目标文件夹及自动清理过期备份

2022年12月18日 107点热度 0人点赞 1条评论

写了一个自动备份站点文件的Shell脚本,可设定备份目标目录,和备份文件存放目录,以及备份文件保留的天数。将脚本放入crontab,每日定时自动运行,即可实现每日自动备份,并自动清理过期备份文件。

#!/bin/bash

# 备份方法主逻辑
backup() {
 echo "Backup Begin! TargetDir: "${TargetDir}" BackupDir: "${BackupDir}
 #cd $BackupDir

 for f in $(ls $BackupDir)
 do
   fd=$(echo $f | cut -d . -f1)
   if [ "$fd" -lt "$LastDay" ] ;then
     echo "clear expired backup file! ===== "${f}
     rm -f $f
   else
     :
   fi
 done
 rm -rf ${BackupDir}${Today}.tar.gz
 tar -czPf ${BackupDir}${Today}.tar.gz ${TargetDir}
 echo "Backup End!"
}

Today=$(date +%Y%m%d)

BackupDir=/home/backup/wwwroot/www.lubin19.com/ #设置备份文件存放的目录
TargetDir=/home/wwwroot/www.lubin19.com #设置备份目标目录
KeepDays=8 #设置备份文件保留的天数
LastDay=$(date -d "${KeepDays} days ago" +%Y%m%d)

backup #运行备份

对于本站点,额外增加了两个步骤:1. 在备份站点文件之后,继续导出数据库文件备份; 2. 所有备份完成之后,定期重启LNMP

#!/bin/bash

# Backup Main Function
backup() {
 echo "Backup Begin! TargetDir: "${TargetDir}" BackupDir: "${BackupDir}
 cd ${TargetDir}
 for f in $(ls $BackupDir)
 do
   fd=$(echo $f | cut -d . -f1)
   if [ "$fd" -lt "$LastDay" ] ;then
     echo "clear expired backup file! ===== "${f}
     rm -f $f
   else
     :
   fi
 done
 rm -rf ${BackupDir}${Today}.tar.gz
 tar -czPf ${BackupDir}${Today}.tar.gz *
 echo "Backup End!"
}

Today=$(date +%Y%m%d)

# =========================File Backup==========================
# Backup www.lubin19.com
BackupDir=/home/backup/wwwroot/www.lubin19.com/
TargetDir=/home/wwwroot/www.lubin19.com/
KeepDays=8
LastDay=$(date -d "${KeepDays} days ago" +%Y%m%d)
backup

# Backup www.legalseas.com
BackupDir=/home/backup/wwwroot/www.legalseas.com/
TargetDir=/home/wwwroot/www.legalseas.com/
KeepDays=3
LastDay=$(date -d "${KeepDays} days ago" +%Y%m%d)
backup

# Backup FundGrid
BackupDir=/home/backup/autobatch/FundGrid/
TargetDir=/home/autobatch/FundGrid/
KeepDays=8
LastDay=$(date -d "${KeepDays} days ago" +%Y%m%d)
backup

# =========================DB Backup==========================
TargetDir=/home/backup/db/
BACKUP_DB_LIST=(www.lubin19.com www.legalseas.com PRD_FUNDGRID)

cd ${TargetDir}
rm -rf *
for i in "${BACKUP_DB_LIST[@]}"
do
  mysqldump -u数据库用户名 -h127.0.0.1 -p#数据库密码 $i | gzip > ${i}.sql.gz
done

BackupDir=/home/backup/db_backup/
KeepDays=8
LastDay=$(date -d "${KeepDays} days ago" +%Y%m%d)
backup

# =========================Reboot==========================
# 每周6重启LNMP
weekday=$(date +%w)
if [ $weekday -eq 6 ] ;then
  echo $(lnmp restart)
fi

最后,再创建一个每月1日重启服务器的任务 shutdown -r now

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: shell脚本 备份
最后更新:2022年12月18日

Robin

📈💻🎪金融从业的IT背景的产品经理 🥊莱美爱好者,尤其热爱BP和BC 🧸高达手办爱好者 🎼流行歌曲爱好者 📸数码产品爱好者 🎮RPG游戏爱好者 🎨日漫爱好者 💾偶尔写一些小程序 🚗热衷装饰自己的CHR Email:mail@lubin19.com

点赞
< 上一篇

文章评论

  • Robin

    试一下Gravatar的头像设置是否成功

    2022年12月18日
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    最新 热点 随机
    最新 热点 随机
    私募股权投资行业数字化白皮书 (2022.12发布) 基于行业轮动的短期投资策略研制 白莲花 莱美BC照片Show 2022信托公司信托文化建设工作手册 二八轮动与网格交易策略结合 Linux Shell 备份目标文件夹及自动清理过期备份 暂时放弃chatGPT了
    网格交易-待优化-2022.11.22(2022.11.23完结) 网格交易-待优化-2022.11.20(2022.11.26 完结) 基于行业轮动的短期投资策略研制 网格交易-待优化-2022.11.16(2022.11.20完结) 网格交易-待优化-2022.11.23(2022.11.30完结) 2022信托公司信托文化建设工作手册 二八轮动与网格交易策略结合 网格交易-待优化-2022.12.03 (2022.12.18 完结)
    浏览次数
    • 2022信托公司信托文化建设工作手册 - 70 浏览
    • 私募股权投资行业数字化白皮书 (2022.1... - 74 浏览
    • 二八轮动与网格交易策略结合 - 75 浏览
    • 白莲花 - 79 浏览
    • 基于行业轮动的短期投资策略研制 - 80 浏览
    • 莱美BC照片Show - 85 浏览
    • 网格交易-待优化-2022.11.22(20... - 90 浏览
    • 网格交易-待优化-2022.12.03 (2... - 90 浏览
    • 中国信托业转型发展特别报告(2022.12发... - 93 浏览
    • 网格交易-版本发布-2022.11.30 - 94 浏览

    COPYRIGHT © 2016-2022 Robin. ALL RIGHTS RESERVED.
    本站CDN由七牛云驱动

    沪ICP备10214285号-5