计划任务 crontab 基本运用

Linux 计划任务 Crontab

基本格式:

*  *  *  *  *  command
分  时  日  月  周   命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

crontab文件的一些例子:

30 21 * * * /opt/lampp/lampp restart
#上面的例子表示每晚的21:30重启lampp。

45 4 1,10,22 * * /opt/lampp/lampp restart
#上面的例子表示每月1、10、22日的4 : 45重启lampp。

10 1 * * 6,0 /opt/lampp/lampp restart
#上面的例子表示每周六、周日的1 : 10重启lampp。

0,30 18-23 * * * /opt/lampp/lampp restart
#上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lampp。

0 23 * * 6 /opt/lampp/lampp restart
#上面的例子表示每星期六的11 : 00 pm重启lampp。

* */1 * * * /opt/lampp/lampp restart
#每一小时重启lampp

* 23-7/1 * * * /opt/lampp/lampp restart
#晚上11点到早上7点之间,每隔一小时重启lampp

0 11 4 * mon-wed /opt/lampp/lampp restart
#每月的4号与每周一到周三的11点重启lampp

0 4 1 jan * /opt/lampp/lampp restart
#一月一号的4点重启lampp

crontab 命令参数:

crontab -e : 新增/修改时程表
crontab -r : 删除目前的时程表
crontab -l : 列出目前的时程表
crontab file [-u user]-用指定的文件替代目前的crontab。


实例1:Linux下SVN客户端版本库定时更新

现有两台机器
一台 windows : 192.168.1.125
一台 linux : 192.168.1.132 (Ubuntu 10.04 LTS / root)

windows 上运行有 SVN-Server (svn://192.168.1.125)
Linux 上安装有 SVN-Client , 现在想定时(每一小时)更新一次 Linux 上的版本库.

1, 先将 SVN-Server 上的版本库检出到 Linux 机器的指定目录 (/root/backup/winsvn/)

cd /root/
mkdir backup
cd backup/
mkdir winsvn
cd winsvn/
/usr/bin/svn checkout svn://192.168.1.125

2, 设置 crontab

crontab -e

#将 crontab 中的内容修改如下
#第一条是定时同步时钟的,
#第二条才是我们要的, 表示每小时的第50分钟执行一次 SVN 更新命令
#  注意:
#  LANG=en_HK.UTF-8 <-- 这一句话很重要,要将crontab的编码设置成系统环境编码,
#                       否则会造成手动执行 update 命令成功,但放到 crontab 中更新不成功
LANG=en_HK.UTF-8
# m h  dom mon dow   command
19 * * * * /usr/sbin/ntpdate ntp.api.bz
50 * * * * /usr/bin/svn update /root/backup/winsvn --username kuco --password kucopwd --no-auth-cache > /root/backup/winsvn_backup.log

P.S. 特别注意 LANG=en_HK.UTF-8 很重要, 在这个问题郁闷了很久. 可以通过 export 命令显示系统环境编码.

还有几点零星的知识点也一并记录在这里吧 :)

1, SVN客户端检出的时候把用户名和密码都保存了,如果想再切换成其它的用户来检出该怎么操作?

# windows 下
方法1:对于TortoiseSVN软件,右键出TortoiseSVN菜单Settings->Saved Data->Authentication data,Clear
方法2:C:\Documents and Settings\Administrator\Application Data\Subversion\auth

# linux 下
rm -rf ~/.subversion/auth

# 原文地址
#
http://blog.chinaunix.net/space.php?uid=20564848&do=blog&cuid=2200464

2, find 命令

# 在当前目录下查找文件名为 rsyslog.conf 的文件
find . -name "rsyslog.conf"

# find 命令详细介绍
#
http://www.linuxsir.org/main/?q=node/137


3, 打开 crontab 日志功能

# 默认情况下 ubuntu 执行 crontab 是没有记录日志的, 我们要手动打开
vim /etc/rsyslog.conf

# 发现 rsyslog.conf 调用了 /etc/rsyslog.d/*.conf
ls /etc/rsyslog.d/*.conf

# 先备份
cp /etc/rsyslog.d/50-default.conf /etc/rsyslog.d/50-default.conf.bak

# 再编辑
vim /etc/rsyslog.d/50-default.conf

# 将下面这一行前面的 # 去掉
#cron.*  /var/log/cron.log

# 重启日志服务
cd /etc/init.d/
service rsyslog restart

# 这样 crontab 执行的日志就会记录在
/var/log/cron.log

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值