怎么恢复linux定时器任务,定时操作 crontab at 以及恢复定时操作

1.crontab

2.Linux下实现秒级定时任务的三种方案(crontab 每秒运行)

3.apscheduler 定时任务框架(python实现)

1.定时模块crontab

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

定时文件有两个地方

1.crontab -e 用户定时任务,每个用户都有一个对应的crontab 文件,在/var/spool/cron/ 下

/etc/crontab 这个是系统定时文件,不会根据用户不同而改变

注意:

定时任务的时候尽量写绝对路径

尽量不要用 crontab crontab_file 以免覆盖 当前用户的定时任务 源文件

遇到的问题:

1.crontab 没有生效

检查crontab是否启动

centos: /etc/init.d/crond status

/etc/init.s/crond restart

vi /etc/crontab 中, 要加执行用户username * * * * * user-name command to be executed

2.如果不小心通过尽量不要用 crontab crontab_file 或者其他操作覆盖清出了当前用户下的定时文件,如何恢复?

a.获取完整日志和cmd日志.从日志中恢复出一份最近几天的完整crontab 运行日志和cmd日志,并存储,用于之后完善和核准例行时间。

cat /var/log/cron | grep -i "`which cron`" > ./all_temp

cat ./all_temp | grep -v "” > ./cmd_temp

b. 获取所有crontab指令。

从日志中恢复一份去重的crontab log。【只保留所有的crontab命令】

#去重, 根据没命令的执行次数排序

cat all_temp | sort | uniq -c | more

然后手动恢复 crontab 命令

常用的定时操作

每分钟执行 一次

*/1 * * * * /data/canopy/bin/python/data/jennyruhu/monitor_car/calThree.py 2 >>/data/jennyruhu/calThree.log

每30分钟执行一次

*/30 * * * * /data/python /data/rsync_ip_info.pyc

每小时内固定时间执行一次(每个小时的01, 42, 44分的时候执行)

1,42,44 * * * * /data/python /data/rsync_ip_info.pyc

每天执行一次

0 * * * * run-parts /etc/cron.hourly

每小时执行一次

0 0 * * * /data/bin/sync_data.sh

2.Linux下实现秒级定时任务的三种方案(crontab 每秒运行

第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间。

while true ;do

command

sleep XX //间隔秒

done

第二种方案,使用crontab。

我们都知道crontab的粒度最小是到分钟,但是我们还是可以通过变通的方法做到隔多少秒运行一次。

以下方法将每20秒执行一次

crontab -e

* * * * * /bin/date

* * * * * sleep 20; /bin/date

* * * * * sleep 40; /bin/date

说明:需要将/bin/date更换成你的命令即可

这种做法去处理隔几十秒的定时任务还好,要是每1秒运行一次就得添加60条记录。。。如果每秒运行还是用方案一吧。

第三种方案:

Python任务调度模块 – APScheduler

3.Python任务调度模块 – APScheduler

0f60c62eeb54

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值