主页 > 学习 | 工作 > CentOS5之crontab

CentOS5之crontab

手工备份mysql比较烦,而且曾出现了两次故障,导致数据回滚到前一天,所以还是写了个mysql自动备份脚本,然后加入到系统任务中,希望每天凌晨备份数据库。

下面是/opt/mysqlbackup.sh脚本内容:

#!/bin/sh

DATE=`date +%Y%m%d`

/opt/mysql/bin/mysqldump --opt jsweb -u root > /opt/backup/$DATE.sql

############下面是改进后的脚本,备份后的sql文件只保留最新的三天#######

#!/bin/sh

DATE=`date +%Y%m%d`

/opt/mysql/bin/mysqldump –opt jsweb -u root   > /opt/backup/$DATE.sql

#######del########

echo “delete old mysqlbackup”

DAYS=3

find /opt/backup -name “*.sql” -type f -mtime +$DAYS -exec rm {} \;

echo “complete to delete”

#######################################################

然后加入到系统任务:

[root@KS-11 etc]# crontab -e

然后在最末尾输入以下内容:

01 3 * * * /opt/mysqlbackup.sh

[root@KS-11 etc]# crontab -l

01 3 * * * /opt/mysqlbackup.sh

用-l可以看到已经成功添加的任务

但是,第二天,我却未能在/opt/backup里面发现备份的sql文件,脚本经过运行测试,发现没有问题!把crond重启,也不行!

[root@KS-11 etc]# crond started

crond: can’t lock /var/run/crond.pid, otherpid may be 8319: 资源暂时不可用

查看系统日志如下:

[root@KS-11 etc]# vim /var/log/cron

Dec 12 04:01:01 KS-11 crond[7253]: (root) CMD (run-parts /etc/cron.hourly)
Dec 12 04:02:01 KS-11 crond[7255]: (root) CMD (run-parts /etc/cron.daily)
Dec 12 04:02:01 KS-11 anacron[7258]: Updated timestamp for job `cron.daily’ to 2011-12-12
Dec 12 05:01:02 KS-11 crond[7811]: (root) CMD (run-parts /etc/cron.hourly)
Dec 12 05:01:02 KS-11 crond[7813]: (root) CMD (root /opt/mysqlbackup.sh)
Dec 12 06:01:01 KS-11 crond[7917]: (root) CMD (run-parts /etc/cron.hourly)
Dec 12 07:01:01 KS-11 crond[8018]: (root) CMD (run-parts /etc/cron.hourly)
Dec 12 08:01:01 KS-11 crond[8121]: (root) CMD (run-parts /etc/cron.hourly)
Dec 12 09:01:01 KS-11 crond[8224]: (root) CMD (run-parts /etc/cron.hourly)
Dec 12 09:28:08 KS-11 crond[8299]: (CRON) DEATH (can’t lock /var/run/crond.pid, otherpid may be 23552: 资源暂时不可用)
Dec 12 09:28:56 KS-11 crontab[8303]: (root) LIST (root)
Dec 12 09:29:26 KS-11 crond[8304]: (CRON) DEATH (can’t lock /var/run/crond.pid, otherpid may be 23552: 资源暂时不可用)

百度Google半天也不知道问题所在..看到日志中的/etc里面有cron.monthly、cron.weekly、cron.daily、cron.hourly几个文件夹:

[root@KS-11 etc]# ls cron(tab键补齐)

cron.d/ cron.deny cron.monthly/ cron.weekly/
cron.daily/ cron.hourly/ crontab

果然有,然后我把/opt/mysqlbackup.sh拷贝一份到/etc/cron.daily,然后,明天看看有没有新增备份…(未完待续)

–2011-12-13 09:13–补充:

早上来,登陆到系统,进入/opt/backup中,发现了备份的sql文件:

[root@KS-11 backup]# ll
总计 171072
-rw-r–r– 1 root root 58327138 12-08 12:41 20111208.sql
-rw-r–r– 1 root root 58327138 12-09 10:33 20111209.sql
-rw-r–r– 1 root root 58327138 12-13 03:01 20111213.sql

目前,还有一点需要证实,是不是把脚本丢到/etc/cron.daily中,就不用crontab -e编辑任务了…早上刚想到的..继续实验。

—2011-12-14  09:26—

经证实,只要把脚本丢到目录下即可,而不用crontab -e了!执行时间大概在凌晨4点左右!如果crontab -e加入,起到的作用是规定运行时间。

原创文章,转载请注明: 转载自三叶草

本文链接地址:http://www.anjing.me/1336.html

特别声明:商业网站转载需经作者同意,否则视为侵权!

, , ,

评论:2

参与评论
  1. 回复 三叶草 11/12/14

    上面的mysql备份没有加上删除多久前的脚本,补上

    #!/bin/sh

    echo “delete old mysqlbackup”

    DAYS=7

    find /opt/backup -name “*.sql” -type f -mtime +$DAYS -exec rm {} \;

    echo “complete to delete”

  2. 回复 三叶草 12/01/18

     
    ####
    echo “del old backup”
    find /opt/mysqlbackup/ -name “new*” -type f -mtime +7|xargs rm -f
    echo “complete to del”

     

发表评论

邮箱地址不会被公开。

*

引用:0

下面所列的是引用到本博客的链接
CentOS5之crontab 来自 三叶草
顶部