正文索引 [隐藏]

mysqldump免密码

通过在用户根目录下面创建一个.my.cnf文件添加以下内容,使得执行mysqldump时不需要输入密码

[mysqldump]
user=用户名
password=密码

添加完后修改文件权限防止其他用户使用

chmod 600 ~/.my.cnf

crontab执行脚本失败

原因是我使用oneinstack重新安装lnmp环境后,crontab的变量里没有添加mysqldump,所以脚本里要使用绝对路径

/usr/local/percona/bin/mysqldump -h 127.0.0.1 -P 3306 --databases wordpress > /home/backup/$DATE/$DATE-wordpress.sql

pigz多线程压缩

之前使用tar打包压缩发现跑不满cpu,导致压缩速度慢,所以利用pigz来多线程压缩

完整脚本如下

#!/bin/bash

DATE=$(date +%y-%m-%d)

#以当天日期创建文件夹
mkdir /home/backup/$DATE

#导出数据库
/usr/local/percona/bin/mysqldump -h 127.0.0.1 -P 3306 --databases wordpress > /home/backup/$DATE/$DATE-wordpress.sql

#打包压缩网站文件
cd /home/
tar -cf - ./wordpress/ | pigz > /home/backup/$DATE/$DATE-wordpress.tar.gz

#直接打包压缩整个数据库文件夹
cd /data/
tar -cf - ./percona/ | pigz > /home/backup/$DATE/$DATE-mysql.tar.gz