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的更多內容!
推薦閱讀:
- Docker部署mysql遠程連接 解決2003的問題
- SpringBoot項目部署到騰訊雲的實現步驟
- MySQL最大連接數限制的修改步驟
- 從mysql讀寫分離著手提升服務器性能
- CentOS7 防火墻(firewall)的操作命令大全