×

linux定时任务crontab

linux定时任务crontab(如何让linux定时任务crontab按秒执行)

admin admin 发表于2023-06-15 12:15:52 浏览36 评论0

抢沙发发表评论

本文目录

如何让linux定时任务crontab按秒执行


crontab 需要由root用户部署,逗su - “ 切换到root;
地crontab -e“ 进入crontab 编辑状态;
输入“ * * * * * /usr/bin/bash /home/ganlin/ganlin.sh“, 这代表每秒执行一次脚本。
部署完成后 输入 地crontab -l“ 查看crontab 中所有部署的内容;
脚本最好不要放在/home目录下,可以在脚本中写入一行标准输出用来在部署完成后测试结果用。
逗》 /dev/null 2》&1逗 这样写得结果是就看不到标准输出了, /dev/null 代表一个虚拟的设备 把标准输出写到一个不存在的设备中去了。

linux定时任务crontab怎么启动


crontab 需要由root用户部署,“su - “ 切换到root;
”crontab -e“ 进入crontab 编辑状态;
输入“ * * * * * /usr/bin/bash /home/ganlin/ganlin.sh“, 这代表每秒执行一次脚本。
部署完成后 输入 ”crontab -l“ 查看crontab 中所有部署的内容;
脚本最好不要放在/home目录下,可以在脚本中写入一行标准输出用来在部署完成后测试结果用。
“》 /dev/null 2》&1“ 这样写得结果是就看不到标准输出了, /dev/null 代表一个虚拟的设备 把标准输出写到一个不存在的设备中去了。

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


第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间。
while
true
;do
command
sleep
XX
//间隔秒数
done
第二种方案,使用crontab。
以下方法将每20秒执行一次
crontab
-e
*
*
*
*
*
/bin/date
*
*
*
*
*
sleep
20;
/bin/date
*
*
*
*
*
sleep
40;
/bin/date
说明:需要将/bin/date更换成你的命令即可
这种做法去处理隔几十秒的定时任务还好,要是每1秒运行一次就得添加60条记录。。。如果每秒运行还是用方案一吧。
作者
shootyou

关于linux crontab


如crontab 没有成功,检测crontab 服务是否启动,
/etc/init.d/crond status
/etc/init.d/crond restart
cron 是系统守护进程,位置:
/etc/init.d/crond
参数:
start
stop
restart
reload
建议看看《Linux就该这么学》这本书
crontab执行后日志文件路径。
/var/log/cro

crontab定时任务配置是什么


相关配置文件。

/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。

/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。

/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。

作为普通用户来讲只需关注/var/spool/cron/对应用户的配置文件即可。

crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较高,一个要求你的程序是24X7小时不宕机,一个是要求你的调度程序比较可靠。

实际工作中,90%的程序都没有必要花这么多时间和精力去解决上面的两个问题的,只需要写好自己的业务逻辑,通过crond这个工业级程序去调度就行了,crond的可靠性,健壮性,大家应该是毫无疑问的。


linux使用cron怎么设置定时任务


确定设置crontab的用户,举例用root执行:
crontab -e
进入编辑模式:
00
00 * * * 执行命令
表示每天00点00分执行命令一次
其他时间设置:
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
crontab详解:
1.作用
使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户。
2.格式
crontab [-u user] {-l | -r | -e}
3.主要参数
-e:执行文字编辑器来设定时程表,内空的文字编辑器是vi
-r:删除目前的时程表
-l列出目前的时程表。
Crontab文件的格式为”M H D
m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。Cmd表示要运行的程序,它被送入sh执行,这个shell只有USER、HOME、SHELL三个环境变量。
使用cron服务,用server crond status查看cron服务状态,如果没有启动则service
crond start启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或编辑需要定时执行的任务:
crontab –u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab –l //列出某个用户cron服务的详细内容
crontab –r //删除某个用户的cron服务
crontab –e //编辑某个用户的cron服务
crontab filename //以filename作为crontab的任务列表文件并载入
比如说root查看自己的cron设置:crontab –u root –l
再例如,root想删除fred的cron设置:crontab –u fred –r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab –u root –e
进入vi编辑模式,编辑的内容一定要符合下面的格式:
*/1
* * * * ls 》》/tmp/ls.txt
编辑/etc/crontab文件,在末尾加上一行:30 5 * * * root init 6这样就将系统配置为每天早上5点30分自动重新启动。
crontab 文件中的行由6个字段组成,不同字段间用空格或tab键分隔。前5个字段指定命令要运行的时间
分钟(0-59)
小时(0-23)
日期(1-31)
月份(1-12)
星期几(0-6,其中0代表星期日,好像7也代表星期日)
第6个字段是一个要在适当时间执行的字符串。
例子:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2
* * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜一到礼拜三的早上11点
0 11 4 * 1-3 date
#1月1日早上4点
0 4 1 1 * date
补充:在使用crontab的时候,要特别注意的是运行脚本中能够访问到的环境变量和当前测试环境中环境变量未必一致,一个比较保险的做法是在运行的脚本程序中自行设置环境变量(export)
(1) 先建一个文件crond.txt如下,每天早上5点36分重新启动
36 5 * * * reboot
(2)上传到/opt目录
(3)运行命令
crontab /opt/crond.txt
crontab –l
让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后,也要重新启动cron服务器。
在Fedora和Redhat中,我们应该用:
/etc/rc.d/crond restart
如果让crond在开机时运行,应该改变其运行级别:
chkconfig –level 35
crond on
service crond status查看cron服务状态,如果没有启动则service
crond start启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或者编辑需要定时执行的任务