记录linux中定时备份sql脚本的shell
脚本代码如下:
mysqldb.sh
#!/bin/bash
DUMP=/usr/bin/mysqldump
OUT_DIR=/usr/local/data/project/sql #sql输出路径
LINUX_USER=root
DB_NAME1=lj_think #自己的数据库名字
#DB_NAME2=db_2
#DB_NAME3=db_3
DB_USER=root
DB_PASS=123456
cd $OUT_DIR
DATE=`date +%Y%m%d%H%M`
keepbackups=`date -d "3 days ago" +%Y%m%d`
OUT_SQL1=$DATE'_db1'.sql
#OUT_SQL2=$DATE'_db2'.sql
#OUT_SQL3=$DATE'_db3'.sql
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME1 > $OUT_DIR/$OUT_SQL1
#$DUMP --sock=/tmp/mysql.sock -u$DB_USER -p$DB_PASS $DB_NAME2 > $OUT_DIR/$OUT_SQL2
#$DUMP --sock=/tmp/mysql.sock -u$DB_USER -p$DB_PASS $DB_NAME3 > $OUT_DIR/$OUT_SQL3
chmod +x $OUT_SQL1
#chmod +x $OUT_SQL2
#chmod +x $OUT_SQL3
cd $OUT_DIR
find . -name "${keepbackups}*.sql" | xargs rm -rf
如果出现编码问题 需要 vim 该文件 然后 :set ff=unix :wq
可以先进行测试一下 bash mysqldb.sh 看是否能生成sql文件,成功的话 接下来做定时。
给该文件权限
chmod 777 mysqldb.sh
进入crontab 定时器 写定时任务
crontab -e
crontab 的基本语法 :
* * * * * command
分 时 日 月 周 命令
在最后添加该语句。/root/mysqldb.sh 是该文件存放的位置。
0 0 * * * sh /root/mysqldb.sh