对于才了解crontab的人来说,应该按照以下的步骤来设置crontab
1.首先要检查是否装了crontab
http://blog.sina.com.cn/s/blog_4881040d01011gp4.html
2.安装crontab
cd /etc/cron.d yum install crontabs
3.crontab的启动与关闭
service crond statu service crond start / stop /restart
4.crontab的语法
* * * * * (分 时 天 月 年)
5.写入文件以检测crontab是否执行
1 * * * * /bin/echo 'date' > /dev/console 1 * * * * date >> /backup/test.txt (写入文件,更好检测)
好啦 crontab 建好啦,该定时备份数据库啦
1. 备份数据库语句 (你可以用下面的语句直接运行,看看备份的数据对不对)
for db in `echo "show databases" | mysql -p321| grep -v Database | grep -v mysql | grep -v test | grep -v info`;do mysqldump -p321 $db > $db-$(date +%y-%m-%d:%H:%M).sql;done
2.写bash文件
#yangling teached by qingrui
#create by 2015-07 #if [ -d /backup/dbback/$(date+%y_%m_%d) ];then
# bkfs=`wc -l /backup/dbback/$(date + %y_%m_%d)`
# if [bkfs !eq 0 ];then #if [ ! -d /backup/dbback/$(date + %y_%m_%d) ];then Days_backup_dir=$(date +%y_%m_%d) if [ ! -d /backup/dbback/${Days_backup_dir} ];then
mkdir -p /backup/dbback/${Days_backup_dir};
fi dbs=`ls /backup/dbback/${Days_backup_dir}/ | wc -l` if [ ${dbs} -eq 0 ];then
for db in `echo "show databases" | mysql -p321| grep -v Database | grep -v mysql | grep -v test | grep -v info`;do mysqldump -p321 $db > /backup/dbback/${Days_backup_dir}/$db-$(date +%y-%m-%d:%H:%M).sql;done
fi
3.启动crontab
* 03 * * * /backup/back-yl.sh 2>&1 >> /var/log/mysql-backup.log
在mysql备份的时候报错:(虽然我的表不是这个表,我是直接baidu出来的答案)
mysqldump: Got error: 1146: Table 'chj-goods-db.t_basegoods' doesn't exist when using LOCK TABLES
在表里面找不到该表,后来google了一下是该表删了,但是mysql的表文件还在
解决办法
直接删除t_basegoods.frm文件就可以了
个人情况:我直接在navicate中删除,刷新 表确实也不存在啦