5月11日

10.23 linux任務計劃cronlinux

1. linux任務計劃cronvim

linux大部分系統管理工做都是經過按期自動執行某個腳原本完成的,那麼如何按期執行某個腳本呢?這就要藉助linuxcron功能了,這部分的內容很重要,請牢記windows

命令 crontabcentos

linux的任務計劃功能的操做都是經過crontab命令來完成的,其經常使用的選項有如下幾個:ssh

1.1 -u:表示指定某個用戶,不加-u選項則爲當前用戶。socket

blob.png 

1.2 -e:表示制定計劃任務    (執行內容:01 10 05 06 3 echo "ok" > /root/cron.log)ide

blob.png 

使用 crontab -e 來進行編寫任務計劃,這其實是使用vim工具打開了crontab的配置文件,咱們寫下以下內容:工具

blob.png 

從左到右:在125日(這一天必須是星期2)的1001分執行命令 echo 「ok」 > /root/cron.logcentos7

編寫格式:分 時 日 月 周 user commandspa

1.3 -l:表示列出計劃任務

blob.png 

1.4 -r:表示刪除計劃任務

blob.png 

1.5 備份計劃任務文件: 

crontab -e 其實是打開了 「/var/spool/cron/username」 (若是是root則打開的是/var/spool/cron/root)這個文件,因此不要直接去編輯那個文件,由於可能會出錯,因此必定要使用 crontab -e 來編輯,另外備份的話,直接複製一份這個目錄下的文件便可: 

blob.png 

分範圍0-59,時範圍0-23,日範圍1-31,月範圍1-12,周1-7 

可用格式1-5表示一個範圍1

可用格式1,2,3表示1或者2或者

可用格式*/2表示被2整除的數字,好比小時,那就是每隔2小時

1.6 設置好了全部的計劃任務後須要查看一下crond服務是否啓動或者查看進程啓動

  查看crond服務是否啓動命令systemctl status crond

blob.png 

 1.6.1查看進程是否啓動命令:ps aux|grep cron

blob.png 

1.7 若是是中止狀態,則須要啓動它:

啓動cron命令:systemctl start crond

停用cron命令:systemctl stop crond

blob.png 

練習題 :

cron的內容不算太難,可是須要你牢固掌握,阿銘給出一些練習題,幫助你熟悉這個cron的應用。

1.天天凌晨1點20分清除/var/log/slow.log這個文件

2.每週日3點執行 「/bin/sh /usr/local/sbin/backup.sh」

3.每個月14號4點10分執行 「/bin/sh /usr/local/sbin/backup_month.sh」

4.每隔8小時執行 「ntpdate time.windows.com」

5.天天的1點,12點,18點執行 「/bin/sh /usr/local/sbin/test.sh」

6.天天的9點到18點執行 「/bin/sh /usr/local/sbin/test2.sh」

習題答案:

1.  20 1 * * *  echo "" >/var/log/slow.log 

2.  0 3 * * 0  /bin/sh /usr/local/sbin/backup.sh 

3.  10 4 14 * *  /bin/sh /usr/local/sbin/backup_month.sh 

4.  0 */8 * * *  ntpdate time.windows.com 

5.  0 1,12,18 * * *  /bin/sh /usr/local/sbin/test.sh

 6.  0 9-18 * * *  /bin/sh /usr/local/sbin/test2.sh

練習完上面的題目,相信你會有一些小疑問,這裏要簡單說一下,每隔8小時,就是用所有小時(0-23)去除以8,仔細想一下結果,其實算出來應該是0,8,16三個數。當遇到多個數(分鐘、小時、月、周)例如第5題,則須要用逗號隔開。而時間段是能夠用 n-m 的方式表示的,好比第六題中的(9-18)。

10.24 chkconfig工具

.chkconfig工具(系統服務管理) 

windows系統有開機啓動項,linux也一樣有開機啓動項。在centos6上的開機啓動項管理工具爲chkconfig,全部的開機啓動服務均可以在/etc/init.d/目錄看到。可是centos7已經不在chkconfig管理開機啓動項。

blob.png 

1、命令:chkconfig --list 列出全部的服務及其每一個級別的開啓狀態,以下所示

blob.png 

上提示翻譯:

注意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。        若是您想列出 systemd 服務,請執行 'systemctl list-unit-files'。       欲查看對特定 target 啓用的服務請執行       'systemctl list-dependencies [target]'

在這裏咱們會看到一個提示,它提示咱們該命令輸出的內容並無包含Centos 7原生systemd服務,而這裏僅僅列出來SysV服務,這也是/etc/init.d/目錄下面只有一兩個啓動腳本的根本緣由。也就是說,早期CentOS版本(7以前)採用的服務管理都是Sysv,7換成了systemd

2運行級別爲系統啓動級別,具體含義以下: 

0 shutdown關機 

1 單用戶模式 

2 NFS支持的多用戶模式 

3 徹底多用戶模式,經常使用的命令行模式 

4 保留給用戶自定義 

5 圖形界面登陸,比3多了一個圖形界面 

6 重啓

運行級別0,1,6做爲保留模式。一般作設置時,若是不指定級別,則默認爲更改2,3,4,5

 2.1 命令:chkconfig --level 3 network off  關閉3級別的network服務

blob.png 

 

(不加 –level 3 就是將0-6個級別都關掉)

3、命令:chkconfig –level 345 network off   (關閉3,45級別network服務)

blob.png 

4、命令:chkconfig network on  //省略級別默認是針對2345操做

blob.png 

5命令: chkconfig --del network     / /刪除network服務

blob.png 

6chkconfig –add network  //添加network服務

blob.png 

10.25 systemd管理服務

 

 

 1、systemd管理服務

一、systemctl list-units –all –type=service (列出系統全部服務)

blob.png

1.1 ls /usr/lib/systemd/system  //啓動服務對應的腳本文件目錄

blob.png

二、幾個經常使用的服務相關的命令

systemctl enable crond.service //讓服務開機啓動

systemctl disable crond //不讓開機啓動

systemctl status crond //查看狀態

systemctl stop crond //中止服務

systemctl start crond //啓動服務

systemctl restart crond //重啓服務

systemctl is-enabled crond //檢查服務是否開機啓動 

2.1 systemctl enable crond.service //讓服務開機啓動 

blob.png

2.2 systemctl disable crond //不讓開機啓動 

blob.png

2.3 systemctl status crond //查看狀態 

blob.png

2.4 systemctl stop crond //中止服務 

2.5 systemctl start crond //啓動服務 

2.6 systemctl restart crond //重啓服務

2.7 systemctl is-enabled crond //檢查服務是否開機啓動 

10.26 unit介紹

 1、unit介紹

1. /usr/lib/systemd/system 此目錄下列出了不少文件,這些文件都是unit。

blob.png

系統全部unit,分爲類別以下:

service:系統服務

target:多個unit組成的組

device:硬件設備

mount:文件系統掛載點

automount:自動掛載點

path:文件或路徑

scope:不是由systemd啓動的外部進程

slice:進程組

snapshot:systemd快照

socket:進程間通訊的套接字

swap:swap文件

timer:定時器

以上每種類型的文件都爲一個unit,正是這些unit才組成了系統的各個資源(各個服務,各個設備等)。

2.unit相關的命令

systemctl list-units //列出正在運行(active)的unit

systemctl list-units --all //列出全部unit(包括失敗的或者inactive的)

systemctl list-units --all --state=inactive //列出inactive的unit

systemctl list-units --type=service//列出狀態爲active的service

systemctl is-active crond.service //查看某個unit服務是否爲active


10.27 target介紹

1、target介紹

target相似於centos6的啓動級別,但target內又支持多個target同時啓動,target實際上是多個unit的組合。啓動target就是啓動多個unit,用target來管理這些unit

1.查看當前系統全部的target

  命令:systemctl list-unit-files --type=target

blob.png 

2. 查看指定target下面有哪些unit 

命令:systemctl list-dependencies multi-user.target 

blob.png 

3.查看系統默認的target

命令:systemctl get-default

blob.png 

4.設置默認target

命令:systemctl set-default multi-user.target

blob.png 

5.運行級別

上面提到的multi-user.target等同於centos6的運行級別3。其實還有其餘幾個target對應

  0-6運行級別,以下所示:

blob.png 

6.   serviceunit以及target之間的聯繫

    6.1 一個service屬於一種unit

    6.2 多個unit一塊兒組成了一個target

    6.3 一個target裏面包含了多個service,你能夠查看/usr/lib/systemd/system/sshd.service裏面【install】部分的內容,它就定義了該service屬於哪個target

blob.png

相關文章
相關標籤/搜索