https://blog.csdn.net/xuntianzong/article/details/22279911
http://blog.163.com/lgh_2002/blog/static/440175262011101602343/
设置cron有两种方法
(
当启动linux时,它运行为一个后台进程。它每分钟检查一次相应的配置文件来了解是否有事件需要得到运行。
有两组cron配置文件。一组由一个全局配置文件(/etc/crontab)来控制,另一组基于个别用户使用crontab命令所创建的配置文件。
)
1、使用crontab命令
crontab -u //指定某个用户的cron服务
crontab -l //列出某个用户的cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
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运行的日志信息。
笔者补充:
crontab中,希望运行shell脚本,然后shell脚本中有调用python程序时,可以把shell脚本放到python程序同一级目录下,
然后crontab中cd到该目录,再 bash xx.sh 运行,在shell脚本中,调用python时,可以写用户自己的python程序使用的python环境(如果有多个python环境,crontab会默认取root的python)
今天做了个数据库的备份
脚本
,顺便系统得学习一下Linux下定时执行
脚本
的设置。Linux下的定时执行主要是使用
crontab
文件
中
加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。下面看一下具体的用法: 首先查看一下/etc/
crontab
文件:$ cat /etc/
crontab
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/
/configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/项目名/fastdfs-nginx-module/src。cp /usr/local/项目名/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/只需输入自己账户的密码即可。示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 mv /usr/tmp/aaa /usr。
http://blog.csdn.net/jazywoo123/article/details/175785292013.121、用root权限登陆2、
crontab
-u lsbi -e3、加入要启动的
命令
,如40 4 18 * * /oracle_backup/bin/scott_select.sh4、重新启动service crond restart5、OK特别注意:1、cmd要
运行
的程序...
- ps -ef | grep sshd 查找
指定
ssh 服务进程
- ps -ef | grep sshd | grep -v grep 查找
指定
服务进程,排除 gerp 本身 ...
通常
运行
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
之前有个业务,每分钟执行
crontab
,会每天自动记录日志,但是日志的属主是root
这个时候fpm的www
用户
就会写入日志失败
crontab
-e是普通的编辑增加一个
crontab
crontab
-u www -e
这样编辑的
crontab
就是以www
用户
执行的
crontab
-l -u www
可以展示所有以www
用户
执行的cron指令
linux
crontab
指定
执行的
用户
。html通常来讲咱们经过
crontab
-e来添加定时任务, 可是如何优雅的
指定
该定时任务以哪一个
用户
的
身份
来执行呢?linux方法是直接在/etc/
crontab
文件
中
追加定时任务 并制定
用户
(个人环境是Ubuntu linaro),以下bash直接在/etc/
crontab
文件
中
添加,不过须要是root
身份
。打开文件,应该会看到相似下面的信息pos...
本教程提供三种方法:1.直接以需要
指定
的
用户
登录(对于没有bash登录权限的
用户
不可用)su aswl
crontab
-e2.以root
用户
登录,然后创建
指定
用户
的
crontab
文件sudo
crontab
-e -u aswl注:
crontab
文件为 aswl
用户
创建,不便管理3.修改系统
crontab
文件,
指定
用户
执行vi /etc/
crontab
文件内容初始如下:SHELL=/bin...
Centos下可以通过配置
crontab
来定时执行任务,执行体可以是一条系统
命令
或自己写的一个
脚本
,同时可以指派
用户
来执行。配置
crontab
有两种方法。方法1、使用
crontab
命令
,例如添加一个新的或编辑已有的,使用:
crontab
-e就可以进入配置文件。此时配置
crontab
的执行者是当前登入
用户
,如果当前
用户
是root,需要为其他
用户
配置,可以使用
crontab
-e -u
用户
名或su...
linux下可以通过配置
crontab
来定时执行任务,执行体可以是一条系统
命令
或自己写的一个
脚本
,同时可以指派
用户
来执行。配置
crontab
有两种方法。方法1、使用
crontab
命令
,例如添加一个新的或编辑已有的,使用:
crontab
-e
就可以进入配置文件。此时配置
crontab
的执行者是当前登入
用户
,如果当前
用户
是root,需要为其他
用户
配置,可以使用
crontab
-e -u...
一般来说我们通过
crontab
-e来添加定时任务, 但是如何优雅的
指定
该定时任务以哪个
用户
的
身份
来执行呢?
方法是直接在/etc/
crontab
文件
中
追加定时任务 并制定
用户
(我的环境是Ubuntu linaro),如下
直接在/etc/
crontab
文件
中
添加,不过需要是root
身份
。打开文件,应该会看到类似下面的信息
/usr/bin/sudo -u pennyliang bash -c ' echo xxx '
这时这个echo xxx总是执行不了,后来发现是因为root的
crontab
的
脚本
如果切换到其他账号是需要账号密码的,
找到一个文章,解决了这个问题,并记录下来 http://blog.csdn.net/wangxia