MENU

自动定时进行全站备份并上传至主流云存储

2019 年 07 月 01 日 • 阅读: 8781 • 脚本

为避免意外,定时进行部分或全站备份是十分必要的。今天介绍的 Shell 脚本可自动打包数据库和网站文件上传至七牛、又拍、腾讯、百度网盘等云存储空间,以及 FTP/SFTP 服务器。

项目地址

WebServerAutoBackup

支持系统

仅支持 MySQL 数据库和 CentOS 6 x64、CentOS 7 x64、Ubuntu 16.04 x64 系统。

使用方法

依赖安装

  • # CentOS
  • yum install -y wget curl git zip ftp sftp ssh sshpass
  • # Ubuntu
  • apt install -y wget curl git zip ftp sftp ssh sshpass
  • BIN_DIR=/usr/local/etc/
  • [ ! -d ${BIN_DIR} ] && mkdir -p ${BIN_DIR}
  • cd ${BIN_DIR}
  • git clone https://github.com/CHN-STUDENT/WebServerAutoBackup.git
  • cd WebServerAutoBackup

配置编辑

打开 config.ini,修改 14 行为要备份的站点目录。

  • [WWWROOT_CONFIG]
  • WWWROOT_DIR=/www/wwwroot

修改 27-31 行的数据库信息。

  • [MYSQL_CONFIG]
  • MYSQL_DBS=
  • MYSQL_USER=
  • MYSQL_PASSWD=
  • MYSQL_SERVER=127.0.0.1
  • MYSQL_SERVER_PORT=3306

修改 57 行的保存天数,建议改为 3,即仅保存最近 3 天的备份。

  • [DAY_CONFIG]
  • DAY=3

修改 72-77 行的七牛云配置,将 AUTO_UPLOADAUTO_DELETE 打开,即自动上传,自动删除 3 天前的备份。

  • [QSHELL_CONFIG]
  • AUTO_UPLOAD=yes
  • AUTO_DELETE=yes
  • BUCKET=website-backup
  • ACCESS_Key=
  • SECRET_Key=
  • key_prefix=backup

如需上传到其他云空间,自行阅读配置文件注释,修改完毕后将文件保存。

修复错误

实际运行时提示空间不足,停止备份。df -h 后发现空间还很多,于是寻找代码错误,打开 backup.sh,搜索错误信息定位到 229 行,发现脚本分别使用了 dfdu -b 计算备份文件夹剩余空间与网站占用空间,两者单位并不相同,去掉 -b 参数即可。也就是修改为以下代码,随后保存文件。

  • wwwroot_size=`expr $(du -s ${www_dir} | awk '{ print $1 }') + ${wwwroot_size}`

测试运行

  • chmod a+x backup.sh && ./backup.sh

定时任务

测试正常工作后即可添加定时任务,实现自动备份并上传。

  • crontab -l > conf
  • cat >> conf <<EOF
  • 0 2 * * * cd /usr/local/etc/WebServerAutoBackup && ./backup.sh > /root/backup/log/backup-cron.log 2>&1 &
  • EOF
  • crontab conf
  • rm -f conf
TG 大佬群 QQ 大佬群

最后编辑于: 2019 年 08 月 02 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论

Loading captcha...

  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • (。•ˇ‸ˇ•。)
  • 泡泡
  • 阿鲁
  • 蛆音娘
  • 小埋
  • 颜文字

已有 9 条评论
  1. 强调几点:(该留言由系统自动生成!)
    1. 请不要刷广告,本站没有流量!
    2. 我不回复虚假邮箱,因为回复了你也看不到!
    3. 存在必须回复的隐藏内容时,可以直接使用表情框里的阿鲁表情!

  1. Kevan Kevan   Mac OS X 10.14.3  Google Chrome 75.0.3770.100

    用的是宝塔面板,自带这些功能

    1. LOGI LOGI   Android 8.0.0  Google Chrome 75.0.3770.101

      @Kevan 早知道我也宝塔

    2. Xin Xin   Windows 7 x64 Edition  Google Chrome 75.0.3770.100

      @LOGI 你是什么服务器?阿里的吗??

    3. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 75.0.3770.100

      @Xin嗯,香港轻量云 ,你用的哪家?

    4. Xin Xin   Windows 7 x64 Edition  Google Chrome 75.0.3770.100

      @LOGI 阿里学生机

    5. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 75.0.3770.100

      @Xin看来我们半斤八两 ,其实备个案加上 CDN 还是够用的。

    6. Xin Xin   Windows 7 x64 Edition  Google Chrome 75.0.3770.100

      @LOGI 就是备案比较麻烦

    7. LOGI LOGI   Android 8.0.0  Google Chrome 75.0.3770.101

      @Xin抓紧备,加不加 CDN 速度差别还是很大的

    8. Xin Xin   Windows 7 x64 Edition  Google Chrome 75.0.3770.100

      @LOGI 已经备了,现在是未加 CDN 的状态