Linux自動執行程式--例行性事件?

Tags: 事件, 程式,

這裡介紹Linux中的cron命令和at命令

工具/原料

linux

cron,at

方法/步驟

crontab檔案的存放路徑是/etc/crontab

Linux自動執行程式--例行性事件

cron用來執行週期性的事件,cron命令有個一個特殊的檔案與之對應,內容如下

[[email protected] spool]$ cat /etc/crontab

SHELL=/bin/bash

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

MAILTO=root

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# .------------- hour (0 - 23)

# .---------- day of month (1 - 31)

# .------- month (1 - 12) OR jan,feb,mar,apr ...

# .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

#

# * * * * * user-name command to be executed

[[email protected] spool]$

Linux自動執行程式--例行性事件

Linux的啟動模式可通過inittab檔案進行配置,下面是inittab檔案的內容

# cat /etc/inittab

# inittab is only used by upstart for the default runlevel.

#

# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

#

# System initialization is started by /etc/init/rcS.conf

#

# Individual runlevels are started by /etc/init/rc.conf

#

# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf

#

# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,

# with configuration in /etc/sysconfig/init.

#

# For information on how to write upstart event handlers, or how

# upstart works, see init(5), init(8), and initctl(8).

#

# Default runlevel. The runlevels used are:

# 0 - halt (Do NOT set initdefault to this)

# 1 - Single user mode

# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 - Full multiuser mode

# 4 - unused

# 5 - X11

# 6 - reboot (Do NOT set initdefault to this)

#

id:5:initdefault:

# 這裡的【id:5:initdefault:】就是說本系統預設是以X11也就是x-window的模式啟動。

Linux自動執行程式--例行性事件

Runlevel 0 是讓init關閉所有程序並終止系統。

  Runlevel 1 是用來將系統轉到單使用者模式,單使用者模式只能有系統管理員進入,在該模式下處理那些在有登入使用者的情況下不能進行更改的檔案,改runlevel的編號1也可以用S代替。

  Runlevel 2 是允許系統進入多使用者的模式,但並不支援檔案共享,這種模式很少應用。

  Runlevel 3 是最常用的執行模式,主要用來提供真正的多使用者模式,也是多數伺服器的預設模式。

  Runlevel 4 一般不被系統使用,使用者可以設計自己的系統狀態並將其應用到runlevel 4階段,儘管很少使用,但使用該系統可以實現一些特定的登入請求。

  Runlevel 5 是將系統初始化為專用的X Window終端。對功能強大的Linux系統來說,這並不是好的選擇,但使用者如果需要這樣,也可以通過在runlevel啟動來實現該方案。

  Runlevel 6 是關閉所有執行的程序並重新啟動系統。

Linux自動執行程式--例行性事件

/etc/rc開頭的檔案,一般都是系統啟動後自動執行的檔案。rc開頭的檔案很多,如下:

rc rc1.d/ rc3.d/ rc5.d/ rc.d/ rc.sysinit

rc0.d/ rc2.d/ rc4.d/ rc6.d/ rc.local

其中init是所有程序之父 init讀取/etc/inittab,執行rc.sysinit指令碼

Linux自動執行程式--例行性事件

他們的執行順序由inittab中設定的init tree決定,一般設定為: /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d /etc/rc.d/rc5.d /etc/rc.d/rc6.d /etc/rc.d/rc.local

其中/etc/rc.d/rc.local預設是使用者自定義的指令碼

Linux自動執行程式--例行性事件

/etc/rc.d/rc.local檔案內容如下:

[[email protected] etc]# cat /etc/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

經常使用的 rc.local 則完全是習慣問題,不是標準。不過使用 rc.local是個好習慣。

Linux自動執行程式--例行性事件

關於bash啟動指令碼

/etc/profile

/etc/bashrc

~/.bash_profile

~/.bashrc

是bash的啟動指令碼

一般用來設定單使用者的啟動環境,也可以實現開機單使用者的程式,但要明確他們都是屬於bash範疇而不是系統範疇。

他們的具體作用介紹如下:

/bin/bash這個命令解釋程式(後面簡稱shell)使用了一系列啟動檔案來建立一個執行環境:

/etc/profile

/etc/bashrc

~/.bash_profile

~/.bashrc

~/.bash_logout

每一個檔案都有特殊的功用並對登陸和互動環境有不同的影響。

/etc/profile 和 ~/.bash_profile 是在啟動一個互動登陸shell的時候被呼叫。

/etc/bashrc 和 ~/.bashrc 是在一個互動的非登陸shell啟動的時候被呼叫。

~/.bash_logout 在使用者登出登陸的時候被讀取

一個互動的登陸shell會在 /bin/login 成功登陸之後執行。一個互動的非登陸shell是通過命令列來執行的,如[prompt]$/bin/bash。一般一個非互動的shell出現在執行shell指令碼的時候。之所以叫非互動的shell,是因為它不在命令列上等待輸入而只是執行指令碼程式。

相關問題答案