crontab每30秒执行一次_crontab每20秒执行一次
如何用crontab每隔1分钟执行一个命令行脚本
10 4 /usr/in/ntpdate -w;任务:每一分钟运行一次 echo "command:所要执行的指令。 root sh /root/test.sh" >>/etc/crontab /etc/init.d/crond restart
crontab每30秒执行一次_crontab每20秒执行一次
crontab每30秒执行一次_crontab每20秒执行一次
php+mysql 怎样可以实现 即使不打开php页面,每隔30秒,mysql都可以自动删除一条数据呢。
输入crontab如果是linux系统,你可以在crontab里设置一条任务,连接数据库每隔30秒自动删除一条数据,如果是windows,去设置一下任务跑php脚本吧
用linux下的任务调度分为两类,系统任务调度和用户任务调度。ajax。
linux命令行下怎么定时执行一个命令?
at now + 20 minutes
at> echo "Hello !!" > /dev/pts/0
at>
crontab -e
×/20 × × × × echo "Hello !!" > /dev/pts/0详细请man at和man crontab
linux有个系统级的定时任务服务,叫cron,终端里的命令是crontab。
crontab -oot -e?>是编辑root用户的定时任务,输入这条会进入vi编辑模式。
编辑是有固定格式的,具体你可以搜索cron命令的用法。
写一个bash文件,里面放(sleep+时间)语句,后台执行(nohup)这个脚本就行了。另外可以参考一下crontab,这个相当于任务。
crontab -e
20 /hominute:代表一小时内的第几分,范围 0-59。me/clear.sh #每隔20分钟执行一次/home文件夹下的clear.sh脚本
crontab -e 命令的路径
怎样在linux中使用crontab编写一个定时任务,可以实现以下功能:
# Unlike any other crontab you don't he to run the `crontab'1、 crontab命令概念
除了在脚本中添加计数器外,还可以利用Linux系统自带的工具来进行。例如,可以使用cron定时任务来周期性地执行脚本,并在执行完毕后将执行结果写入日志文件中。通过分析日志文件,可以得知脚本的执行次数以及执行结果等信息。crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。
crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许
用户拥有自己的crontab文件。
2、检查是否安装了crontab,如果提示未安装请自行安装,crontab安装包在系统光盘里面的pacekage文件夹 相对应的crontab安装包。
3、 crontab服务启动与关闭。
4、 全局配置文件:
crontab在/etc目录下面存在cron.hoy,cron.daily,cron.weekly,cron.monthly,cron.d五个目录和crontab,cron.deny二个文件。
cron.daily是每天执行一次的job
cron.weekly是每个星期执行一次的job
cron.monthly是每月执行一次的job
cron.hoy是每个小时执行一次的job
cron.d是系统自动定期需要做的任务
crontab是设定定时任务执行文件
cron.deny文件就是用于控制不让哪些用户使用Crontab的功能
5、 用户配置文件:
每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般情况下我们编辑好用户的cron配置文件保存退出后,系统会自动就存放于/var/spool/cron/目录中,文件以用户名命名.linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的内容.
6、 crontab文件格式:
command
minute hour day month week command
分 时 天 月 星期 命令
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
7、 特殊字符:
星号():代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如/10,如果用在minute字段,表示每十分钟执行一次。
8、在home目录下编写一个test.sh脚本,脚本功能是把/home下ifcfg-0这个文本到/mnt目录下。
9、运行crontab –e 编写一条定时任务 /5 /home/test.sh 在每5分钟执行一次test.sh脚本。
10、查询当前用户定时任务或删除当前用户定时任务。
11、设置crond开机自动启动。
12、实例:
linux里面如何利用crontab 和 notify-send ,实现每秒钟发送一次通知到桌面?
crontab -oot -l 查看root用户的所有定时任务。..个是任务,但是第二个不会。你一秒发送一次真的不要紧吗
可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
具体格式如下:
每个字段代表的含义如下:
Minute 每个小时的第几分钟执行该任务
Hour 用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的任务。所有用户定义的crontab文件都被保存在 /var/spool/cron/crontabs/ 目录中,其文件名与用户名一致。 每天的第几个小时执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务
Command 指定要执行的程序
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选
字段,可视需要决定。对于不指定的字段,要用“”来填补其位置。
5 ls 指定每小时的第5分钟执行一次ls命令
30 5 ls 指定每天的 5:30 执行ls命令
30 7 8 ls 指定每月8号的7:30分执行ls命令
30 5 8 6 ls 指定每年的6月8日5:30执行ls命令
30 6 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,
linux脚本执行的次数
为了Linux脚本的执行次数,可以通过在脚本中添加计数器来实现。每次脚本执行完毕后,计数器自增1,这样就可以记录下脚本执行的次数。这种方法的好处是简单易行,只需要在脚本中添加几行代码即可实现。同时,可以将计数器的值输出到日志文件中,以便于后续分析和查看。
总之,Linux脚本的执行次数可以采用多种方法,根据实际需求选择合适的方法即可。同时,对于重要的脚本,建议进行定期备份并做好日志记录,以便于后续的管理和分析。
要Linux脚本的执行次数,可以通过在脚本中添加计数器来实现。在脚本执行的关键位置,可以使用计数器自增的语句,来统计脚本的执行次数。例如,在脚本的结尾处可以打印出执行次数的统计结果,以便于观察脚本的执行情况。
脚本的执行次数有助于我们对脚本的性能进行评估,以便于调整脚本的运行效率。此外,也可以通过脚本的执行次数,来检测脚本的健康状况,以便及时发现并解决脚本的问题。
在实际应用中,我们可以结合其他工具和技术来进行脚本的。例如,可以使用Linux系统的cron定时任务工具来定时运行脚本,并记录脚本的执行情况。也可以使用工具,如Nagios、Zabbix等,来对脚本的执行情况进行和报警。这些工具和技术可以帮助我们更加方便和准确地和管理Linux系统中的脚本运行。
可以使用Linux中的定时任务(crontab)来脚本执行的次数,具体方法如下:
1. 编写一个计数器脚本,每次到脚本执行的时候,就让计数器加1,并将计数器的值保存到一个文件中。
2. 在crontab中设置定时任务,让计数器脚本每隔一段时间(比如10分钟)执行一次。
3. 在crontab中设置另外一个脚本,用来检查计数器的值是否超过了某个阈值,如果超过了则发送一封邮件给。
这样就可以在Linux系统中脚本的执行次数了。脚本执行的次数有助于了解脚本的执行情况,及时发现问题并进行修复,提高系统的稳定性和可靠性。
另外,还可以通过其他方式来脚本的执行情况,比如使用工具(如Zabbix、Nagios等)进行,或者使用日志分析工具(如ELK Stack)来分析脚本的执行日志,从而了解脚本的执行情况和问题。
要实现对Linux脚本执行次数的计数,可以在脚本中加上计数器,并在每次脚本执行完成后将计数器加1。当需要查看脚本执行次数时,只需查看计数器即可。
原因是,Linux系统中有很多任务是需要定时执行的,比如备份、清理等。为了保证这些任务按时执行,需要设置任务,并对任务的执行情况进行。如果某个任务执行次数过低或者过高,就需要对任务的执行情况进行调整,以保证任务的稳定执行。
在实际应用中,对于需要的脚本,可以通过一些第三方的工具进行,如Nagios、Zabbix等,这些工具可以不仅可以脚本的执行次数,还可以脚本的运行时间、输出结果等。同时,在编写脚本时,也可以加入一些日志记录功能,以便对脚本的执行情况进行记录和分析。
为了脚本的执行次数,可以使用Shell脚本来实现。主要思路是在脚本中使用计数器变量,每次脚本执行时将计数器加1并将结果保存到一个文件中。下次执行脚本时,从文件中读取计数器的值并加1,再将结果保存回文件中。这样就可以实现对脚本执行次数的。
需要对脚本执行次数进行的原因可能有很多,比如想要了解脚本的运行状况,发现脚本有异常时可以及时发现并处理,或者对脚本的效率进行优化等等。在实际使用中,脚本的执行次数可以帮助我们更好地管理和维护系统,提高工作效率。
除了脚本执行次数,还有很多其他的Linux工具和技巧,如使用top命令查看系统资源占用情况、使用sar命令查看系统负载情况、使用netstat命令查看网络连接情况等等。这些工具和技巧可以帮助我们及时了解系统的运行状态,发现问题并进行解决。
如果要Linux脚本的执行次数,可以通过在脚本中增加统计代码的方式来实现。具体来说,可以在脚本中设定一个计数器变量,每次脚本被执行时,计数器变量就会自增1。这样,我们就可以通过查看计数器变量的值来了解脚本已经被执行的次数。
需要注意的是,计数器变量需要设置为全局变量,这样才能在脚本的多次执行中保持计数的连续性。此外,如果需要在多台机器上脚本的执行次数,可以将计数器变量存储在共享文件系统中,从而实现多台机器之间的数据共享。
除了脚本的执行次数,我们还可以通过其他方式来Linux系统的运行情况,比如使用系统自带的工具,如top、vmstat等,或者使用第三方工具,如Nagios、Zabbix等。这些工具可以帮助我们实时、全面地系统的各项指标,如CPU利用率、内存使用情况、磁盘空间占用率等,从而及时发现并解决系统问题,保证系统的稳定性和可靠性。
Linux脚本执行的次数可以通过在脚本中添加计数器实现。在脚本中定义一个变量,每次脚本执行结束后将计数器加1,将计数器的值输出即可。这样就可以得到脚本执行的次数。
对于为什么要Linux脚本执行的次数,原因有很多。首先,通过脚本执行的次数,可以了解脚本的运行情况,及时发现脚本出现问题并进行修复,保证脚本的正常运行。其次,通过脚本执行的次数,可以了解脚本的效率和性能,进而进行优化,提高脚本的执行效率和性能。此外,对于需要对脚本进行计费或者统计的情况,脚本执行的次数也非常有用。
需要注意的是,脚本执行的次数并不是的,还需要根据实际情况进行灵活运用。在实际应用中,还需要考虑到脚本的执行时间、执行结果、执行过程中产生的日志等因素。同时,脚本执行的次数也需要根据实际需求来定期清零或进行数据备份,以免数据量过大影响系统性能。
对于linux脚本执行的次数,有两种方法可以实现。
种方法是通过在脚本中添加计数器3,15 myCommand来实现。在脚本中定义一个变量,每次脚本执行时将变量加1,用于记录脚本执行的次数。这种方法简单易行,但是需要在脚本中添加额外的代码,不够灵活。
第二种方法是通过使用系统工具来实现,如使用cron定时任务来定期执行脚本,使用日志管理工具来记录脚本执行的次数和时间等信息。这种方法相对更加灵活,可以根据具体需求进行调整,但需要了解相关工具的使用方法和配置方式。
无论使用哪种方法,都可以很好地实现linux脚本执行的次数。同时,还可以结合其他工具,如Zabbix、Nagios等,对脚本执行的结果进行和报警,以保证系统的稳定性和安全性。
为了 Linux 脚本的执行次数,可以使用一些工具来实现,比如 cron 任务定时执行脚本并记录日志,或者使用系统工具来脚本执行的情况,比如 top、htop 等。
脚本执行的次数的原因是,通过脚本的执行次数,可以及时了解脚本的运行情况,发现问题并进行处理。比如,如果发现脚本执行次数异常增加,可能是脚本存在问题,需要及时修复。此外,脚本的执行次数还可以帮助我们了解脚本的使用情况,比如哪些脚本被使用得较多,哪些脚本存在较多的问题等等,对于开发和运维工作都有一定的帮助。
除了脚本的执行次数,还可以监每两个小时控脚本的执行时间、执行结果等等,以便及时发现和解决问题,提高系统的稳定性和可靠性。
为了Linux脚本的执行次数,可以考虑在脚本中加入计数器功能,每次脚本执行完成后,将计数器加1,并将计数器的值输出到文件中。这样就可以通过查看文件中的计数器值来了解脚本的执行次数。
在Linux中,可以使用一些工具来脚本的执行情况,例如cron和d。cron是Linux下的一个任务程序,可以定期执行某个脚本。而d是一个Linux系统管理器,可以系统中各个服务的运行情况,包括脚本的运行情况。
除了脚本的执行次数,还可以考虑脚本的运行时间、资源占用情况等,以便及时发现脚本运行出现的问题,并进行相应的调整和优化。
在linux下怎么让一个脚本定时运行
Linux中,周期执行的任务一般由cron这个守护进程来处理 ps -ef | grep cron
cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。
一、 cron在3个地方查找配置文件(设置shell脚本):
1、/var/spool/cron/yanggang 这个目录下存放的是每个用户(包括root)的crontab任务,每个任务以创建者的名字命名,比如用户tom建的crontab任务对应的文件就是/var/spool/cron/tom
yanggang@barry$ sudo ls -l /var/spool/cron/(或有时是 /var/spool/cron/crontabs/)
-rw------- 1 root crontab 1071 2011-09-19 17:20 root
-rw------- 1 yanggang crontab 1176 2011-09-24 11:07 yanggang
一般一个用户多只有一个crontab文件(如:root, yanggang等),其对应日志在/var/spool/mail/root(或/var/spool/mail/yanggang)文件里
2、/etc/crontab 这个文件负责安排由系统制定的维护系统以及其他任务的crontab。
PATH=/in:/bin:/usr/in:/usr/bin
MAILTO=root
HOME=/
# .---------------- 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
# | | | | |
# command to be executed
例如:
/5 root /usr/libexec/atrun
hour:代表一天中的第几小时,范围 0-23。
mday:代表一个月中的第几天,范围 1-31。
month:代表一年中第几个月,范围 1-12。
wday:代表星期几,范围 0-7 (0及7都是星期天)。
who:要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。
3、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
二、 权限
crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
用法如下:
2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。
4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,
以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。
AIX 中 普通用户默认都有 crontab 权限,如果要限制用户使用 crontab ,就需要编辑/var/adm/cron/cron.deny
HP-UNIX 中默认普通用户没得crontab 权限 ,要想放开普通用户的crontab 权限可以编
三、 创建cron脚本
步:写cron脚本文件,命名为crontest.cron。
15,30,45,59 echo "xgmtest....." >> xgmtest.txt 表示,每隔15分钟,执行打印一次命令
第二步:添加定时任务。执行命令 “crontab crontest.cron”。搞定
第三步:"crontab -l" 查看定时任务是否成功或者检测/var/spool/cron下是否生成对应cron脚本
四、 cron服务
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
/in/serv crond start //启动服务
/in/serv crond stop //关闭服务
/in/serv crond restart //重启服务
/in/serv crond reload //重新载入配置
/in/serv crond status //查看服务状态
例如: 使用sudo停止与启动服务
yanggang@barry$sudo serv cron stop
cron stop/waiting
yanggang@barry$ sudo serv cron start
cron start/running, process 7502
五、 crontab用法
每个用户都可以有自己的crontab文件,/var/spool/cron下的crontab文件不可以直接创建或者直接修改,该crontab文件是通过crontab -e命令创建的
在crontab文件中如何输入需要执行的命令和时间,该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,一个域是要被执行的命令。
每个域之间使用空格或者制表符分隔。格式如下:
minute hour day-of-month month-of-year day-of-week commands
合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday)
"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。
-l 在标准输出上显示当前的crontab。
-r 删除当前的crontab文件。
-e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。
当结束编辑离开时,编辑后的文件将自动安装。
几个例子:
每天早上6点
0 6 echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
0 /2 echo "He a break now." >> /tmp/test.txt
晚上11点到早上8点之间每两个小时和早上八点
0 23-7/2,8 echo "He a good dream" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 1-3 command line
1月1日早上4点
0 4 1 1 command line SHELL=/bin/bash PATH=/in:/bin:/usr/in:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/
01 root run-parts /etc/cron.hoy
每天(凌晨4:02)执行/etc/cron.daily内的脚本
02 4 root run-parts /etc/cron.daily
每星期(周日凌晨4:22)执行/etc/cron.weekly内的脚本
22 4 0 root run-parts /etc/cron.weekly
每月(1号凌晨4:42)去执行/etc/cron.monthly内的脚本
42 4 1 root run-parts /etc/cron.monthly
注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。
每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。
5,15,25,35,45,55 16,17,18 command
00 15 1,3,5 shutdown -r +5
每小时的10分,40分执行用户目录下的i/bbslin这个指令:
10,40 i/bbslink
每小时的1分执行用户目录下的bin/account这个指令:
1 bin/account
每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):
203 (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)
每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。
12,553 4-,4 /bin/rm -f expire.1st$#@62;$#@62;mm.txt
六、几个问题
crond 进程没有运行
1. 启动crond进程
/etc/init.d/crond start
2. 开机自启动crond进程
chkconfig crond on
crontab 编辑:
输入编辑命令: crontab -e
# m h dom mon dow command
Ctrl + O (写入)——》enter键(保存文件名)——》Ctrl + X(退出)
输入查看命令: crontab -l
# m h dom mon dow command
30 cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(建议使用此方式)
语法错误:
Syntax error: "(" unexpected
路径错误:
在 /var/spool/crontab/yanggang 中,添加了如下命令,在日志文件 /var/spool/mail/yanggang 中提示找不到 xxx.sh 路径
30 /home/barry/top800/top10/top10_fruits/top10_all.sh
或30 bash /home/barry/top800/top10/top10_fruits/top10_all.sh
这是因为在crontab中使用了路径执行脚本 top10_all.sh,因此在脚本 top10_all.sh 中引用的其它脚本也都需要使用路径,才能被crontab找到并执行
30 cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(建议使用此方式,先进入该目录,然后在执行脚本;否则,执行脚本中的其它脚本都需要加路径)
Linux有一个很好的定时任务的软件——Cron。Arch Linux的话默认就会安装,其它发行版可以现在软件库搜一下cron一般可以搜到。为了能够访问这个命令,用户必须添加到 users 用户组。
具体的命令和定时设计参考Archwiki,说的很清楚。
任务 crontab
root@ubuntu:~# cat /etc/crontab
0 0 1 1,4,7,10 /usr/in/ntpdate -w;# /etc/crontab: -wide crontab
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also he username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/in:/usr/local/bin:/in:/bin:/usr/in:/usr/bin
# m h dom mon dow user command
17 root cd / && run-parts --report /etc/cron.hoy
25 6 root test -x /usr只执行一次用at,比如:/in/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 7 root test -x /usr/in/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 root test -x /usr/in/anacron || ( cd / && run-parts --report /etc/cron.monthly )
每天9点30执行这个shell
30 9 sh ./my.sh
Linux设置定时任务
每周一,三,五的下午3:00系统进入维护状态,重新启动系统。《使用PSSH批量管理Linux》 一文中,已经学习了使用pssh批量管理linux的技巧。而很多时候,我们需要定时执行一些任务,或者需要定时执行一些批量任务。因此,本文就来研究一下linux设置定时任务的方法。
cron(crond)是linux下用来周期性的执行某种任务或等待处理某些的一个守护进程。linux系统上面原本就有非常多的性工作,因此这个系统服务是默认启动的。crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。另外,由于使用者自己也可以设置任务,所以,linux系统也提供了使用者控制任务的命令:crontab命令。
crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。 /etc/crontab 文件就是系统任务调度的配置文件。
设我们使用的是Ubuntu14.04.5 版,查看 /etc/crontab ,内容为:
行SHELL变量指定了系统要使用哪个shell;第二行PATH变量指定了系统执行 1、如果两个文件都不存在,则只有root用户才能使用crontab命令。命令的路径。
接下来的命令格式为:
m h dom mon dow user command
英文全拼为:
minute hour day month week user commond
注意, /var/spool/cron 目录中的用户调度任务,没有user一项,因为文件名已经代表了user。
在以上各个字段中,还可以使用以下特殊字符:
crontab命令格式为:
crontab [-u username] [file] [ -e | -l | -r ]
设置定时任务和时间紧密相关,如果的时区时间设置和本地不同,就不能保证任务的正确执行。所以使用crontab的步,是调节好的时间。
下面参考 Ubuntu 16.04将系统时间写入到硬件时间BIOS ,对时间进行调节。
时间是有时区的,无论硬件时间还是作系统时间。hwclock的时区在/etc/default/rcS文件中设置,里面有一个参数UTC,默认值为yes,表示使用UTC时区,如果设置为no,那表示使用osclock的时区。建议hwclock与osclock设置相同的时区,也就是no。
1、查看硬件时间
sudo hwclock -r ,看到的时间格式为: Wed 23 May 2018 11:02:17 AM HKT -0.031663 seconds
2、查看系统时间
date ,看到的时间格式为: Wed May 23 11:02:41 HKT 2018
3、设置hwclock和osclock时区相同
sudo vim /etc/default/rcS ,找到:
修改为:
4、将系统时间写入硬件时间
sudo hwclock -w
5、修改系统时区
osclock的时区配置文件为/etc/timezone,不建议直接修改配置文件。
如果你想修改为CST时间,那么执行 sudo tzselect 命令时,选择Asia->China->Beijing Time即可,这时会提示使用Asia/Shanghai时区。(ubuntu和centos通用)
6、设置即刻生效
执行 date ,发现时区没有变化,依然是HKT。
sudo cp /usr/share/zone/Asia/Shanghai /etc/localtime
sudo ntpdate 如果执行ntpdate报错:ntpdate[18409]: no server suitable for synchronization found ,那么就换一个时间同步工具。
sudo apt-get install rdate
sudo rdate -s time-b.nist.gov
再次执行 date ,发现时区已经变成了CST。
7、硬件时间同步
sudo hwclock -r ,发现硬件时间落后。
sudo hwclock -w ,再次把系统时间写入硬件时间,同步完成。
实例1:每分钟、每小时、每天、每周、每月、每年执行
实例2:每小时的第3和第15分钟执行
实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 myCommand
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 /2 myCommand
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 1 myCommand
实例6:每晚的21:30重启b
30 21 /etc/init.d/b restart
实例7:每月1、10、22日的4 : 45重启b
45 4 1,10,22 /etc/init.d/b restart
实例8:每周六、周日的1 : 10重启b
10 1 6,0 /etc/init.d/b restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启b
0,30 18-23 /etc/init.d/b restart
实例10:每星期六的晚上11 : 00 pm重启b
0 23 6 /etc/init.d/b restart
实例11:每一小时重启b
0 /etc/init.d/b restart
实例12:晚上11点到早上7点之间,每隔一小时重启b
0 23-7/1 /etc/init.d/b restart
实例13:每月的4号与每周一到周三的11点重启b
0 11 4 mon-wed /etc/init.d/b restart
实例14:一月一号的4点重启b
0 4 1 jan /etc/init.d/b restart
实例15:每小时执行/etc/cron.hoy目录内的脚本
01 root run-parts /etc/cron.hoy
run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了。
目标:每分钟查看一下ganglia的状态,并保存到/tmp/log/ganglia目录。
1、创建/tmp/log/ganglia目录
sudo mkdir -p /tmp/log/ganglia
sudo chmod a+w /tmp/log/ganglia
2、编辑crontab
crontab -e ,选择编辑器为vim
3、在crontab文件中添加一行
4、查看crontab任务
crontab -l ,看到任务已经添加成功。
5、等待了五分钟,发现/tmp/log/ganglia目录下啥也没有。
sudo serv cron status ,状态正常。
sudo /etc/init.d/cron restart ,重启cron试试。
又等待了五分钟,发现/tmp/log/ganglia目录下依然空空。
莫非是因为pssh没有使用路径? whereis pssh ,找到pssh路径为 /usr/lib/pssh ,修改crontab为:
然而,并没有用。
还是查看下crontab日志吧!
以下主要参考 Ubuntu下用crontab 部署定时任务 。
1、编辑50-default.conf
sudo vim /etc/rsyslog.d/50-default.conf
2、把cron前的井号去掉,也就是修改为:
3、重启rsyslog服务
sudo serv rsyslog restart
4、重启crontab服务
sudo serv cron restart
5、查看crontab日志
less /var/log/cron.log
果然发现了问题:
也就是说,命令确实按时执行了,只不过没有执行完,被百分号截断了,导致log文件没有正常生成!
修改crontab为:
终于,log文件成功生成,n!但是,文件内容是空的!因为, /usr/lib/pssh 是一个目录,不是pssh命令!真正的pssh命令是parallel-ssh,找到它的位置为 /usr/bin/parallel-ssh ,修改crontab:
至此,问题解决。
实际使用的时候,一天获取一次ganglia的状态就够了,所以crontab改成:
以上,每天执行一次定时任务,抓取ganglia的运行状态保存到日志文件中。紧接着,我们的目标是使用脚本检查当天的日志文件,如果发现ganglia运行异常,则产生一个错误日志。
1、设日志文件ganglia-20180524.log的内容为:
2、参考 grep命令经常使用的功能总结 ,编写脚本checkganglia.sh
3、执行
chmod a+x checkganglia.sh
./checkganglia.sh
如果所有客户机的ganglia运行正常,就会输出All servs are runing!。如果有的客户机ganglia进程不存在,则会在/tmp/log/ganglia/目录下生成当天的错误日志。
4、设置定时运行
因为日志的检查工作要在日志生成之后,所以时间上延后十分钟。
上面的脚本,还有很多要改进的地方。比如有的客户机宕机了,上面的脚本检查不出来。比如有的客户机ganglia服务没有启动,那么具体是哪几台?针对这两个问题,下面进行改进。设已经知道客户机的数量为10。
参考 csplit命令 ,checkganglia.sh脚本修改为:
以上脚本,实现了当客户机数量不为10的时候,进行报错;当客户机ganglia服务没有启动时,进行报错,并且筛选出所有没有启动ganglia的客户机。
本文中,我们先学习了crontab的基础知识和基本用法。然后通过ganglia这一个应用场景来具体学习crontab的详细使用方法,包括查看cron日志的方法,crontab中命令转义的方法,定时执行脚本的方法,以及审阅日志脚本的编写和进阶。
至此,还不够完美,因为我们需要每天登录管理机查看有没有错误日志。下一篇 Linux设置邮件提醒 中,我们将会研究linux设置邮件提醒的方法。审阅完日志后,如果脚本能够给我们发送一封邮件,告知我们审阅的结果,那么我们就不必再每天查看错误日志。
树莓派(linux)怎么每1秒执行一次python脚本呢 越简单越好 谢谢
如何避免路径复杂的设置呢,如上文 六、几个问题 所示,采用如下格式:可以利用Linux的Day 每月的第几天执行该任务定时任务
-e,对定时任务进行编辑
格式是:“任务重复的时间
执行的命令”
任务重复的时间有专门的格式
每秒重复一次就需要添加一行
/1
python
xxx.py
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。