linux运维实战练习
一、總結Linux系統上的任務計劃(at、crontab)的詳細使用方法;
Linux上的任務計劃:
? ?任務計劃分為:
? ? ? 在未來時間點一次性執行某任務,實現目標命令:at batch
? ? ? 在未來時間內周期性執行某任務,crontab
電子郵件服務:
? 協議:SMTP:簡單郵件傳輸協議 ?
? ? ? ? ? ? ? /var/spool/mail/USERNAME
? ? ? ? ? ? ? 登錄用戶的默認郵件目錄
? ? ? ? POP3:郵局協議
? ? ? ? imap4:互聯網訪問協議
mail命令的使用:
? ?centos7下為mailx;
發送郵件例:
#mail root@localhost ? ?\\-s 可代替郵件主題subject,直接回車輸入
正文;
Subject:Hi ? 主題
How are you ? 正文
How old you ? 正文
Ctrl+D ? ? ? ?郵件發送
發送給localhost ? 本地主機;
#mail ? ?查看郵件信息
& number ?查看某封郵件
輸入重定向發送郵件:
mail -s "fstab" root@localhost < /etc/fstab ? \\輸入重定向<;
cat /etc/fstab | mail -s 'fstab.new' root @localhost
MUA:mail命令的簡單使用
mail命令:
? ?mail:進入交互式收發郵件接口;
? ?使用mail -s 指明subject?
? ?mail -s?
? ?
? ?
at命令的使用:
? ? 一次性執行某任務;
? ? Ctrl+d 提交作業
? ? 承載未來時間點運行的某作業:
? ? 支持使用作業隊列:
? ? ? ? 默認為a隊列;
at ?[option]... TIME
? ? TIME:
? ? ? ?(1)絕對時間 ? HH:MM;tomorrow;
? ? ? ?(2)相對時間 ? now+時間單位 ? minute ?hour;
? ? ? ?(3)模糊時間 ? midnight ? noon ? teatime ??
? ??
? ?at -l?
? ?at now+3minute
常用選項:
? -q: ?at作業隊列;實現相關隊列的管理;
? -f: ?讀取文件中的作業命令;可編輯一個文件后使用文件名進行讀取
作業,例:at -f at.list 15:15-->讀取at.list文件中的命令在15:15分
進行作業執行;
? -l: ?查看作業隊列待運行的作業列表=atq命令
? -c: ?查看待運行作業的內容;
? -d: 刪除指定作業;相當于atrm
??
batch:相似與at,但是不需要指定時間,時間由系統自行選擇在資源較
為空閑時,運行指定的任務。
crontab:周期性任務計劃;
? ? 守護進程:crond,在后臺出于運行狀態,進行監控。
crontab ?-e 編輯任務,打開當前shell回話的默認編輯器來編輯cron任
務表;
crontab ?-l 查看任務 ?list
? ? ? ? ?-u user:不是管理自己的cron任務,而是指定的目標用戶,只
有管理員可操作,不指定用戶就代表管理自己的任務。
? ? ? ? ?-r 移除所有任務
? ? ? ? ?
? ? 周期性任務有兩類:
? ? ?1.系統cron任務:沒有默認運行用戶身份,需要額外指定運行者;
? ? ? 在/etc/crontab ? vim打開進行編輯操作;
? ? ? 七個字段組成: 前5個字段來定義時間點
? ? ? ? ? ? ? ? ? ? user-name:以哪個用戶的身份運行任務:
? ? ? ? ? ? ? ? ? ? command to be executed:要運行的任務
? ? ?2.用戶cron任務:由某個用戶所提交,默認以提交者的身份運行,
無需額外指定運行者;
? ? ?在/var/spool/cron/USERNAME ? ?vim命令打開編輯;
?注: 普通用戶不建議擁有此權限查看這個文件;?
? ? ?建議用crontab命令讓用戶管理此文件;
? ? ? ? 前五個為時間點,最后一個為運行任務本身
? ? ? ?5個時間點:
? ? ? ? ? ? ?分鐘:有效范圍為0-59minute
? ? ? ? ? ? ?小時:0-23:
? ? ? ? ? ? ?日 ?:1-31,不是每個月都有31號的。
? ? ? ? ? ? ?月 ?:1-12,
? ? ? ? ? ? ?周幾:0-7,0和7都表示周日;?
? ? ? ? 注意:幾月幾號與周幾,不建議同時使用;
? ? ? ? ? ?例:6 * * * * 表示:每月每天每小時的第六分鐘
? ? ? ? ? ?時間點表示法:
? ? ? ? ? ? ? ?*:對應時間點有效取值范圍內的每個時間點
? ? ? ? ? ? ? ?用數字表示既定時間點;
? ? ? ? ? ? ? ?-:一個特定的連續時間范圍,3-7=3到7分鐘
? ? ? ? ? ? ? ?,: 一個離散的時間點,3,5,7=第三和第五和第七分鐘;
? ? ? ? ? ? ? ?/#:表示有效時間范圍內每多少時間;用于指定頻率;
1-30/4=每一個小時的1-30分鐘每4分鐘運行一次;*/4=每4小時運行一次
,*表示小時的話;
? ? ? ? ? ? ? 5 */3 * * * /bin/echo "howdy" 每三個小時運行echo查
看howdy;要給既定的分鐘才可實現,不然意義不同為三小時以后而不是
每三小時;
? ??
思考:
? 如果想實現每8分鐘運行一次某任務
? 如果想實現每10秒鐘運行一次某任務
了解sleep命令;
cron補充性的工具:anacron
在cron一段時間內沒有運行規定時間點執行任務的時候,立即執行此任務
一次。
(1)如何禁止crontab運行發送郵件給管理員;
? ? ? COMMAND > /dev/null
? ? ? COMMAND &> /dev/null
(2)對于crontab文件來講:%有特殊功能,如果命令中出現%。要記得轉
義,或者用單引號對其引用。
(3)crontab的PATH變量與用戶的變量不完全相同,所以,建議在cron中
的任務要使用絕對路徑。?
? ? ? ? ? ? ??
題目:
1、每周一到周六的凌晨3點20分,運行cp命令對/etc/目錄進行歸檔另存,存儲位置為/backups/etc-YYYY-MM-DD
[root@localhost?~]#mkdir?/backups/ [root@localhost?~]#contab?-e 20?3?*?*?*/1-6?/bin/cp?/etc/?/backup/etc-$(?date?+\%Y-\%m-\%d?)2、每周日凌晨2點30分,運行cp命令對/etc/fstab文件進行備份,存儲位置為/backup/fstab-YYYY-MM-DD-hh-mm-ss;
[root@localhost?~]#mkdir?/backup/fstab [root@localhost?~]#crontab?-e? 30?2?*?*?*/0??/bin/cp?/etc/fstab?/backup/fstab-$(?date?+\%Y-\%m-\%d-\%H-\%M-\%S?)3、每天晚上12點,取得/proc/meminfo文件中所有以S或M開頭的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上類似===============分隔線;
[root@localhost?~]#mkdir?/statistics/meminfo.txt [root@localhost?~]#crontab?-e 0?0?*?*?*?/bin/echo?"================="?>>?statistics/meminfo.txt?&&?/usr/bin/egrep?'^(S|M)'?/proc/meminfo?>>?statistics/meminfo.txt
轉載于:https://blog.51cto.com/summer37/1692818
總結
以上是生活随笔為你收集整理的linux运维实战练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DBMS_STATS.GATHER_TA
- 下一篇: linux下软链接与硬链接