任务调度的crond常驻命令
crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
1、linux任务调度的工作主要分为以下两类:
*系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
*个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。
2.crontab命令选项:
-u指定一个用户,
-l列出某个用户的任务计划,
-r删除某个用户的任务,
-e编辑某个用户的任务
3.cron文件语法:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
4.记住几个特殊符号的含义:
"*"代表取值范围内的数字,
"/"代表"每",
"-"代表从某个数字到某个数字,
","分开几个离散的数字
crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
1、linux任务调度的工作主要分为以下两类:
*系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
*个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。
2.crontab命令选项:
-u指定一个用户,
-l列出某个用户的任务计划,
-r删除某个用户的任务,
-e编辑某个用户的任务
3.cron文件语法:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
4.记住几个特殊符号的含义:
"*"代表取值范围内的数字,
"/"代表"每",
"-"代表从某个数字到某个数字,
","分开几个离散的数字
一、任务调度设置文件的写法
可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
具体格式如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
具体格式如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
每个字段代表的含义如下:
Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务
Command 指定要执行的程序
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
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,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[ 注:“,”用来连接多个不连续的时段 ]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[ 注:“-”用来连接连续的时段 ]
*/15 * * * * ls 每15分钟执行一次ls命令 [ 即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[ 即每月的1、11、21、31日是的6:30执行一次ls命令。 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
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,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[ 注:“,”用来连接多个不连续的时段 ]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[ 注:“-”用来连接连续的时段 ]
*/15 * * * * ls 每15分钟执行一次ls命令 [ 即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[ 即每月的1、11、21、31日是的6:30执行一次ls命令。 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
二、新增调度任务
新增调度任务可用两种方法:
1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
新增调度任务可用两种方法:
1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
三、查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务
四、删除任务调度工作
crontab -r //删除所有任务调度工作
crontab -r //删除所有任务调度工作
五、任务调度执行结果的转向
例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中
30 5 * * * ls >/jp/test 2>&1
注:2>&1 表示执行结果及错误信息。
例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中
30 5 * * * ls >/jp/test 2>&1
注:2>&1 表示执行结果及错误信息。
编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly
//每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily
//每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly
//每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly
//每月去执行/etc/cron.monthly内的脚本
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
提取文件内容,并发送。
[root@localhost ~]# cat /etc/maillog
#!/bin/bash
/sbin/iptables -A INPUT -p tcp --dport 25 -s ! 127.0.0.1 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 110 -s ! 127.0.0.1 -j DROP
/etc/init.d/sendmail start
/usr/bin/tail -n 5 /var/log/iptables >> /var/log/dailylog
/usr/bin/tail -n 5 /var/log/iptables | /bin/mail aaa@gmail.com -s natlog_123.147.255.18_222.55.0.206
sleep 1
/usr/bin/tail -n 5 /var/log/iptables | /bin/mail aaa@gmail.com -s natlog_123.147.255.18_222.55.0.206
sleep 1
cat /var/log/dailylog2 | /bin/mail aaa@gmail.com -s natlog_222.55.1.74
sleep 1
cat /var/log/dailylog2 | /bin/mail aaa@gmail.com -s natlog_222.55.1.74
#!/bin/bash
/sbin/iptables -A INPUT -p tcp --dport 25 -s ! 127.0.0.1 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 110 -s ! 127.0.0.1 -j DROP
/etc/init.d/sendmail start
/usr/bin/tail -n 5 /var/log/iptables >> /var/log/dailylog
/usr/bin/tail -n 5 /var/log/iptables | /bin/mail aaa@gmail.com -s natlog_123.147.255.18_222.55.0.206
sleep 1
/usr/bin/tail -n 5 /var/log/iptables | /bin/mail aaa@gmail.com -s natlog_123.147.255.18_222.55.0.206
sleep 1
cat /var/log/dailylog2 | /bin/mail aaa@gmail.com -s natlog_222.55.1.74
sleep 1
cat /var/log/dailylog2 | /bin/mail aaa@gmail.com -s natlog_222.55.1.74
/usr/sbin/ntpdate time.stdtime.gov.tw
#/bin/sleep 3600
#/bin/sleep 3600
---------------------------------------------------------------------------------------------------------
现在的网络由于各种原因 对于时间同步要求很高——比如银行,某些网站论坛。
配置ntp就是他们要面对的一个问题,在NTP中有Ntp,xntp等各种软件。我们选用Rad Hat中标配的NTP。
配置ntp就是他们要面对的一个问题,在NTP中有Ntp,xntp等各种软件。我们选用Rad Hat中标配的NTP。
首先让大家了解下NTP:
使用端口123
协议 UDP
用处 同步网络时钟
使用端口123
协议 UDP
用处 同步网络时钟
首先到下载ntp-4.1.1-1.i386.rpm
( ftp://rpmfind.net/linux/redhat/7.3/en/....1.1-1.i386.rpm)
不下载最新的,因为高版本可能你的linux版本(AS 3.1)不支持,并且不要选4.0.9版本(有溢出漏洞)
( ftp://rpmfind.net/linux/redhat/7.3/en/....1.1-1.i386.rpm)
不下载最新的,因为高版本可能你的linux版本(AS 3.1)不支持,并且不要选4.0.9版本(有溢出漏洞)
如果链接失效推荐一个不错的搜索引擎(
http://rpmfind.net/linux/rpm2html/search.php)
# wget ftp://ftp.pbone.net/mirror/ftp.wesmo.com/pub/redhat/i386/ntp-4.1.1-1.i386.rpm
#rpm -ivh ntp-4.1.1-1.i386.rpm //默认安装即可
接下来编辑 /etc/ntp.conf
首先你可以去ntp.org上找到哪些ntp服务器离你较近
首先你可以去ntp.org上找到哪些ntp服务器离你较近
ntp.conf
#############################################################################################
server clock.tl.fukuoka-u.ac.jp #校对服务器1
server clock.uregina.ca
server swisstime.ethz.ch
server ntp0.fau.de # 比较多的服务器可以防止因为网络故障导致无法校对时间
server 127.127.1.1 #这行可删除
fudge 127.127.1.1 stratum 10 #同上
driftfile /etc/ntp/drift #/etc/ntp/drift 可能是ntp.drift 这无所谓,看你的版本号
#############################################################################################
server clock.tl.fukuoka-u.ac.jp #校对服务器1
server clock.uregina.ca
server swisstime.ethz.ch
server ntp0.fau.de # 比较多的服务器可以防止因为网络故障导致无法校对时间
server 127.127.1.1 #这行可删除
fudge 127.127.1.1 stratum 10 #同上
driftfile /etc/ntp/drift #/etc/ntp/drift 可能是ntp.drift 这无所谓,看你的版本号
restrict clock.tl.fukuoka-u.ac.jp
restrict clock.cuhk.edu.hk
restrict swisstime.ethz.ch
restrict ntp0.fau.de
restrict 127.0.0.1
restrict 192.168.x.y #x.y为自己的IP
restrict 192.168.x.x mask 255.255.255.0 nomodify #让x网段的机器都能访问自己,进行时间校对
#restrict default ignore #这行删除或注释都可以
#############################################################################################
#/sbin/service ntpd start //启动ntpd 参数可为restart start stop
#/sbin/chkconfig --add ntpd
#/sbin/chkconfig --level 234 ntpd on //配置在开机时运行
#/sbin/chkconfig --add ntpd
#/sbin/chkconfig --level 234 ntpd on //配置在开机时运行
接下来在客户端安装NTP
安装过程同上
安装过程同上
接下来编辑 /etc/ntp.conf
ntp.conf
#############################################################################################
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
fudge 127.127.1.0 stratum 10
server stdtime.gov.hk # A stratum 1 server at server.org
server 192.168.x.y #x.y为你前面所装机器在局域网里的IP
driftfile /etc/ntp/drift
broadcastdelay 0.008
authenticate no
keys /etc/ntp/keys
server 192.168.x.y #x.y为你前面所装机器在局域网里的IP
driftfile /etc/ntp/drift
broadcastdelay 0.008
authenticate no
keys /etc/ntp/keys
restrict 192.168.x.0 mask 255.255.255.0 notrust nomodify notrap//x.0为你所在局域网段
restrict 127.0.0.1
restrict 192.168.x.y #x.y为你前面所装机器在局域网里的IP
#restrict default ignore
#############################################################################################
restrict 127.0.0.1
restrict 192.168.x.y #x.y为你前面所装机器在局域网里的IP
#restrict default ignore
#############################################################################################
同时配置
#/sbin/service ntpd start //启动ntpd 参数可为restart start stop
#/sbin/chkconfig --add ntpd
#/sbin/chkconfig --level 234 ntpd on //配置在开机时运行
#/sbin/service ntpd start //启动ntpd 参数可为restart start stop
#/sbin/chkconfig --add ntpd
#/sbin/chkconfig --level 234 ntpd on //配置在开机时运行
如何检查?
#netstat -unl | grep 123 //查看123端口
#ndptrace 192.168.x.y //看校对时间过程,出现offset即为正常 否则为time out
# ntpq -p
如果出现 jitter的值 为4000则是防火墙或者网络问题
正常为
remote refid st t when poll reach delay offset jitter
==============================================================================
*clock.nc.fukuok .GPS. 1 u 43 64 37 19.067 -6.884 10.339
+clock.tl.fukuok .GPS. 1 u 36 64 35 19.670 -3.259 2.341
LOCAL(0) LOCAL(0) 5 l 45 64 37 0.000 0.000 0.001
remote refid st t when poll reach delay offset jitter
==============================================================================
*clock.nc.fukuok .GPS. 1 u 43 64 37 19.067 -6.884 10.339
+clock.tl.fukuok .GPS. 1 u 36 64 35 19.670 -3.259 2.341
LOCAL(0) LOCAL(0) 5 l 45 64 37 0.000 0.000 0.001
几点注意:
1.虽然ntp溢出问题较少 ,但建议配置大型网罗的时候,不要装在重要数据库服务器或者Web主机上(Ntp是root权限)
2.在遇到问题之前,先看看ntp自带的文档
3.防火墙问题的话,送一句配置
$TMP -t filter -A INPUT -p udp --destination-port 123 -j ACCEPT
也就是123 udp in 全部接受
2.在遇到问题之前,先看看ntp自带的文档
3.防火墙问题的话,送一句配置
$TMP -t filter -A INPUT -p udp --destination-port 123 -j ACCEPT
也就是123 udp in 全部接受
-------------------------------------------------------------
这两天家园的漫游平台的游戏一直打不开,查来查去竟然是因为服务器时间不准确。这个国内双线的vps服务器自己不准,只有自己动手了。
首先,你可以从这里下载一个时间服务器的tar.gz包:
http://support.ntp.org/bin/view/Main/WebHome
客户端和服务端安装一样,解开tar包,
#./configure --prefix=/usr/local/ntp && make && make install && make clean
好了,进入你的/usr/local/ntp/bin目录下,你会发现如下几个文件:
ntpd ntpdate ntpdc ntp-keygen ntpq ntptime ntptrace ntp-wait sntp tickadj
其中ntpdate就是我们要用的。
执行 crontab -e
在crontab中定时执行一行命令
0 */2 * * * /usr/local/ntp/bin/ntpdate time.windows.com >>/var/log/ntpdate.log
每两小时从 time.windows.com 同步标准时间 ,并把结果日志保存到 /var/log/ntpdate.log 文件中。
首先,你可以从这里下载一个时间服务器的tar.gz包:
http://support.ntp.org/bin/view/Main/WebHome
客户端和服务端安装一样,解开tar包,
#./configure --prefix=/usr/local/ntp && make && make install && make clean
好了,进入你的/usr/local/ntp/bin目录下,你会发现如下几个文件:
ntpd ntpdate ntpdc ntp-keygen ntpq ntptime ntptrace ntp-wait sntp tickadj
其中ntpdate就是我们要用的。
执行 crontab -e
在crontab中定时执行一行命令
0 */2 * * * /usr/local/ntp/bin/ntpdate time.windows.com >>/var/log/ntpdate.log
每两小时从 time.windows.com 同步标准时间 ,并把结果日志保存到 /var/log/ntpdate.log 文件中。
转载于:https://blog.51cto.com/richardma/450059