在使用上面方法进行定时自动运行指定程序的时候,要注意在被执行的程序中,要用cd命令将工作目录切换到指定目录下,否则程序有可能运行不正常。
六、过期文件的自动删除假如每天要在18:30自动删除/usr/switch/BACKUP/DB/FULL目录下的当前计算机系统日期前2天产生的所有文件(包括该目录下所有子目录里前2天产生的所有文件),则要在/usr/spool/cron/crontabs/root文件中添加下列一行:
30 18 * * * /usr/spool/cron/crontabs/cj.sh
添加完上面一行后,保存退出vi编辑器,然后执行下列命令:
crontab root
这样每天18:30系统就会自动删除/usr/switch/BACKUP/DB/FULL目录下的当前计算机系统日期前2天产生的所有文件(包括该目录下所有子目录里前2天产生的所有文件)。
可执行文件cj.sh存放在/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_serio.dat .
cp /usr/spool/cron/crontabs/ftptmp .
cp /usr/spool/cron/crontabs/backuphead .
chmod 777 ftptmp
chmod 777 backuphead
chown switch *
chgrp informix *
注意:在该被执行的程序cj.sh中,用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天前访问过的文件(日期从运行可执行程序cj.sh时的那个时间算起,从该时间起24小时以内算当天),该选项还可以有下列值:
-ctime n: 找出n天前、后或n天改变的文件,包括权限改变的文件;
-mtime n: 找出n天前、后h和当天修改或写入的文件。
选项 –exec 命令 ‘{}’ \; 对每个匹配的文件运行命令。指定的命令必须跟换义分号(\;)。在命令运行时, ‘{}’变元替换当前文件名。该选项也可以用下列值:
-ok 命令 ‘{}’ \;同 –exec,但执行命令前先要用y响应。
选项 -type f 是查找普通文件;选项 –type d 是查找目录。
命令 /bin/rm –r在这里是删除指定目录/usr/switch/BACKUP/DB/FULL下的文件或目录(由选项 –type f 或-type d来指定),如果是删除普通文件(由选项 –type f指定),则包括该目录下所有子目录里满足指定时间的文件。
以上列举了几个应用实例,说明了在计算机的运行管理中,如何实现计算机运行管理的自动化。另外也可以利用计划任务程序,实现诸如定时自动整理、组织硬盘文件等,在此不一一列举。
作者简介:陈金友(1961-),男,工程师,硕士,主要研究方向:自动控制技术及其计算机应用
Windows中实现定时自动运行程序