Linux的shell文件如何来执行命令添加计划任务?

Linux的shell文件如何来执行命令添加计划任务?,第1张

crontab 命令

crontab -e  ——>编辑当前用户的crontab任务;

crontab -l   ——>列出当前用户的crontab任务;

crontab -r   ——>删除当前用户的crontab任务;

crontab书写格式

PS:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令 *** 作;

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”;

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”;

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次;

1. Windows 定时计划任务 (参考 )

* 命令说明

- /sc 指定计划类型,取值为minute、hourly、daily、weekly、monthly、once、onstart、onlogon、onidle

- /mo 指定任务在其计划类型内的运行频率

- /tn 指定任务的名字

- /tr 指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名

* 创建任务

- 开机运行任务schtasks /create /sc onstart /tn "taskName" /tr c:\test.bat

- 每十分钟执行一次schtasks /create /sc minute /mo 10 /tn "RunPerTenMinuts" /tr c:\test.bat

* 终止任务

- schtasks /end /tn "taskName"

* 删除任务

- schtasks /delete /tn "taskName"

* 查看当前系统定时任务列表

- schtasks

2. bat批处理文件

例子代码,test.bat文件:

set /a now=%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%

for /f "tokens=1,3* delims=-, " %%i in (C:\test\20110720\test.txt) do set /a result=-%%i+%now%

echo %result%

if %result% GTR 2 (java -jar c:\teset\20110720\test.jar)else (echo agent is running)

* 代码说明

- C:\test\20110720\test.txt的内容为1107201155,即,2011-07-20 11:55:32去掉年份的前两位和秒数拼接而成

- set /a now=....是将=右边的字符串转换为数字

- %date,%time分别获取系统的日期和时间

- %date:~2,5%表示日期的前两位不要,从第三位开始取,取够5位。如对于2010-07-20,结果为10-07

- for循环delims=-, 表示以-或,或空格分隔%%i in (C:\test\20110720\test.txt)表示从文件读数据到变量i中 ,如果有多个数据,则依次分配各变量j,k,l,m...

- if语句

1、判断驱动器、文件或文件夹是否存在,用 if exist 语句;

2、判断某两个字符串是否相等,用 if "字符串1"=="字符串2" 语句;

3、判断某两个数值是否相等,用 if 数值1 equ 数值2 语句;

4、判断某个变量是否已经被赋值,用 if defined str 语句;

if语句的完整格式是这样的:if 条件表达式 (语句1) else (语句2),它的含义是:如果条件表达式成立,那么,就执行语句1,否则,将执行语句2。

对于以上四种情形,可以分别使用如下代码:

1、if exist d:\test.txt (echo D盘下有test.txt存在) else (echo D盘下不存在test.txt)

2、if "abc"=="xyz" (echo 字符串abc等于字符串xyz) else (echo 字符串abc不等于字符串xyz)

3、if 1 equ 2 (echo 1等于2) else (echo 1不等于2)

4、if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)

判断字符串是否相等的时候,if会区分大小写,比如,单纯的if语句会认为字符串abc和字符串Abc不相同,若不想区分大小写,则需要添加 /i 开关,使用 if /i "字符串1"=="字符串2" 的格式;另外,等于符号是连续的"=="而非单独的"="。

判断两个数值之间的大小关系,除了等于用equ之外,还有其他的关系符号,所有适用于if语句的关系符号见下表:

中文含义关系符英文解释

等于equequal

大于gtrgreater than

大于或等于geqgreater than or equal

小于lssless than

小于或等于leqless than or equal

不等于neqno equal

if语句还有一个精简格式:if 条件表达式 语句,它的含义是:如果条件表达式成立,将执行语句,否则,什么也不做。

- 需要定时执行test.bat文件时,可用schtasks命令


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11929513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存