當營運狀態的Linux系統上託管著一個Web網站時,經常需要對網站進行維護工作,諸如查看資源使用情況並做出相應回應、日誌分割、資料整理,以及在特定狀態下執行特定任務等等。為了實現這些操作的自動化執行,Linux系統提供了方便的方式。本篇文章將介紹常見的Linux自動化任務實作方法。
#實現自動化任務帶來的好處如下:
開機啟動應該是我們很常的需求了,我們常需要在開機時就自動執行某些命令來開啟服務,進程等,有了它我們不必再在每次開機時輸入同一堆命令。
chkconfig指令使用chkconfig指令可以在設定在不同啟動等級下啟動特定的服務或是程式。
先說一下linux的運行等級:
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 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進程關閉狀態,需要手動開啟。
linux內建的cron流程能幫我們實作這些需求,cron搭配shell腳本,非常複雜的指令也沒問題。
#cron守護程式是一個由實用程式和設定檔組成的小型子系統,在幾乎所有類別 UNIX 系統上都可以找到某種風格的cron,我們可以用ps aux|grep cron找到crond這個守護程式。
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
我们常用的命令如下:
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 //每周二和周五
如果我们的命令有逻辑判断等非常复杂的操作时,再直接编辑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中文網其他相關文章!