Linux高級篇學習手冊(二)

1. Linux的crontab定時任務

任務調度:是指系統在某個時間執行的特定的命令或程序。

任務調度分類:

​ 1. 系統工作:有些重要的工作必須周而復始地執行。如病毒掃描等

2. 個別用戶工作:個別用戶可能希望執行某些程序,比如對 mysql數據庫的備份

crontab進行定時任務的設置。

命令參數:

  • l:顯示當前用戶所有的定時任務機
  • e:使用vim編輯當前用戶的定時任務,一行一個定時任務
  • r:刪除當前用戶的定時任務

演示:

1.1 配置定時任務

格式:分 時 日 月 周 命令

crontab定時命令隻能最快按照分鐘去執行,不能安裝毫秒執行,如果需要按照毫秒執行可以使用java

含義:按照指定的時間執行命令, 就是定時任務

  • minute:表示分鐘,從0-59的任何整數
  • hour:表示小時,從0-23的任何整數
  • day:表示日,從1-31的任何整數
  • month:表示月,從0112的任何整數
  • week:表示周,從0-7的任何整數,0或者7代表星期日,1-6代表周一到周六
  • command:表示要執行的命令

特殊字符介紹:

星號* :代表所有可能的值。

逗號,:用逗號隔開的值指定某個時間點

短橫- :表示一個整數范圍

正斜杠/ :表示指定時間的間隔頻率

eg:

* * * * * command --> 每1分鐘執行

30 21 * * * command --> 每天的21點30分執行

3,15 * * * * command --> 每小時的第3和第15分鐘執行

6,12 3-4 * * * command --> 每天上午3點到4點的第6和第12分鐘執行

*/3 * * * * command --> 每隔三分鐘執行

輸出系統當前時間命令:

date

案例:每分鐘打印系統當前時間輸出到/root/mydate.log文件中

實現步驟:

1.使用crontab -e 進入編輯當前用戶的定時任務編輯器

2.編寫定時任務命令

3.>>代表追加輸出

* * * * * date >> /root/mydate.log

4.>代表覆蓋輸出

5.觀察運行,看是否每分鐘進行打印.

2. Linux的服務管理

服務(service)本質就是進程,但是是運行在後臺的,通常都會監聽某個端口,等待其它程序的請求,比如(mysql,shd防火墻等)。

6.1 服務管理

命令:

sysytemctl 【選項】 服務名

參數詳情介紹:

  • start:啟動服務。
  • stop:停止服務。
  • status:查看服務的狀態。
  • restart:重啟服務。
  • reload:不停止定時器,重新加載新的配置文件,使其生效。

2.2 服務自啟動

命令相關:

  • systemctI list-units service :查看服務運行狀態
  • systemcti list-unit-files –type=service :查詢所有服務是的開機狀態
  • systemctl enable 服務名:設置某個服務開機自啟動
  • systemctl disable 服務名:設置某個服務器開機不自動啟動。
  • systemctI is-enabled 服務名:查詢指定服務器開機啟動狀態
  • systemctl list-unit-files 服務名.service:查詢指定服務器開機啟動狀態

註意:

服務默認狀態分類:

  • enable : 開啟自啟動
  • disable: 手動啟動
  • daemon的默認狀態除瞭enable和disable之外,還有其他類型:
    •  static:這個服務不可以自己啟動,但是可能被其他的enable類型的服務喚醒(相依屬性的服務)。
    • mask:這個服務無論如何都不會被啟動!因為已經被強制註銷(非刪除),可通過systemctl unmask方式改回原本狀態。

服務當前狀態分類

  • active (running):表示正有一個或多個程序正在系統中執行。
  • active (exited):表示僅執行一次就正常結束的服務。
  • active (waiting):表示正在執行當中,不過還在等待其他的事情才能繼續處理。
  • inactive:表示這個服務目前沒有運行。

2.3 演示效果

總結

這篇文章就到這裡瞭,如果這篇文章對你也有所幫助,希望您能多多關註WalkonNet的更多內容!

推薦閱讀: