VPS Linux 自动备份
下载脚本
wget --no-check-certificate https://github.com/teddysun/across/raw/master/backup.sh
chmod +x backup.sh
脚本功能
- 支持 MySQL/MariaDB/Percona 的数据库全量备份或选择备份;
- 支持指定目录或文件的备份;
- 支持加密备份文件(需安装 openssl 命令,可选);
- 支持上传至 Google Drive(需先安装 gdrive 并配置,可选);
- 支持在删除指定天数本地旧的备份文件的同时,也删除 Google Drive 上的同名文件(可选)。
配置文件
变量说明
ENCRYPTFLG
加密FLG
,true
为加密,false
为不加密,默认是加密
BACKUPPASS
加密密码,重要,务必要修改
LOCALDIR
备份目录,可自己指定
TEMPDIR
备份目录的临时目录,可自己指定
LOGFILE
脚本运行产生的日志文件路径
MYSQL_ROOT_PASSWORD
MySQL/MariaDB/Percona
的 root
用户密码
MYSQL_DATABASE_NAME
指定 MySQL/MariaDB/Percona
的数据库名,留空则是备份所有数据库
MYSQL_DATABASE_NAME
是一个数组变量,可以指定多个。举例如下:
MYSQL_DATABASE_NAME[0]="phpmyadmin"
MYSQL_DATABASE_NAME[1]="test"
BACKUP
需要备份的指定目录或文件列表,留空就是不备份目录或文件
BACKUP
是一个数组变量,可以指定多个。 举例如下:
BACKUP[0]="/data/www/default/test.tgz"
BACKUP[1]="/data/www/default/test/"
BACKUP[2]="/data/www/default/test2/"
LOCALAGEDAILIES
指定多少天之后删除本地旧的备份文件,默认为 7 天
DELETE_REMOTE_FILE_FLG
删除 Google Drive
或 FTP
上的备份文件 FLG
,true
为删除,false
为不删除
FTP_FLG
上传文件至 FTP
的 FLG
,true
为上传,false
为不上传
FTP_HOST
连接的 FTP
域名或 IP
地址
FTP_USER
连接的 FTP
的用户名
FTP_PASS
连接的 FTP
的用户的密码
FTP_DIR
连接的 FTP
的远程目录
开启自动备份
修改 /etc/crontab
文件,添加如下内容,实现每隔 3 天在 03:30 分进行备份。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
30 3 */3 * * root bash /root/backup_teddysun.sh
参考链接
- 一键备份脚本:秋水逸冰
- Crontab 命令:每天一个linux命令(50):crontab命令