IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁操作系統(tǒng)LINUX → Linux自啟動和定時啟動程序

Linux自啟動和定時啟動程序

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  1.開機(jī)啟動時自動運(yùn)行程序

  Linux加載后, 它將初始化硬件和設(shè)備驅(qū)動, 然后運(yùn)行第一個進(jìn)程init。init根據(jù)配置文件繼續(xù)引導(dǎo)過程, 啟動其它進(jìn)程。通常情況下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目錄下的腳本文件,可以使 init自動啟動其它程序。例如:編輯 /etc/rc.d/rc.local 文件,在文件最末加上一 行"xinit"或"startx",可以在開機(jī)啟動后直接進(jìn)入X-Window。

  2.登錄時自動運(yùn)行程序

  用戶登錄時,bash首先自動執(zhí)行系統(tǒng)管理員建立的全局登錄script :/ect/profile。然后bash在用戶起始 目錄下按順序查找三個特殊文件中的一個:/.bash_profile、/.bash_login、/.profile,但只執(zhí)行最先找到的 一個。

  因此,只需根據(jù)實際需要在上述文件中加入命令就可以實現(xiàn)用戶登錄時自動運(yùn)行某些程序(類似于DOS下的 Autoexec.bat)。

  3.退出登錄時自動運(yùn)行程序

  退出登錄時,bash自動執(zhí)行個人的退出登錄腳本/.bash_logout。例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",則在每次退出登錄時自動執(zhí)行 "tar" 命令備份 *.c 文件。

  4.定期自動運(yùn)行程序

  Linux有一個稱為crond的守護(hù)程序,主要功能是周期性地檢查 /var/spool/cron目錄下的一組命令文件的內(nèi) 容,并在設(shè)定的時間執(zhí)行這些文件中的命令。用戶可以通過crontab 命令來建立、修改、刪除這些命令文件。

  例如,建立文件crondFile,內(nèi)容為"00 9 23 Jan * HappyBirthday",運(yùn)行"crontab cronFile"命令 后,每當(dāng)元月23日上午9:00系統(tǒng)自動執(zhí)行"HappyBirthday"的程序("*"表示不管當(dāng)天是星期幾)。

  5.定時自動運(yùn)行程序一次

  定時執(zhí)行命令at 與crond 類似(但它只執(zhí)行一次):命令在給定的時間執(zhí)行,但不自動重復(fù)。at命令的一 般格式為:at [ -f file ] time ,在指定的時間執(zhí)行file文件中所給出的所有命令。也可直接從鍵盤輸入命 令:

  $ at 12:00

  at>mailto Roger -s ″Have a lunch″ < plan.txt

  at>Ctr-D

  Job 1 at 2000-11-09 12:00

  2000-11-09 12:00時候自動發(fā)一標(biāo)題為"Have a lunch",內(nèi)容為plan.txt文件內(nèi)容的郵件給Roger。

  定期運(yùn)行程序或者腳本是管理員要面臨一個很普遍的問題,

  一、 使用crond監(jiān)控程序運(yùn)行程序

  1. 使用cron來定期執(zhí)行任務(wù)

  使用crond (cron監(jiān)控程序)來定期運(yùn)行一些任務(wù),比如備份日志、數(shù)據(jù)庫、把日志發(fā)送到自己郵箱等等操作都可以又定期運(yùn)行程序來完成。

  crond是個腳本,每次Linux啟動的時候都自動起到該腳本,該腳本是 /etc/rc.d/init.d 下面的,每次系統(tǒng)啟動的時候就自動會啟動該目錄下

  的腳本。

  cron有兩個配置文件,一個/etc/crontab,是一個全局配置文件,一組是crontab命令生成生成的配置文件,是屬于用戶級的。

  一般對管理員來說,只要使用全局配置的/etc/crontab就配置文件就可以了,我們?nèi)ゴ蜷_配置文件看看:

  SHELL=/bin/bash

  PATH=/sbin:/bin:/usr/sbin:/usr/bin

  MAILTO=root

  HOME=/

  # run-parts

  01 * * * * root run-parts /etc/cron.hourly

  02 4 * * * root run-parts /etc/cron.daily

  22 4 * * 0 root run-parts /etc/cron.weekly

  42 4 1 * * root run-parts /etc/cron.monthly

  我們稍微來分析一下這個文件:

  /* 設(shè)置基于什么shell來運(yùn)行,我們這里是基于bash shell */

  SHELL=/bin/bash

  /* 指定目錄中有次文件的命令時,不需要完整目錄路經(jīng) */

  PATH=/sbin:/bin:/usr/sbin:/usr/bin

  /* 使用cron實際工作時,見通過郵件來同志root用戶 */

  MAILTO=root

  /* 與/etc/crontab配置文件相關(guān)的主目錄為根目錄 */

  HOME=/

  /* 好了,這里是關(guān)鍵是,下面的是要指定什么時間運(yùn)行什么目錄下的任務(wù),run-parts命令是運(yùn)行指定目錄下的每個腳本 */

  # run-parts

  /* 這一句是在每天每小時過后一分鐘運(yùn)行/etc/cron.hourly目錄中的每個腳本文件 */

  01 * * * * root run-parts /etc/cron.hourly

  /* 在每天凌晨4點(diǎn)2分運(yùn)行/etc/cron.daily目錄中的每個腳本文件 */

  02 4 * * * root run-parts /etc/cron.daily

  /* 在每個星期天凌晨4點(diǎn)22分運(yùn)行/etc/cron.weekly目錄中的每個腳本文件 */

  22 4 * * 0 root run-parts /etc/cron.weekly

  /* 在每個月的第一天凌晨4點(diǎn)42分運(yùn)行/etc/cron.monthly目錄中的每個腳本文件 */

  42 4 1 * * root run-parts /etc/cron.monthly

  大家看到里面的"*"一定覺得很奇怪,下面我們句稍微來了解一下cron的語法:

  上面腳本中的時間是從左到右的,分別列出了五個字段,我們看下面的表:

  ------------------------------------------------

  字段      取值范圍

  ------------------------------------------------

  Minute    0 ~ 59

  Hour      0 ~ 23,其中0是午夜,20是晚上8點(diǎn)

  Day 1 ~ 31

  Month     1 ~ 12

  Day of week     0 ~ 7,其中0和7是表示星期天

  ------------------------------------------------

  任何字段中的星號是通配符,例如,如果第一個字段包括星號,則特定若無其事在可能的每一分鐘運(yùn)行。如果要指定時間范圍,比如上午8點(diǎn)到

  下午4點(diǎn),則可以見第二個字段設(shè)置為8~16。如果要隔一天運(yùn)行任務(wù),則可以將第三個字段設(shè)置為*/2?梢钥闯,如果五個字段(minute、hour

  、day、month、day of week) 之后,cron中的每個字段就沒什么神秘之處了。

  2. 用戶自己的cron

  用戶也可以計劃用戶自己的cron任務(wù),比如他想要在半夜整理他的文件,然后發(fā)送郵件給自己,只要這個用戶他沒有在/etc/cron.deny表中,

  就可以使用crontab -e命令來啟動自己的cron文件。

  3. 對cron的訪問控制

  默認(rèn)情況下,所有用戶都能訪問cron工具,要對cron進(jìn)行訪問控制,則可以生成/etc/cron.allow與/etc/cron.deny文件。

  (1)這兩個文件都不存在時,每個用戶都可以訪問cron工具]

  (2)存在/etc/cron.allow文件時,則只有cron.allow文件中允許的用戶才能訪問cron工具,如果也有/etc/cron.deny文件,則忽略cron.deny文

  件

  二、 使用at命令定期運(yùn)行程序

  1. 使用cron運(yùn)行任務(wù)

  cron任務(wù)的缺點(diǎn)是計劃要經(jīng)常運(yùn)行,假如我們只是想要讓特定任務(wù)運(yùn)行一次呢?那么,這時候就要用到at監(jiān)控程序了。

  設(shè)置at命令很簡單,指示定運(yùn)行的時間,那么就會在哪個時候運(yùn)行。at類似打印進(jìn)程,會把任務(wù)放到/var/spool/at目錄中,到指定時間運(yùn)行它

  。at命令相當(dāng)于另一個shell,運(yùn)行at time命令時,它發(fā)送一個個命令,可以輸入任意命令或者程序。at now + time命令可以在指示任務(wù)。

  假設(shè)處理一個大型數(shù)據(jù)庫,要在別人不用系統(tǒng)時去處理數(shù)據(jù),比如凌晨2點(diǎn)5分。那么我們就應(yīng)該先建立/home/mj/airplane腳本管理數(shù)據(jù)庫,計

  劃處理/home/mj/air-safe文件中的結(jié)果。正常方式是這樣啟動下列命令:

  # at 2:05 tomorrow

  at> /home/mj/airplane > /home/mj/air-safe

  at> Ctrl+D

  AT Time中的時間表示方法

  -----------------------------------------------------------------------

  時間   例子    說明

  -----------------------------------------------------------------------

  Minute at now + 5 minutes  任務(wù)在5分鐘后運(yùn)行

  Hour   at now + 1 hour     任務(wù)在1小時后運(yùn)行

  Days   at now + 3 days     任務(wù)在3天后運(yùn)行

  Weeks  at now + 2 weeks    任務(wù)在兩周后運(yùn)行

  Fixed  at midnight   任務(wù)在午夜運(yùn)行

  Fixed     &

關(guān)鍵詞標(biāo)簽:Linux

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程使用screen管理你的遠(yuǎn)程會話使用screen管理你的遠(yuǎn)程會話GNU/Linux安裝vmwareGNU/Linux安裝vmware如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連

相關(guān)下載

人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址linux tc實現(xiàn)ip流量限制dmidecode命令查看內(nèi)存型號linux下解壓rar文件安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程Ubuntu linux 關(guān)機(jī)、重啟、注銷 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服務(wù)器硬盤IO讀寫負(fù)載