Linux任务管理

一、at

单次执行任务。

(1)30分钟后重启

[root@wc1 Desktop]# at now + 3 minutes
at> /usr/bin/reboot
job 3 at 2016-11-10 14:22

这里的是按crtl+D 出来的。

(2)查询任务、删除任务

[root@wc1 Desktop]# atq
3	2016-11-10 14:22 a root

[root@wc1 Desktop]# atrm 3
(3)2016-11-11日0点关闭服务器
[root@wc1 Desktop]# at 00:00 2016-11-11 
at> /sbin/shutdown -h now
job 4 at 2016-11-11 00:00

[root@wc1 Desktop]# atq
4	2016-11-11 00:00 a root
(4)把用户名加入文件/etc/at.deny中,禁止用户mysql使用这个功能。
[root@wc1 Desktop]# cat /etc/at.deny

[root@wc1 Desktop]# vi /etc/at.deny
[root@wc1 Desktop]# cat /etc/at.deny
mysql
mysql用户使用at时直接报:没有权限使用at。
[mysql@wc1 ~]$ at
You do not have permission to use at.
[mysql@wc1 ~]$ 

二、cron

周期性执行任务

(1)启动cron进程

[root@ggg2 ~]# service crond start

[root@ggg2 ~]# service crond status
crond (pid  2352) is running...


(2)crontab基本格式:

* ****command

设置crontab的语法:

第1个:分钟,1~59,每分钟可以用*或者*/1.

第2个:小时,0~23。

第3个:日期,1~31。

第4个:月份,1~12.

第5个:星期几,0~6,0是星期日。

举例:

#每分钟重启一次
*	*	*	*	*	service httpd restart
*/1	*	*	*	*	service httpd restart

#每小时重启
*	*/1	*	*	*	service httpd restart

#从23点开始到3点,每小时重启一次
*	23-3/1	*	*	*	service httpd restart

#每天晚上23点30分,重启
30	23	*	*	*	service httpd restart

#每月的第一天晚上23点30分重启
30	23	1	*	*	service httpd restart

#每年第一个月第一天晚上23点30分重启
30	23	1	1	*	service httpd restart

#每周日晚上23点30分,重启
30	23	*	*	0	service httpd restart

(3)编辑、查看、删除

编辑:

[root@ggg2 ~]# crontab -e
crontab: installing new crontab

查看:

[root@ggg2 ~]# crontab -l
30	23	*	*	0	service httpd restart

删除:

[root@ggg2 ~]# crontab -r

[root@ggg2 ~]# crontab -l
no crontab for root

(4)禁止某些用户使用cron

可以把用户的用户名添加到文件 /etc/cron.deny中。


(5)除了root外,普通用户只能设置、查看、删除自己的计划任务。

root可以用-u参数查看指定用户的任务,比如:

[root@ggg2 ~]# crontab -u mysql -l
no crontab for mysql

(6)/etc/contab 管理

可以通过crontab -e来编辑自己的任务,单系统也有自己的例行任务,配置文件是:/etc/crontab.

[root@ggg2 ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

和cron相关的文件、目录:

[root@ggg2 ~]# ls -al /etc | grep cron
-rw-------.   1 root root    541 Nov 23  2013 anacrontab
drwxr-xr-x.   2 root root   4096 Aug 18 23:18 cron.d
-rw-------.   1 root root      0 Nov 23  2013 cron.deny
-rw-r--r--.   1 root root    457 Sep 27  2011 crontab

drwxr-xr-x.   2 root root   4096 Aug 18 23:17 cron.hourly
drwxr-xr-x.   2 root root   4096 Aug 18 23:19 cron.daily
drwxr-xr-x.   2 root root   4096 Sep 27  2011 cron.weekly
drwxr-xr-x.   2 root root   4096 Aug 18 23:19 cron.monthly

最后几个分别是:小时、日、周、月的要执行的任务,不过这些都是目录,目录中包含了要执行的任务文件:

[root@ggg2 ~]# ls -al /etc/cron.daily
total 44
drwxr-xr-x.   2 root root  4096 Aug 18 23:19 .
drwxr-xr-x. 117 root root 12288 Nov 13 22:23 ..
-rwx------.   1 root root   118 Oct 15  2014 cups
-rwxr-xr-x.   1 root root   196 Jul 18  2013 logrotate
-rwxr-xr-x.   1 root root   905 Feb 22  2013 makewhatis.cron
-rwxr-xr-x.   1 root root   174 Sep 24  2012 mlocate.cron
-rwxr-xr-x.   1 root root  2126 Jul 19  2013 prelink
-rwxr-xr-x.   1 root root   563 Nov 23  2013 readahead.cron
-rwxr-xr-x.   1 root root   365 Oct 16  2009 tmpwatch

你可能感兴趣的:(Linux运维你也行)