crontab 指定执行用户

jackxiang 2013-12-5 10:46 | |
1)查看当前用户下的cron任务:crontab   -l  
2)编辑当前用户的定时任务:crontab -e
3)编辑root用户linuxso的定时任务: crontab -u  root  -e


linux下可以通过配置crontab来定时执行任务,执行体可以是一条系统命令或自己写的一个脚本,同时可以指派用户来执行。配置crontab有两种方法。
方法1、使用crontab命令,例如添加一个新的或编辑已有的,使用:

crontab -e

就可以进入配置文件。此时配置crontab的执行者是当前登入用户,如果当前用户是root,需要为其他用户配置,可以使用

crontab -e -u 用户名


su 用户名
crontab -e

这种方法有一个缺点,就是当前系统中配置的crontab不在一个配置文件中,让管理员不方便查询系统到底有多少个crontab。

方法2、直接在/etc/crontab文件中添加,不过需要是root身份。打开文件,应该会看到类似下面的信息
vi /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

要添加新的crontab,只需要在文件最后增加即可。注意这里面需要指定用户名;而方法1中则不需要,如果指定了,它会认为是命令的一部分,从而可能导致crontab执行失败。

如果服务器都是有root来管理,建议添加crontab使用方法2,这样系统中的所有计划任务都在一起,一目了然。
示例:
接下来举个例子来使用crontab。
  先写一个脚本,脚本的功能是将/root下的文件进行打包压缩且以系统时间命名,压缩文件存放在/root/backup目录下。脚本如下

接下来在/etc/crontab文件中添加任务,修改后的文件为 :

注意17行的语句,它表明每隔20分钟执行一次/root/backup.sh脚本。
最后在/root/backup目录下发现备份的文件,crontab生效。

来自:http://www.netingcn.com/crontab-designate.html
参考:http://blog.csdn.net/hou_hou_hou/article/details/8930453

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/6855/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2013-12-5 11:31
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]