linux at、cron計劃任務 詳解

語法:at   <時間描述>  
例:
◦ at 6pm Monday
◦ at now + 5 minutes vim

◦ at 13:15 05/12/2010 spa

------------------------at計劃任務--------------------------
[chen@localhost 桌面]$ su - root
密碼:
[root@localhost ~]# service atd status	#先查看系統中atd服務是否運行
atd (pid  2042) 正在運行...
[root@localhost ~]# chkconfig --list|grep atd	#也能夠經過這種方式查看,當前系統運行在5級別,默認是運行的
atd            	0:關閉	1:關閉	2:關閉	3:啓用	4:啓用	5:啓用	6:關閉
[root@localhost ~]# at 21:00	#在天天的21:00點執行下面的操做
at> cat /etc/passwd >> /passwd.backup 
at> <EOT>	#ctrl+D結束任務
job 1 at 2012-08-07 21:00	#系統會分配一個job號,這裏是1
[root@localhost ~]# atq		#atq查詢當前用戶的at計劃任務
1	2012-08-07 21:00 a root	
#每一個用戶默認均可以指定本身的at計劃任務,可是root能夠在/etc/at.deny中寫入用戶名
#使這些用戶不能使用at計劃任務,寫入的時候每一個用戶名佔一行
[root@localhost ~]# vim /etc/at.deny 
chen
user1		#指定chen和user1不能使用at計劃任務
[root@localhost ~]# exit
logout
[chen@localhost 桌面]$ at 10:00
You do not have permission to use at.	#chen不能使用at了
[chen@localhost 桌面]$ su - user1
密碼:
[user1@localhost ~]$ at 10:00
You do not have permission to use at.	#user1也不能使用at
[user1@localhost ~]$ su - user2
密碼:
[user2@localhost ~]$ at 10:00		#可是user2能夠,由於user2沒有被寫入/etc/at.deny中
at> <EOT>
job 2 at 2012-08-08 10:00
[user2@localhost ~]$ exit
logout
[user1@localhost ~]$ exit
logout
[chen@localhost 桌面]$ su - root
密碼:
[root@localhost ~]# vim /etc/at.deny 
chen
user1		#這裏把user1刪掉,保存退出。
[root@localhost ~]# su - user1
[user1@localhost ~]$ at 10:00
at> <EOT>
job 3 at 2012-08-08 10:00	#能夠看到user1能夠建立at計劃任務了
[user1@localhost ~]$ exit
logout
[root@localhost ~]# exit
logout
[chen@localhost 桌面]$ at 10:00		#chen仍是不能夠的
You do not have permission to use at.
[chen@localhost 桌面]$ su - root
密碼:
[root@localhost ~]# su - user1		#再切換到user1
[user1@localhost ~]$ atq 
3	2012-08-08 10:00 a user1
[user1@localhost ~]$ atrm 3		#能夠經過atrm job號刪除一個計劃任務
[user1@localhost ~]$ atq		#能夠看到job 3任務被刪除。
[user1@localhost ~]$ exit
logout
[root@localhost ~]#

corn的特殊時間表示方法
* 表示該範圍內到任意時間
, 表示間隔的多個不連續時間
- 表示一個連續的時間範圍
/ 指定間隔的時間頻率
示例:
時間的格式是從左到右依次爲:分、時、日、月、星期、指令
0 17 * * 1-5 週一到週五天天的17:00
30 8 * * 1,3,5 周1、3、五天天到8:30
0 8-18/2 * * * 天天的8到18點,每隔兩小時
0 * */3 * * 每隔3天
注意:
1.時間中沒有年
2.時間格式第一項分鐘不能爲*,其餘均可以 rest

/sbin/service crond start #啓動服務 /sbin/service crond stop #關閉服務 /sbin/service crond restart #重啓服務 /sbin/service crond reload #從新載入配置

----------------------------cron計劃任務------------------------------

[root@localhost ~]# service crond status
crond (pid  3155) 正在運行...
[root@localhost ~]# chkconfig --list|grep crond
crond          	0:關閉	1:關閉	2:啓用	3:啓用	4:啓用	5:啓用	6:關閉
[root@localhost ~]# /etc/init.d/crond restart		#能夠這樣重啓服務
中止 crond:                                               [肯定]
正在啓動 crond:                                           [肯定]
[root@localhost ~]# crontab -e -u chen	#編輯chen這個用戶的cron計劃任務
no crontab for chen - using an empty one
crontab: installing new crontab
You have mail in /var/spool/mail/root

0 17 * * 1-5 tar cvfz /tmp/log.tar.gz /var/log/*	#寫入這句話,每週一到週五的17:00備份/var/log/*

[root@localhost ~]# exit	
logout
[chen@localhost 桌面]$ crontab -l	#普通用戶能夠經過這樣查看本身的計劃任務
0 17 * * 1-5 tar cvfz /tmp/log.tar.gz /var/log/*
[chen@localhost 桌面]$ crontab -e -u user1	#普通用戶不能指定其餘用戶的cron計劃任務
must be privileged to use -u
[chen@localhost 桌面]$ su - user1
密碼:
[user1@localhost ~]$ crontab -e		#普通用戶只能加-e編輯本身的cron計劃任務
no crontab for user1 - using an empty one
crontab: installing new crontab

0 15 * * 1,3,5 ls /etc/* >> /etc.backup

[user1@localhost ~]$ crontab -l		#查看當前的cron任務
0 15 * * 1,3,5 ls /etc/* >> /etc.backup
[user1@localhost ~]$ ls /var/spool/cron/	#全部用戶的cron任務默認保存在/var/spool/cron/下面並以用戶名命名
ls: 沒法打開目錄/var/spool/cron/: 權限不夠	#可是普通用戶不能查看,這必須的!
[user1@localhost ~]$ exit
logout
[chen@localhost 桌面]$ su - root
密碼:
[root@localhost ~]# ls /var/spool/cron/		#root就能夠看了,全部人的都在這裏
chen  user1
[root@localhost ~]# cat /var/spool/cron/user1	#cat下能夠看到其中的內容
0 15 * * 1,3,5 ls /etc/* >> /etc.backup
#最後試驗下root能夠刪除普通用戶的cron任務和普通用戶刪除本身的計劃任務
[root@localhost ~]# crontab -l -u chen		#root查看普通用戶的任務
0 17 * * 1-5 tar cvfz /tmp/log.tar.gz /var/log/*
[root@localhost ~]# crontab -r -u chen		#root刪除chen普通用戶的任務
[root@localhost ~]# crontab -l -u chen
no crontab for chen				#已經被刪除了
[root@localhost ~]# su - user1
[user1@localhost ~]$ crontab -l			#查看本身的任務
0 15 * * 1,3,5 ls /etc/* >> /etc.backup
[user1@localhost ~]$ crontab -r			#刪除本身的任務
[user1@localhost ~]$ crontab -l			
no crontab for user1				#已經被刪除了

最後總結如下:
root能夠建立沒普通用戶cron計劃任務	crontab -e -u chen
普通用戶只能建立本身的cron計劃任務	crontab -e
全部用戶的cron任務都默認保存在/var/spool/cron/下面,以各自的用戶名命名,只有root用戶能夠查看
root還能夠命令查看具體用戶的任務	crontab -l -u chen
普通用戶能夠查看本身的cron計劃任務	crontab -l
root能夠刪除普通用戶的任務		crontab -r -u chen
普通用戶只能刪除本身的cron計劃任務	crontab -r
和at計劃任務同樣,root能夠編輯/etc/cron.deny,將用戶名寫入這個文件,一行一個用戶名,這樣能夠禁止該用戶使用cron任務,這裏再也不試驗了。
相關文章
相關標籤/搜索