Linux设置定时任务,定时ping某台主机并记录日志
一、先写个ping脚本并记录日志
1)vi ping.sh
nohup ping 10.242.0.114 -w 2| awk { print $0" " strftime("%H:%M:%S",systime()) } >ping.log &
说明:
-
ping参数说明
-c(设置 ping 的次数,默认无限次,可选)
-i(设置 ping 的时间间隔,默认1秒,可选)
-w(设置 ping 的超时时间,可选)
-
输入日志到ping.log文件
2)添加可执行权限:
chmod +x ping.sh
二、设置定时任务
crontab -e
按键i进入编辑模式
*/1 * * * * /root/ping.sh
说明:
-
crontab -e说明:
几个特殊符号的含义:
“*”代表取值范围内的数字, “/”代表”每”, “-”代表从某个数字到某个数字, “,”分开几个离散的数字 示例:
30 3 10,20 * * sh /root/ping.sh 每月10号及20号的3:30执行sh /root/ping.sh命令[注:“,”用来连接多个不连续的时段] 25 8-11 * * * sh /root/ping.sh 每天8-11点的第25分钟执行sh /root/ping.sh命令[注:“-”用来连接连续的时段] */15 * * * * sh /root/ping.sh 每15分钟执行一次sh /root/ping.sh命令 [即每个小时的第0 15 30 45 60分钟执行命令 ] 30 6 */10 * * sh /root/ping.sh 每个月中,每隔10天6:30执行一次sh /root/ping.sh命令[即每月的1、11、21、31日是的6:30执行一次命令。 ]
-
其他说明:
ping脚本中没有指定日志生成路径,所以生成的日志ping.log会默认生成到/root用户下
三、crontab 到时间没有执行时的检查步骤
1). 检查服务是否已开启 service crond status 或 systemctl status crond 2). 检查配置是否已正常载入 crontab -l 假如没有,则执行 crontab /etc/crontab 重新载入 或通过 crontab -e 设定当前用户的任务 3). 检查执行任务的用户是否为 root 或在 sudoer 名单里 4). 检查执行用户对需要执行的脚本是否是 owner,如果不是 owner ,则需要有 r 和 x 权限 5). 检查脚本里是否有使用到一些相对路径,如果有,应先 cd 绝对路径进入到指定目录,再执行其他命令 6). 查看 cron 日志 cat /var/log/cron
