crontab -e这个命令,哪个用户使用了它,那么系统就会用那个用户身份执行相关的命令或者脚本。
所以http://hi.baidu.com/du_liang/blog/item/895bb8dd520c4eaccd1166e5.html文中的*/5 * * * * /sbin/service iptables stop 这样写可以,但*/5 * * * * root /sbin/service iptables stop 却不行...,因为会把root当成命令来看,可用tail /var/log/cron中的日志对比一下
2、系统的 cron 任务
cron 守护进程在搜索 /var/spool/cron 目录下用户的 crontab 文件的同时, 还将搜索 /e tc/crontab 文件,这个文件是系统安装时设置好的自动安排的进程任务的crontab 文件。这为系统管理员安排 cron 任务提供了方便。
CentOS 默认的 /etc/crontab 文件的内容为:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
/etc/cron.daily、/etc/cron.m onthly、/etc/cron.weekly 和 /etc/cron.hourly 是四个目录,分别放置系统每天、每个月、每周和每个小时要执行的任务的脚本文件。
run-parts 命令的作用是运行指定目录下的所有可执行文件(包括程序或脚本)。
crontab 文件中的每一行格式为:
minute hour day-of-month month-of-year day-of-week [username] commands
* * * * * [username] commands
其中username(以它的身份执行)是可选的,commands是每次都必须指定的字段。前面的5个日期字段如果不指定可以*号代替。
注:run-parts参数表示,执行后面目录中的所有可执行文件,如果单独执行某个脚本的话,是不需要增加run-parts参数的。]
所以要指定cron的用户执行身份的话,是在/etc/crontab中,而不是用crontab命令。
/var/spool/cron/ 该目录下存放所有用户的cron服务
/var/log/cron 记录cron运行的日志信息。
linux
crontab
指定
执行
的
用户
。
一般来说我们通过
crontab
-e来添加定时任务, 但是如何优雅的
指定
该定时任务以哪个
用户
的
身份
来
执行
呢?
方法是直接在/etc/
crontab
文件
中
追加定时任务 并制定
用户
(我的环境是Ubuntu linaro),如下
直接在/etc/
crontab
文件
中
添加,不过需要是root
身份
。打开文件,应该会看到类似下面的信息
需求:需要每一天对数据库做一个备份,oracle数据库,
linux
系统。
备份
命令
采用最简单的导出\导入。
首先确认服务器是否开启任务计划服务,只有root
用户
才能对crond服务进行开启和关闭
[root@enfo124 ~]# service crond statuscrond (pid 1758) is running...[root@enfo124 ~]# service cron...
通常
运行
php时都是
指定
用户
,如www,php。这里以www为例。
通过WEB端访问,PHP写入的文件都是属于www
用户
权限。如果缓存文件,日志文件。如果使用管理员
命令
行
运行
php
脚本
会赋予root权限,导致文件权限混乱。
如果通过
命令
行方式如何使用www
用户
运行
?
1.直接
运行
sudo -u www php -V
2.定时任务
a.直接管理
用户
下的定时任务
crontab
-e -u www
b.修改定时任务文件
vi /etc/
crontab
代码如下:
/3 * * * * www /root/te
在
Linux
系统
中
,可以使用
crontab
命令
来设置定时任务,并且可以
指定
任务由
特定
用户
执行
。首先,
用户
需要使用
命令
sudo
crontab
-u username -e来编辑
指定
用户
的定时任务。
接着,在打开的文本编辑器
中
,
用户
可以按照一定的格式添加定时任务。格式为:分钟 小时 日 月 周
命令
,其
中
“分钟”表示0-59之间的整数、“小时”表示0-23之间的整数、“日”表示1-31之间的整数、“月”表示1-12之间的整数、“周”表示0-7之间的整数(0和7都表示周日),而“
命令
”则为要
执行
的具体
命令
。
一个例子可以是:0 2 * * * /usr/bin/python /path/to/your/script.py,表示每天凌晨2点
执行
指定
的Python
脚本
。
设置完定时任务后,
用户
可以通过
命令
sudo
crontab
-u username -l来查看
指定
用户
的定时任务列表,以确认任务是否设置成功。
总之,
Linux
系统
中
可以通过
crontab
命令
来设置定时任务,而通过sudo
crontab
-u username -e
命令
可以
指定
任务由
特定
用户
执行
。这样可以让不同的
用户
在系统
中
运行
各自的定时任务,提高了系统的灵活性和安全性。