Linux VPS一键备份脚本
1.1 backup.sh下载
backup.sh的主要特点有:
1、支持 MySQL/MariaDB/Percona 的数据库全量备份或选择备份;
2、支持指定目录或文件的备份;
3、支持加密备份文件(需安装 openssl 命令,可选);
4、支持上传至 Google Drive(需先安装 gdrive 并配置,可选);
5、支持在删除指定天数本地旧的备份文件的同时,也删除 GoogleDrive 上的同名文件(可选)。
下载该脚本并赋予执行权限:
wget--no-check-certificate https://github.com/teddysun/across/raw/master/backup.sh
备用:https://raw.githubusercontent.com/freehao123/across/master/backup.sh
chmod+x backup.sh
1.2 backup.sh配置
直接编辑backup.sh文件,相关的变量名说明:
ENCRYPTFLG (加密FLG,true 为加密,false 为不加密,默认是加密)
BACKUPPASS (加密密码,重要,务必要修改)
LOCALDIR (备份目录,可自己指定)
TEMPDIR (备份目录的临时目录,可自己指定)
LOGFILE (脚本运行产生的日志文件路径)
MYSQL_ROOT_PASSWORD (MySQL/MariaDB/Percona 的 root 用户密码)
MYSQL_DATABASE_NAME (指定 MySQL/MariaDB/Percona 的数据库名,留空则是备份所有数据库)
BACKUP (需要备份的指定目录或文件列表,留空就是不备份目录或文件)
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 的远程目录,比如: public_html)
※ MYSQL_DATABASE_NAME 是一个数组变量,可以指定多个。举例如下:
MYSQL_DATABASE_NAME[0]=”phpmyadmin”
MYSQL_DATABASE_NAME[1]=”test”
※ BACKUP 是一个数组变量,可以指定多个。举例如下:
BACKUP[0]=”/data/www/default/test.tgz”
BACKUP[1]=”/data/www/default/test/”
BACKUP[2]=”/data/www/default/test2/”
1.3 backup.sh备份
执行以下命令开始备份:
./backup.sh
我们可以在我们设置的路径下看到已经备份的文件和数据库。
注:MySQL错误处理: Errcode: 24 “Toomany open files” when using LOCK TABLES|大数据库备份与导出导入,解决办法很简单,加上参数就好:–skip-lock-tables 跳过lock table的步骤
Linux VPS主机自动备份查看备份
如果你设置了加密备份的话,想要查看的话还需要解密,命令如下:
opensslenc -aes256 -in /root/backups/ubuntu_20200101160232.tgz.enc -outdecrypted_backup1.tgz -pass pass:qimm -d -md sha1
百度网盘
Centos7下利用crontab+bypy实现自动备份数据到百度网盘
一、关于
有时候我们需要进行数据备份,如果能自动将数据备份到百度网盘,那将会非常方便。百度网盘有较大的存储空间,而且不怕数据丢失,安全可靠。下面简单的总结一下如何使用 bypy 实现百度网盘数据的同步。
这是一个百度云的Python 客户端,其主要目的和功能,就是为 Linux 使用者提供一种在命令行下,使用百度云盘中的存储空间的方法。它提供文件列表、下载、上传、比较、向上同步、向下同步,等操作。
二、环境配置
环境:Centos7+python2.7.5
查看系统是否有python环境(一般系统自带python2.7)
安装pip、bypy
sudo yum -y install epel-release #这是安装pip时要用到的东西
sudo yum -y install python-pip
sudo yum clean all
sudo pip install --upgrade pip #更新
#如果无法更新可以使用命令:sudo python -m pipinstall --upgrade pip
sudo pip install bypy
sudo pip install requests
如出现如下界面,则安装完成
三、授权登陆
执行bypy info
bypy info
访问方框内的连接
登陆百度云账号
获得授权码
粘贴到终端上
授权完成后可查看相关信息,由于百度PCS API权限限制,程序只能存取百度云端/apps/bypy目录下面的文件和目录
bypy info #空间使用信息
bypy list #目录信息
四、使用bypy备份数据
例如我们可以备份上传‘’/test"目录下的所有文件
把本地当前目录下的文件同步到百度云盘:
bypy upload #要注意切换到你想要上传的目录在执行这个命令
登录到网盘上,可以看到所有文件已经上传
把云盘上的内容同步到本地:
bypy downdir
比较本地当前目录和云盘根目录,看是否一致,来判断是否同步成功:
bypy compare
五、使用crontab实现定时自动数据备份
crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab储存的指令被守护进程**, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。每个用户可以拥有自己的crontab文件。同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc目录中。
用法:* * * * *command。前面5个*代表执行命令时间,后面的command代表要执行的命令。该命令可以使一个普通的命令、shell脚本、python脚本、java的jar包等
创建shell脚本
此脚本使用bypy upload命令将/opt/backups/sql文件夹下所有文件上传至网盘中apps\bypy\dlb文件夹下
添加crontab任务
crontab -e
输入以下内容,“* 23 ** *“表示每天23点,“/usr/bin/sh”是执行脚本命令的路径,后面的事要被执行的脚本的绝对路径(为避免环境问题,推荐命令带上路径)
查看任务
crontab -l
crontab -r 删除任务
重启crond服务
systemctl restart crond
这样系统将会每天定时执行数据备份的脚本
crontab配置文件位于“/etc/crontab”,打开配置文件,可以看到相关配置信息