shell定时命令

本文详细介绍了Linux系统中的常用命令,如nohup、at、cron等,涵盖了后台运行、定时任务及计划任务等功能,并提供了实际应用的例子。

swap备份非正常退出的文件,此.swap隐藏文件在该非正常退出文件同级目录下 .swap文件的内容为编辑过但没有保存下来。
hash [command] 可以判断此命令是否可用 if!(hash ss-keygen-id)>/dev/null 2>&1 即 如果ssh-keygen-id不存在 那么hash关键字会判断出来 将错误的命令输出到/dev/null,如果存在此命令也会将判断出来的结果重定向到/dev/null(只不过是正确的命令的话 不会输出任何东西)
dev/null 2>&1 即重定向错误2到标准输出中1 然后标准输出到/dev/null垃圾桶里,即 所有标准输出错误都输出到此目录垃圾桶

后台运行命令:
nohup command > 1.txt &
nohup tail -f 1.log > find.dt 2>&1 & 即 将监视1.log的内容重定向到find.dt文件中在后台运行
jobs查看后台运行的进程
bg 1 运行编号为1的后台进程
fg 1 将后台运行的进程放到前台
ctrl+c停止任务
ctrl+z暂停任务且放回后台

at命令用于在指定时间执行命令。at允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的 词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 也能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。

上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时,等等。 更有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

at(选项)(参数)
选项
-f:指定包含具体指令的任务文件;
-q:指定新任务的队列名称;
-l:显示待执行任务的列表;
-d:删除指定的待执行任务;
-m:任务执行完成后向用户发送E-mail。
参数
日期时间:指定任务执行的日期时间。

例子
[root@localhost ~]#at now //设置时间
at> cp /1.txt /2.txt // 要执行的任务
at> //ctrl+d 退出该任务即可运行

例子
三天后的下午 5 点锺执行/bin/ls:
[root@localhost ~]# at 5pm+3 days
at> /bin/ls
at>
job 7 at 2013-01-08 17:00

cron

service crond start //启动服务
  service crond stop //关闭服务
  service crond restart //重启服务
  service crond reload //重新载入配置
  service crond status //查看服务状态

crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中以获得执行。
每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。该crontab文件是通过crontab命令创建的

在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。

cron的格式
*    *    *    *    *  +任务
分  时    日   月   周 

每个域之间使用空格或者制表符分隔。格式如下: 

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 “Have a break now.” >> /tmp/test.txt

晚上11点到早上8点之间每两个小时和早上八点
0 23-7/2,8 * * * echo “Have a good dream” >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值