linux基础篇读书笔记2_后台执行命令

来源:互联网 发布:淘宝优惠券代码生成 编辑:程序博客网 时间:2024/04/30 23:45

crontab和cron

crontab的域

格式:

minute[1~59] hour[1~24] day[1~31] month[1~12] week[0~6] [command]

说明:

第1列 分钟1~59第2列 小时1~23( 0表示子夜)第3列 日1~31第4列 月1~12第5列 星期0~6( 0表示星期天)第6列 要运行的命令

实例:

30 21* * * /apps/bin/cleanup.sh     //每晚的 2 1 : 3 0运行/ apps/bin目录下的cleanup.sh45 4 1,10,22 * * /apps/bin/backup.sh    //表示每月 1、 10、 22日的4:45运行/apps/bin目录下的backup.sh10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;//表示每周六、周日的 1:10 运行一个 find 命令0,30 18-23 * * * /apps/bin/dbcheck.sh   //表示在每天18:00至23:00之间每隔30分钟运行/apps/bin目录下的d dbcheck.sh文件0 23 * * 6 /apps/bin/qtrend.sh      //表示每星期六的11:00 pm运行/apps/bin目录下的qtrend.sh

crontab命令

格式:

crontab [-u] -e -l -r

参数说明:

-u 用户名-e 编辑crontab文件-l 列出crontab文件中的内容-r 删除crontab文件

如果使用自己的名字登录,就不用使用 -u 选项,在crontab执行命令时,该命令可以知道当前的用户。

2.at命令

使用它在一个特定的时间运行一些特殊的作业。

at命令:允许用户向cron守护进程提交作业,使其在稍后的时间运行。一旦一个作业被提交,at命令会保留所有当前的环境变量,包括路径,而crontab只提供缺省的环境,一般at的作业输出会以电子邮件的形式发送给用户,除非进行重定向,绝大多数情况下是重定向到某个文件中。

at [-f script] [-m -l -r] [time] [date]

参数说明:

-f script 是所要提交的脚本或命令。-l 列出当前所有等待运行的作业。 atq命令具有相同的作用。-r 清除作业。为了清除某个作业,还要提供相应的作业标识(I D);有些Unix变体只接受atrm作为清除命令。-m 作业完成后给用户发邮件。time at命令的时间格式非常灵活;可以是H、HH.HHMM、HH:MM或H:M,其中H和M分别是小时和分钟。还可以使用a.m.或p.m.。date 日期格式可以是月份数或日期数,而且at命令还能够识别如today、tomorrow这样的词。

提交命令:

如果想一次提交多行命令,可以在at后面跟上时间/日期,然后回车进入at多行命令模式,根据提示输入命令,退出按 Ctrl+D 。

以下日期/时间格式都是at命令可接受的:

at 6.45am may12at 11.10pmat now+1hourat 9am tomorrowat 15:00 may 24at now + 10 minutes

实例应用:

at 3.00pm tomorrow -f /apps/bin/db_table.sh     //一个在/apps/bin目录下的db_table.sh的命令将在明天下午三点运行echo find /etc -name "passwd" -print | at now +1 minute     //可以使用echo命令向 at 命令提交命令at -l       //列出所提交的作业atrm [job num] 或 at -r [job num]    //清除一个作业,首先需要运行 at -l 查看作业号

3.&

使用它在后台运行一个命令,即使在用户退出时也不受影响。
一般格式:

command &

实例:

command >out.file 2>&1 &    //不提示任何信息重定向输出到 out.file 文件中,后台执行,成功后显示进程号find /etc -name "test.conf" -print >find.out 2>&1 &     //当我们提交成功后,系统给出进程号

nohup命令

如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用 nohup 命令。该命令可以在你退出帐户之后继续运行相应的进程。 nohup就是不挂起的意思(no hang up)。

格式:

nohup command &

应用实例:

nohup command >myout.file 2>&1      //输出被重定向到myout.file文件中nohup ./test.conf >test.out 2>&1 &      //执行脚本所有输出重定向到 test.out 文件中
0 0