1.首先检查下有没有安装crond,命令为service crond status,如果出现unrecognized service,则说明没有安装,如果出现 crond is stopped。如果出现crond (pid 1956) is running...则表示正在运行
2. 如果没有安装则使用命令yum install vixie-cron 进行安装
3. 安装成功后,接下来创建一个备份文件夹mysqlbackup,名字看你自己,建文件夹命令如下
#cd /usr/local 进入指定文件夹下
#mkdir mysqlbackup 创建文件夹
#cd /usr/local/mysqlbackup
#mkdir mysqldata
可以通过xftp看到刚创建的文件夹
4. 接下来开始写脚本执行文件,在mysqlbackup目录下新建一个sh文件,命令为
#vi /usr/local/mysqlbackup/backupdata.sh
然后按i 进入编辑状态,输入如下脚本:
#备份地址
backupdir=/usr/local/mysqlbackup/mysqldata
#时间
time=_` date +%Y_%m_%d_%H_%M_%S `
#需要备份的数据库名称
db_name=testdata
#mysql 用户名
db_user=test
#mysql 密码
db_pass=abcd1234
mysqldump -u $db_user -p$db_pass $db_name | gzip > $backupdir/$db_name$time.sql.gz
#删除三天之前的备份文件
find $backupdir -name $db_name"*.sql.gz" -type f -mtime +3 -exec rm -rf {} \; > /dev/null 2>&1
编辑完后按 esc键退出,然后按 :wq保存。
其中-mtime+1,表示删除一天前的数据,-nmin+1,表示删除1分钟之前的数据
5. 新建一个执行文件的配置文件,用于注册到crond中
#vi /usr/local/mysqlbackup/backupdata_config
和上一步一样进入编辑状态 编辑 0 0 * * *
/usr/local/mysqlbackup/backupdata.sh
保存,意思是每天凌晨备份文件
6.添加调度任务
crontab usr/local/mysqlbackup/backupdata_config
7 添加可执行权限
.chmod u+x backupdata.sh
查看调度任务,#crontab -l。我定义的是每天22点执行备份计划。
结束!
注意:如果备份时出现mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect的错误,修改正确的路径即可
1).找到正确的路径 netstat -ln | grep mysql
unix 2 [ ACC ] STREAM LISTENING 34394 /var/lib/mysql/mysql.sock
2).在运行dump命令就可以了
[root@localhost]# mysqldump --socket=/var/lib/mysql/mysql.sock -u root -p bcdata vps_login_info > /usr/local/mysqlbackup/mysqldata/vps_login_info2018-06-25.sql
3).也可以修改 my.cnf 文件 添加[client]添加socket=/var/lib/mysql/mysql.sock
4).或使用软连接 ln -s /storage/db/mysql/mysql.sock /var/lib/mysql/mysql.sock