4-Linux下定时任务的操作
##############################
Linux下的任务调度分为两类,系统任务调度和用户任务调度。 1,系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。 在/etc/crontab文件,这个就是系统任务调度的配置文件。 2,用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。 用户可以使用 crontab 工具来定制自己的计划任务。 在crontab 文件都被保存在/var/spool/cron目录中。其文件名与用户名一致
##########################
1.系统定时任务:例如清理系统日志,清理系统缓存 -->不过多的关注 查询系统定时处理任务的路径: 路径1: cd /etc/logrotate.d/ -->可以写定时任务 less syslog 路径2: cat /etc/crontab -->不推荐使用,但是可以看格式 路径3: ls /etc/ | grep cron* anacrontab cron.d -->同路径2 ,可以写定时任务 cron.daily cron.deny -->控制普通用户使用定时任务crontab cron.hourly cron.monthly crontab cron.weekly 2.用户的定时任务 -->关注重点
##################################
前四行是用来配置crond任务运行的环境变量 第一行SHELL变量指定了系统要使用哪个shell,这里是bash 第二行PATH变量指定了系统执行命令的路径 第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户 如果MAILTO变量的值为空,则表示不发送任务执行信息给用户 第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。 星号(*):代表所有可能的值,如month字段为星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。
小 结: 数字的表示最好用2为阿拉伯数字显示 周和日最好不要同时用 定时任务要加注解 可以定向到日志文件或者空文件 定时任务一定是绝对路径,且目录必须存在才能出结果 crontab 服务一定要开启运行
############################
0 0 * * * sh /root/autotest/hwtest/auto-del-log.sh 0 */3 * * * python3 /root/autotest/hwtest/hwtestpro/bbs/srun_bbs_test.py 0 */1 * * * python3 /root/autotest/hwtest/hwtestpro/bbs/url_main.py
零点零分执行,
每3小时0分执行一次
每1小时0分执行一次,
####################################
时间格式如下:
f1 f2 f3 f4 f5 program
解释:
f1 是表示分钟, 分钟(0-59)
f2 表示小时, 小时(0-23)
f3 表示一个月份中的第几日,一个月中的第几天(1-31)
f4 表示月份, 月份 (1 - 12)
f5 表示一个星期中的第几天。 星期中星期几 (0 - 7) (星期天 为0)
program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
######################
crontab -l 表示列出所有的定时任务 crontab -r 表示删除用户的定时任务,当执行此命令后,所有用户下面的定时任务会被删除,执行crontab -l后会提示用户:“no crontab for admin”
crontab -e 表示编辑定时任务,
###################################
常用的命令展示 安装crontab:yum install crontabs crontab服务操作说明: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置
查看crontab服务状态: service crond status
##########################################
在linux环境的python定时任务
############################################
1.首先配置linux环境,将anaconda设置为默认环境设置。 第一种方法: 通过 vi 修改 ~/.bash_profile 将export PATH="~/anaconda/bin:PATH"‘改为‘exportPATH=" /anaconda/envs/python3/bin:PATH"
`改为`export PATH="~/anaconda/envs/python3/bin:PATH"‘改为‘exportPATH=" /anaconda/envs/python3/bin:PATH"` 第二种方法: 编辑环境变量:vi /etc/profile 在最后一行加入:export PATH=/root/anaconda3/envs/python36/bin:$PATH 保存并退出::wq 环境变量生效:source /etc/profile
####################################
在linux环境的python定时任务
操作步骤
这里有两种方法进行定时任务添加,分别是crontab -e和编辑/etc/crontab。两种方法的语法也略有不同,/etc/crontab的语法比crontab -e多了一个用户字段。
crontab -e 用户级,不能设置用户字段
/etc/crontab 系统级,只能root用户权限使用,需要设置用户字段
####################################
crontab -e
这种方式是用户级的,所有用户的可以使用,实际保存在/var/spool/cron/username中。
但有的linux系统加在crontab -e会无效,这种方法不会对语法进行校验。具体操作步骤为:
crontab -e
添加定时任务,如每周一3点执行python脚本
0 3 * * 1 python /data/www/test.py
wq保存退出,完毕
简单说明一下crontab,它是linux系统的定时任务命令,与windows系统下的计划任务有点类似,
我们的使用方法也很简单,首先使用你当前的用户创建一个crontab文件,使用crontab -e命令创建一个文件,这个文件在这个目录下:
/var/spool/cron
使用 cd /var/spool/cron就可以切换到该目录下,文件名是以当前用户名命名的,
比如你当前是root权限账户,那你创建的文件可能就是root,如果你是test用户,那么文件名就是test,
切记,所有用户定义的crontab文件都被保存在/var/spool/cron目录中,之后编辑该文件,使用vim root或vim test编辑文件。
####################################
/etc/crontab
直接编辑/etc/crontab 比 crontab -e 多了一个用户名字段,该方法是系统级的,必须root权限使用
步骤:
vi /etc/crontab
在后面添加定时任务,如每周一3点执行python脚本
0 3 * * 1 root python /data/www/test.py
wq保存退出,完毕
#####################################
查看crontab日志 tail -f /var/log/cron
3. mail任务
在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。
########################################
技术改变命运