2015年9月5日--課後作業

1、總結Linux系統上的任務計劃(at、crontab)的詳細使用方法;

	at命令:

		承載未來時間運行的某作業:

		支持使用作業隊列:
			默認爲a隊列;

		Ctrl+d

		at [option]... TIME

		TIME:
			(1) 絕對時間
				HH:MM,
				MMDD[CC]YY, MM/DD/[CC]YY, DD.MM.[CC]YY or [CC]YY-MM-DD
				tomorrow
			(2) 相對時間
				now+#UNIT
					minute, hour, day, week
			(3) 模糊時間
				midnight
				noon
				teatime

		常用選項:
			-q QUEUE: at作業隊列;
			-f /PATH/FROM/SOMEFILE:從指定的文件中讀取要運行的作業;
			-l: 查看作業隊列中的等運行作業列表;相當於使用atq命令;
			-c AT_JOB_NUM: 查看待運行作業的內容;
			-d: 刪除指定作業;相當於atrm
crontab:週期性任務計劃
		守護進程:crond

		週期性任務有兩類:
			(1) 系統cron任務;沒有默認運行用戶身份,所以需要額外指定運行者;
				/etc/crontab

				vim命令

					# 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	

					7個字段:
						前5個字段:時間點
						user-name: 以哪個用戶的身份運行任務
						command to be executed: 要運行任務			

			(2) 用戶cron任務:由某個用戶所提交,默認就以提交者的身份運行,所以無需額外指定運行者;
				/var/spool/cron/USERNAME

				vim命令;不建議
				crontab命令:建議

					# 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
					# |  |  |  |  |
					# *  *  *  *  *  command to be executed	

					5個時間點:
						分鐘:有效取值範圍0-59;
						小時:0-23
						日:1-31
						月:1-12
						周幾:0-7

						注意:幾月幾號與周幾,不建議同時使用;

						例如:
							6 * * * *


						時間表示法:

							*: 對應時間點有效取值範圍內的每個時間點;
							-: 一個特定連續時間範圍, 3-7
							,:一個離散的時間點, 3,5,7
							/#:有效時間範圍內的每多少時間;用於指定頻率;
								1-30/4, */4

						5 */3 * * * /bin/echo "howdy"

						5 7 * * 1-5 /bin/echo "howdy"

					crontab命令:
						crontab [-u user] [-l | -r | -e]
							-u user: 不是管理自己的cron任務,而是指定的目標用戶的cron任務;僅root擁有管理其它用戶的cron任務的權限;默認管理自己的;

							-l: list,列出任務;
							-r: remove, 移除所有任務;
							-e: edit,編輯,打開一當前shell會話的默認編輯器來編輯cron任務表;


2、每週一到週六的凌晨3點20分,運行cp命令對/etc/目錄進行歸檔另存,存儲位置爲/backups/etc-YYYY-MM-DD;

20 3 * * 1,6    cp -rp /etc /backups/etc-`date +%Y-%m-%d`

3、每週日凌晨2點30分,運行cp命令對/etc/fstab文件進行備份,存儲位置爲/backup/fstab-YYYY-MM-DD-hh-mm-ss;

30 2 * * 0  cp /etc/fstab /backup/fstab-`date +%Y-%m-%d-%H-%M-%S`

4、每天晚上12點,取得/proc/meminfo文件中所有以S或M開頭的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上類似===============分隔線;

00 0 * * *     echo "=========================" >> /tmp/meminfo.txt | egrep "^S|^M" /proc/meminfo >> /tmp/meminfo.txt


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章