如果可以偷懒就好了……那为什么不使用定时任务减少自己的工作量呢?
linux中常用的定时任务软件是crontab,这玩意一般是安装好了的,不用自己安装。可以使用如下命令查看它的状态:
sudo service cron status
常见的服务命令:
# 查看状态
sudo service cron status
# 启动服务
sudo service cron start
# 停止服务
sudo service cron stop
# 重启服务
sudo service cron restart
查看现有任务
这功能还挺重要的,我有一个朋友——之前服务器中了挖矿病毒,就是顺着corntab的任务列表去排查的。所以快检查一下小破站有没有奇怪的定时任务吧~使用如下命令查看:
crontab -l
这里默认省去了-u
参数,-u
参数可以指定用户名。所以上述命令是在查询当前登录用户注册的定时任务。如果想看其他的比如有管理员权限的,加上sudo
吧。这步,就查到一个奇怪的玩意:
*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
好家伙,不会是病毒吧——其实不是,这玩意是是腾讯云的云资源监控,如果卸了这玩意就不能在控制面板看占用了,留着吧,非要卸载可以参考这篇笔记。
配置任务
接下来就要配置一个新任务,解放双手啦~
如果是大佬,可能会去修改/etc/
下crontab的默认周期执行的计划,但是不是很推荐,因为这种方法直接操作文件,改坏了可不行,而且他没有语法检查。接下来的方法避免了直接操作文件可能带来的权限和格式问题,而且可以确保文件格式正确,避免格式错乱。
使用如下命令来编辑crontab文件,注意这将会打开默认的文本编辑器比如vim,最好提前学一下怎么用:
crontab -e
第一次使用会进入下面这个界面,就是选择编辑器的:
no crontab for ubuntu - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]:
这里我自己选用的是vim, 进入vim界面后会看到一个文件(如果进入的不是vim,比如如果是nano,原理也差不多,但需要额外去学下操作),它包含了一大段注释,按i进入插入模式,在这片注释的末尾写入具体需要执行的任务,比如:
0 4 * * * /bin/bash /home/ubuntu/xxx/auto.sh
这个命令的意思是:在每天的4:00,利用/bin/bash执行这个脚本。那当然还需要继续介绍一下这几个星号都是什么玩意啦,这个是crontab任务的时间信息,依次是:
- 分钟,取值范围为 0 - 59
- 小时,取值范围为 0 - 23
- 日,取值范围为 1 - 31
- 月,取值范围为 1 - 12 或者英文缩写:
jan,feb,mar,apr …
- 星期,取值范围为 0 - 6,其中7也能代表星期天;或者英文缩写:
sun,mon,tue,wed,thu,fri,sat
那么星号(*)自然就是作为通配符了。上述规则在/etc/crontab
文件得注释中也能看到——如果你没乱改它的话。最后,按ESC退出编辑,打出冒号(按shift+分号)后输入wq来写入并保存退出。
以后如果要修改/删除任务,也都是编辑这个文件了~
编辑器选择后悔了?
哎,一失足成千古恨,哎不对,不都已经给提示了吗~就输入这个命令就能重新选择默认编辑器了:
select-editor
Comments NOTHING