crontab定时执行python脚本_contOS crontab 定时执行python脚本

## contOS crontab 定时执行python脚本

#### 安装crontab

```python

yum install crontabs

```

#### crontab语法

- 常用系统命令

```python

ntsysv //查看系统开机启动项

chkconfig crond on //添加开机自启

service crond start //启动服务

service crond stop //关闭服务

service crond restart //重启服务

service crond reload //重新载入配置

service crond status //查看crontab服务状态

cat /var/log/cron //查看运行日志

```

- 参数说明

```python

minute hour day month week command 顺序:分 时 日 月 周

```

- minute:表示分钟,可以是从0到59之间的任何整数。

- hour:表示小时,可以是从0到23之间的任何整数。

- day:表示日期,可以是从1到31之间的任何整数。

- month:表示月份,可以是从1到12之间的任何整数。

- week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

- command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

-

**在以上各个字段中,还可以使用以下特殊字符:**

- 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

- 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

- 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

- 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

**例:在每天的23点30分执行脚本,并同时输出执行错误日志到log文件**

```python

30 23 * * * python /home/***/***/test.py >> /home/***/***/test.log 2>&1

```

```python

30 21 * * * /etc/init.d/nginx restart //每晚的21:30重启 nginx。

45 4 1,10,22 * * /etc/init.d/nginx restart //每月1、 10、22日的4 : 45重启nginx。

10 1 * * 6,0 /etc/init.d/nginx restart //每周六、周日的1 : 10重启nginx。

0,30 18-23 * * * /etc/init.d/nginx restart //每天18 : 00至23 : 00之间每隔30分钟重启nginx。

0 23 * * 6 /etc/init.d/nginx restart //每星期六的11 : 00 pm重启nginx。

* */1 * * * /etc/init.d/nginx restart //每一小时重启nginx

* 23-7/1 * * * /etc/init.d/nginx restart //晚上11点到早上7点之间,每 隔一小时重启nginx

0 11 4 * mon-wed /etc/init.d/nginx restart //每月的4号与每周一到周三 的11点重启nginx

0 4 1 jan * /etc/init.d/nginx restart //一月一号的4点重启nginx

*/30 * * * * /usr/sbin/ntpdate 210.72.145.20 //每半小时同步一下时间

```

#### 修改crontab配置文件

- 方法一:直接输入命令 crontab -e

crontab默认使用vi编辑器,系统没vi编辑器会提示以下错误,可直接切换至配置文件目录下编辑

crontab配置文件都被保存在 **/var/spool/cron** 目录中

```python

[root@VM_0_5_centos log]# crontab -e

/bin/sh: /usr/bin/vi: No such file or directory

crontab: "/usr/bin/vi" exited with status 127

[root@VM_0_5_centos log]#

```

crontab配置文件内容:

```python

1*/1 * * * * /usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &

2 0 0 * * * /usr/local/qcloud/YunJing/YDCrontab.sh > /dev/null 2>&1 &

3 * * * * * python /DouYinVersion/spider.py # 每分钟运行一次spider.py

```

- 方法二:修改**/etc/crontab**配置文件

**/etc/crontab 比 crontab -e 多了一个用户名字段,该方法是系统级的,必须root权限使用**

```python

1 SHELL=/bin/bash

2 PATH=/sbin:/bin:/usr/sbin:/usr/bin

3 MAILTO=root

4

5 # For details see man 4 crontabs

6

7 # Example of job definition:

8 # .---------------- minute (0 - 59)

9 # | .------------- hour (0 - 23)

10 # | | .---------- day of month (1 - 31)

11 # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

12 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

13 # | | | | |

14 # * * * * * user-name command to be executed

15 * * * * * root python /DouYinVersion/spider.py # 每分钟运行一次spider.py

```

****

#### 坑点:

- 命令参数问题

每项参数后面都有一个空格

- 路径问题

python解释器路径使用绝对路径 **查询python解释器路径: which python**

脚本文件使用决定路径 **查询脚本路径:find / -name xxx.py**

**重要的事情说三遍:**

```python

**脚本代码中必须使用绝对路径**

**脚本代码中必须使用绝对路径**

**脚本代码中必须使用绝对路径**

```

- **配置完成不能正常运行可查看/var/spool/mail 目录下的运行日志**

****

**本文仅供学习交流使用,如侵立删!

企鹅 : 1033383881**

******

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值