watch命令是用来检测一个命令的运行结果的,watch可以用来周期性的执行一个命令,你可以拿他来监测你想要的一切命令的结果变化
例子1 每隔一秒高亮显示网络链接数的变化情况
watch -n 1 -d netstat -ant
例子2 每隔一秒高亮显示http链接数的变化情况
watch -n 1 -d 'pstree|grep http'
例子3 实时查看模拟攻击客户机建立起来的连接数
watch 'netstat -an | grep:21 | \ grep| wc -l'
例子4 监测当前目录中 scf' 的文件的变化
watch -d 'ls -l|grep scf'
例子5 10秒一次输出系统的平均负载
watch -n 10 'cat /proc/loadavg'
at命令表示在一个指定的时间执行一个指定任务,只能执行一次
例子1 表示3天后的下午执行
at 5pm+3 days
例子2 表示明天下午5点20
at 17:20 tomorrow
例子3 atq表示查看有哪些待执行的任务
atq
例子4 atrm 任务id表示删除某个任务
atrm 7
例子5 -c表示显示某个任务
at -c 7
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
命令1 -e表示编辑crontab文件
crontab -e
命令2 -l 表示显示crontab文件
crontab -l
命令3 -r表示删除当前用户的crontab文件
crontab -u user -r
命令4 表示每分钟执行一次命令
* * * * * command
命令5 表示每个星期一的8点到11点的3分和15分钟的时候执行命令
3,15 8-11 * * 1 command
命令6 每个月的1号,10号和22号的4点45分执行任务
45 4 1,10,22 * *
命令7 表示每周六和周日的一点10分执行命令
10 1 * * 6,0
命令8 了事23-7点每个小时都执行一次命令
* 23-7/1 * * *
命令9 表示每周的周一到周三或者4号的11点执行命令
0 11 4 * mon-wed
“/dev/null 2>&1”表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,这样日志输出问题就解决了。
在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’。
参考文档: