计划任务
大约 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分钟)
chmod 755 /etc/delmongolog.sh
echo "*/60 * * * * root /etc/delmongolog.sh" >> /etc/crontab
systemctl start crond
创建相对隐藏计划任务
(crontab -l;printf "*/1 * * * * /root/test.sh;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -
这个计划任务需要用编辑模式才能看到具体执行的命令
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"