這裡介紹Linux中的cron命令和at命令
工具/原料
linux
cron,at
方法/步驟
crontab檔案的存放路徑是/etc/crontab
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的啟動模式可通過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的模式啟動。
Runlevel 0 是讓init關閉所有程序並終止系統。
Runlevel 1 是用來將系統轉到單使用者模式,單使用者模式只能有系統管理員進入,在該模式下處理那些在有登入使用者的情況下不能進行更改的檔案,改runlevel的編號1也可以用S代替。
Runlevel 2 是允許系統進入多使用者的模式,但並不支援檔案共享,這種模式很少應用。
Runlevel 3 是最常用的執行模式,主要用來提供真正的多使用者模式,也是多數伺服器的預設模式。
Runlevel 4 一般不被系統使用,使用者可以設計自己的系統狀態並將其應用到runlevel 4階段,儘管很少使用,但使用該系統可以實現一些特定的登入請求。
Runlevel 5 是將系統初始化為專用的X Window終端。對功能強大的Linux系統來說,這並不是好的選擇,但使用者如果需要這樣,也可以通過在runlevel啟動來實現該方案。
Runlevel 6 是關閉所有執行的程序並重新啟動系統。
/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指令碼
他們的執行順序由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預設是使用者自定義的指令碼
/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是個好習慣。
關於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,是因為它不在命令列上等待輸入而只是執行指令碼程式。