一、目录结构
二、backup.sh文件
#!/bin/bash
time=`date +%Y%m%d`
###################数据库配置信息#######################
host="127.0.0.1"
user="root"
port=3307
dbname="test-database"
mysql_back_path="/home/user/work/xxxx/data/database"
###################数据库配置信息#######################
mysqldump --defaults-file=$mysql_back_path/my.conf -h $host -u $user -P $port $dbname > $mysql_back_path/sql/$time.sql
#mysqldump --defaults-file=my.conf -h $host -u $user -P $port $dbname > $time.sql
注:
- 一条很重要的信息,必看,否则碰到此问题,你将处于懵逼状态。error: $‘\r‘
- 一条很重要的信息,读取不到my.conf里的密码信息,error:World-writable config file ‘/my.conf’ is ignored && Access denied for user ‘root’@‘127.0.0.1’ (using password: NO) when trying to connect。大概意思就是读写可执行权限过大,不能被读取,解决方式就是
chmod 644 my.conf
三、my.conf
[client]
password=123456
四、crontab配置(每日零时)
0 0 * * * /home/user/work/xxxx/data/database/backup.sh>>/home/user/work/xxxx/data/database/backup.log 2>&1
# 如果上述启动,报/bin/sh: 1: /xxx/xxx/xxx/xxxx.sh: not found,原因有可能是找不到bash路径(在docker中启动任务极可能碰到),可通过下面的方式解决→↓
# 0 0 * * * sh /home/user/work/xxxx/data/database/backup.sh>>/home/user/work/xxxx/data/database/backup.log 2>&1