计划任务

@wintry大约 2 分钟

crontab计划任务(Linux系统)

我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件

路径解释
/var/spool/cron/目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
/etc/crontab这个文件负责调度各种管理和维护任务
/etc/cron.d/这个目录用来存放任何要执行的crontab文件或脚本

我们还可以把脚本放在以下目录中,让它每小时/天/星期、月执行一次

/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

使用方法示例

#api开机自启
chmod +x /home/startapi.sh
echo "* * * * * root /home/startapi.sh" >> /etc/crontab

#定时清除mongod.log(每60分钟)
mv /home/install/delmongolog.sh /etc/delmongolog.sh
chmod 755 /etc/delmongolog.sh
echo "*/60 * * * * root /etc/delmongolog.sh" >> /etc/crontab

systemctl start crond

schtasks命令(Windows系统)

查询计划任务

schtasks /query /fo LIST /v

创建计划任务

#每20分钟运行一次该任务
schtasks /create /sc minute /mo 20 /tn "Test Script" /tr C:\Users\Public\Music\test.exe

#/tr <Taskrun>	指定任务运行的程序或命令。 
#键入可执行文件、脚本文件或批处理文件的完全限定路径和文件名。
#路径名称不得超过 262 个字符。 
#如果不添加路径, schtasks 假定该文件位于 <systemroot>\System32 目录中

#每小时运行一次
schtasks /create /sc hourly /mo 1 /tn MyApp /tr c:\apps\myapp.exe

#每天上午8:00运行一次,直到2023 年 12 月 20日
schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc daily /st 08:00 /ed 20/12/2023

删除计划任务

从计划中删除计划任务,不会删除任务运行的程序或中断正在运行的程序

schtasks /delete /tn Start Mail /s Svr16 /f
#使用 /s 参数来标识远程计算机, /f 参数禁止显示确认消息

schtasks /delete /tn * /f
#从本地计算机的计划中删除所有任务,包括其他用户计划的任务

立即启动计划任务

运行操作将忽略计划,但使用任务中保存的程序文件位置、用户帐户和密码来立即运行任务。

运行任务不会影响任务计划,也不会更改为任务计划的下一个运行时间。

schtasks /run /tn "Test Script"

结束计划任务

停止计划任务启动的程序实例

schtasks /end /tn "My Notepad"