我们知道,在WINDOWS *** 作系统下, *** 作系统已经提供了实现定时自动运行指定程序的功能,即只要利用 *** 作系统提供的计划任务程序(通常在“开始”--à“程序”----à“附件”----à“系统工具”------à“计划任务”中),根据“添加已计划的任务”所提供的计划任务向导,就可以很容易地将要定时自动运行的任务添加到计划任务中。但在UNIX *** 作系统下,如何实现定时自动运行指定程序,则较少有人知道。其实,在UNIX *** 作系统下, *** 作系统同样也提供了定时自动运行指定程序的功能,下面就如何利用UNIX *** 作系统提供的这一功能,实现在UNIX *** 作系统下定时自动运行指定程序的方法做一介绍。
首先,要用超级用户登录系统,然后在/usr/spool/cron/crontabs目录下,找到文件名为root的文件(在UNIX *** 作系统下,通常在该目录下都会有该文件,如果没有该文件,则可以创建一个),然后用vi编辑器,在该文件中,按照下面的格式,添加所要计划运行的任务:
20 17 3,5 /usr/cite/uptty_tsh 4 tty67h
#30 18 /usr/cite/shell/killttysh tty67h
0 16 1-5 /usr/cite/shell/killttysh tty65h
上面的每一行代表一个任务,每行有六个字段组成,每个字段间用空格分开,前5个字段由整数表示,为时间,最后一个字段为要运行的程序,顺序为:
分钟(0-59) 小时(0-23) 日(1-31) 月(1-12) 星期(0-6) 要运行的程序
每个字段可用“-”号连接两个数表示一个范围,或用“,”分开几个数,表示任一数确定的时间;或用“”表示该段省缺,即该字段所有有效值都合法。
每行最前面的#号表示该行是注释行。星期字段中0代表星期天,6代表星期六。
添加完所要增加的计划任务后,保存并退出vi编辑器。然后执行下列命令:
crontab root
这个命令把root文件中的内容复制到crontab文件中,一次只能有一个crontab文件。注意,root文件按要求输入并保存好后,一定要执行上面的命令,否则所添加的计划任务不会按要求执行。在某些系统中,并不是所有用户都能使用crontab。目录/etc/crond 或 /usr/lib/cron中的cronallow文件列出了可以使用crontab的用户登录名,如果没有这个文件,则文件/usr/lib/cron/crondeny中列出了不可以使用crontab的用户名。如果该文件存在,但文件是空的,则每个人都可以使用crontab。如果两个文件都不存在,则只有系统超级用户可以使用crontab。
在使用上面方法进行定时自动运行指定程序的时候,要注意在被执行的程序中,要用cd命令将工作目录切换到指定目录下,否则程序有可能运行不正常。
应用举例:
假如每天要在18:30自动删除/usr/switch/BACKUP/DB/FULL目录下的当前计算机系统日期前2天产生的所有文件(包括该目录下所有子目录里前2天产生的所有文件),则要在/usr/spool/cron/crontabs/root文件中添加下列一行:
30 18 /usr/spool/cron/crontabs/cjsh
添加完上面一行后,保存退出vi编辑器,然后执行下列命令:
crontab root
这样每天18:30系统就会自动删除/usr/switch/BACKUP/DB/FULL目录下的当前计算机系统日期前2天产生的所有文件(包括该目录下所有子目录里前2天产生的所有文件)。
可执行文件cjsh存放在/usr/spool/cron/crontabs目录下,注意该文件必须被赋予执行权。该文件的内容为:
cd /usr/switch/BACKUP/DB/FULL
find -type d -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;
find -type f -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;
cp /usr/spool/cron/crontabs/db_seriodat
cp /usr/spool/cron/crontabs/ftptmp
cp /usr/spool/cron/crontabs/backuphead
chmod 777 ftptmp
chmod 777 backuphead
chown switch
chgrp informix
注意:在该被执行的程序cjsh中,用cd /usr/switch/BACKUP/DB/FULL
命令将工作目录切换到了指定目录下,保证程序中第二行语句和第三行语句find -type d -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;和find –type f -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;能正确执行。
在find -type f -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;语句中,选项-atime +2是表示找出最近2天前访问过的文件(日期从运行可执行程序cjsh时的那个时间算起,从该时间起24小时以内算当天),该选项还可以有下列值:
-ctime n: 找出n天前、后或n天改变的文件,包括权限改变的文件;
-mtime n: 找出n天前、后和当天修改或写入的文件。
选项 –exec 命令 ‘{}’ \; 对每个匹配的文件运行命令。指定的命令必须跟换义分号(\;)。在命令运行时, ‘{}’变元替换当前文件名。该选项也可以用下列值:
-ok 命令 ‘{}’ \;同 –exec,但执行命令前先要用y响应。
选项 -type f 是查找普通文件;选项 –type d 是查找目录。
命令 /bin/rm –r在这里是删除指定目录/usr/switch/BACKUP/DB/FULL下的文件或目录(由选项 –type f 或-type d来指定),如果是删除普通文件(由选项 –type f指定),则包括该目录下所有子目录里满足指定时间的文件。
自动定时开机的实现:首先在启动计算机时,按“Delete”键进入BIOS界面。在BIOS设置主界面中选择“Power Management Setup”菜单,进入电源管理窗口。默认情况下,“Automatic Power Up(定时开机,有些机器选项为Resume By Alarm)”选项是关闭的,将光标移到该项,用PageUp或PageDown翻页键将“Disabled”改为“Enabled”,而后在“Date (of Month) Alarm”和“Time (hh:mm:ss) Alarm”中分别设定开机的日期和时间。如果“Date”设为0,则默认为每天定时开机。设置好后按“ESC”键回到BIOS设置主界面,点击“Save Exit Setup”,按“Y”键保存CMOS设置退出,接着机器会重新启动,这时便大功告成了。当然,值得注意的是定时开机需要您的主板支持才行,不过现在大多数主板都有这项功能。另外,不同的主板在设置上会不尽相同,不过都大同小异。
~~~~~~~~~~
把千千静听拖入启动菜单即可,打开播放音乐。
主机不能断电。
这个简单得很,使用批处理的Goto循环就可以做到!~
例如以下代码:
@echo off
:Begin
Start 这里输入你要定时启动的程序的路径(路径含有空格的话需要把路径用引号 " " 括起来)
rem 下面这行是延时代码,300是秒做单位的,300秒就是5分钟,需要多长时间自改一下
@Ping 127001 -n 300
Goto Begin
1如果是这个程序A运行之后,关闭自己,那么就需要写一个服务B。在服务B中,做一个定时器,每5分钟启动程序A。
2如果是这个程序A运行之后,不关闭自己。那么就简单一些,只需要在自己的程序中加一个定时器,响应OnTimer事件,每5分钟做响应的 *** 作就行。
以上就是关于在UNIX *** 作系统下如何实现定时自动运行指定程序全部的内容,包括:在UNIX *** 作系统下如何实现定时自动运行指定程序、怎么设置定时开机然后自动执行程序、定时运行程序 bat等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)