首頁 > 系統教程 > Linux > 主體

這些 Linux 的「自動化」技巧,教你輕鬆完成任務

PHPz
發布: 2024-02-14 18:12:13
轉載
503 人瀏覽過

Linux自動化任務的深度偽原創

當營運狀態的Linux系統上託管著一個Web網站時,經常需要對網站進行維護工作,諸如查看資源使用情況並做出相應回應、日誌分割、資料整理,以及在特定狀態下執行特定任務等等。為了實現這些操作的自動化執行,Linux系統提供了方便的方式。本篇文章將介紹常見的Linux自動化任務實作方法。

这些 Linux 的“自动化”技巧,教你轻松完成任务

#實現自動化任務帶來的好處如下:

  1. 節省人力:只需編寫一個腳本,就可以自動化完成任務。
  2. 時間靈活:透過在夜間自動執行,可以避開網站流量高峰期,不影響白天的網站效率。
  3. 準確性:在設定完善的情況下,自動化任務不會出現錯誤。
  4. 最重要的是,自動化任務讓人省心,不再頻繁敲擊某些指令。

開機啟動

開機啟動應該是我們很常的需求了,我們常需要在開機時就自動執行某些命令來開啟服務,進程等,有了它我們不必再在每次開機時輸入同一堆命令。

chkconfig指令使用chkconfig指令可以在設定在不同啟動等級下啟動特定的服務或是程式。

先說一下linux的運行等級:

  • 等級0表示:表示關機
  • 等級1表示:單一使用者模式
  • 等級2表示:不含NFS功能的多用戶命令列模式
  • 等級3表示:有NFS功能的多用戶命令列模式
  • 等級4表示:不可用
  • 等級5表示:帶有圖形介面的多用戶模式
  • 等級6表示:重新啟動

chkconfig的指令如下:

chkconfig --list //命令查看已设置的开启自启动列表。
xxxd 0:off 1:off 2:on ... 6:off //list的结果,表示在xxxd服务在启动级别为2 3 4 5 的情况下会自动启动。
chkconfig --add xxxd//向任务列表中添加一个xxxd服务
chkconfig [--level 1/2/../6] xxxd on/off//设置xxxd用服务在n状态为开/关,[]内省略则在2345级别开启
chkconfig --del xxxd //将任务列表中的xxxd服务删除
登入後複製

rc.d檔的編輯

也可以直接編輯/etc/rc.d/目錄下的檔案來實現開機自啟動。此目錄下有很多文件,rcn.d是在啟動狀態為n的情況下的啟動資料夾,rc、rc.sysinit、init.d都是系統的模組或系統設定的自啟動文件[夾]。

我們用vim rc.local 編輯 rc.local文件,來自訂自己的自啟動方案。命令十分簡單,就像平常在操作一樣。如/usr/local/apache/bin/apachectl start表示開機自啟動apache伺服器。

at實作定時任務

#at是一個簡單的功能簡單的定時任務程序,它只能進行一次性的定時任務,其用法如下:

#at time      //at加时间启动at命令
at>operation    //输入要执行的操作
at>Ctrl+D      //按Ctrl+D退出命令编辑
登入後複製

其time的常見形式如下

at H:m tomorrow     //第二天的H点m分
at now + n minutes/hours/days/weeks  //在n分/时/天/周后
at midnight         //在午夜=-=
at H:m pm/am        //在当天上午/下午的H点m分
登入後複製

我們也可以在/var/spool/at檔案中查看at的目前指令。另外要注意的是,linux預設atd進程關閉狀態,需要手動開啟。

crontab實作定時任務

linux內建的cron流程能幫我們實作這些需求,cron搭配shell腳本,非常複雜的指令也沒問題。

cron介紹

#cron守護程式是一個由實用程式和設定檔組成的小型子系統,在幾乎所有類別 UNIX 系統上都可以找到某種風格的cron,我們可以用ps aux|grep cron找到crond這個守護程式。

我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

  • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
  • /etc/crontab 这个文件负责调度各种管理和维护任务。/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
  • 我们还可以把脚本放在/etc/con.hourly、/etc/con.daily、/etc/con.weekly、/etc/con.monthly目录中,让它每小时/天/星期、月执行一次。

crontab的使用

我们常用的命令如下:

crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作作)
登入後複製

我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。

crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

  • * 取值范围内的所有数字
  • / 每过多少个数字
  • - 从X到Z
  • 散列数字

以下是几个例子。

时间                  注释
0 0 25 12 *     //在12月25日的0时0分
*/5 * * * *     //每过5分钟
* 4-6 * * *     //每天的4 5 6点
* * * * 2,5     //每周二和周五
登入後複製

配合简单的shell脚本

如果我们的命令有逻辑判断等非常复杂的操作时,再直接编辑crontab就有点困难了,这时,我们可以使用shell脚本。其来历,分类定义与题不符,不再多说,我们直接说它的用法。

我们用vim /usr/sh/test.sh来使用vim编辑一个shell脚本

#!/bin/sh           //声明开始shell脚本
a = "hello world"   //定义一个shell变量
echo $a             //熟悉的echo,输出a变量
登入後複製

然后crontab -e编辑crontab,添加 */5 * * * * /usr/sh/test.sh每隔五分钟运行一次test.sh脚本,也可以用 /phppath/php /filepath/test.php 来用php进程来执行php程序。

如果您觉得本博文对您有帮助,您可以推荐或关注我,如果您有什么问题,可以在下方留言讨论,谢谢。

以上是這些 Linux 的「自動化」技巧,教你輕鬆完成任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:lxlinux.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!