Linux知识二:设置开机启动项、定时运行程序

eastnow 2010-11-12

设置开机启动服务知识:

chkconfig--level35服务名on:设定开机时启动的服务。

/etc/at.allow与/etc/at.deny这两个档案来可以进行at的使用限制。希望有某些使用者使用at的话,将那个使用者的账号写入/etc/at.deny即可!一个账号写一行。

at[-m]TIME,要让/var/spool/at目录底下的工作被实际运作,必须要启动我们上面提到的atd那个服务,参数:

-m:当at的工作完成后,以email的方式通知使用者该工作已完成。

TIME:时间格式,这里可以定义出『什么时候要进行at这项工作』的时间,格式有:

HH:MMex>04:00

在今日的HH:MM时刻进行,若该时刻已超过,则明天的HH:MM进行此工作。

HH:MMYYYY-MM-DDex>04:002005-12-03

强制规定在某年某月的某一天的特殊时刻进行该工作!

HH:MM[am|pm][Month][Date]ex>04pmDecember3

也是一样,强制在某年某月某日的某时刻进行!

HH:MM[am|pm]+number[minutes|hours|days|weeks]

ex>now+5minutesex>04pm+3days

就是说,在某个时间点『再加几个时间后』才进行。

范例一:再过五分钟后,将/root/.bashrc寄给dmtsai这个使用者

[root@linux~]#atnow+5minutes

at>/bin/maildmtsai-s"testingatjob"</root/.bashrc

at><EOT><==这里输入[ctrl]+d就会出现<EOF>的字样!代表结束!

job8at2005-09-0710:47

#上面这行信息在说明,第8个at工作将在2005/09/07的10:47进行!

范例二:由于机房预计于2005/09/16停电,我想要在2005/09/1523:00关机?

[root@linux~]#at23:002005-09-15

at>/bin/sync

at>/bin/sync

at>/sbin/shutdown-hnow

at><EOT>

job10at2005-09-1523:00

#您瞧瞧!at还可以在一个工作内输入多个指令呢!不错吧!

atq:查询目前主机上面有多少的at工作排程。

atrm[jobnumber]:排除排程,先用atq查看排程的ID号,再用此命令排除排程。

chkconfig命令用来更新和查询不同运行级上的系统服务,语法为:

chkconfig--list[name]

chkconfig--addname

chkconfig--delname

chkconfig[--levellevels]name

chkconfig[--levellevels]name。

chkconfig有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。

选项介绍:

--levellevels指定运行级,由数字0到7构成的字符串,如:

--level35表示指定运行级3和5。要在运行级别3、4、5中停运nfs服务,使用下面的命令:chkconfig--level345nfsoff

--addname这个选项增加一项新的服务,chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。

--delname用来删除服务,并把相关符号连接从/etc/rc[0-6].d删除。

--listname列表,如果指定了name那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。

不同的运行级定义如下:

#0-停机(千万不能把initdefault设置为0)

#1-单用户模式#sinits=init1

#2-多用户,没有NFS

#3-完全多用户模式(标准的运行级)

#4-没有用到

#5-X11多用户图形模式(xwindow)

#6-重新启动(千万不要把initdefault设置为6)

运行级文件,每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。

第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用-代替运行级。

第二行对服务进行描述,可以用跨行注释。

例如,random.init包含三行:

#chkconfig:23452080

#description:Savesandrestoressystementropypoolfor

#higherqualityrandomnumbergeneration.

表明random脚本应该在运行级2,3,4,5启动,启动优先权为20,停止优先权为80。

实例:

1、在linux下安装了apache服务(通过下载二进制文件经济编译安装、而非rpm包)、apache服务启动命令:/usr/local/apache/bin/apachectlstart,让apache服务运行在运行级别3下面。

命令如下:

1)touch/etc/rc.d/init.d/apache

vi/etc/rc.d/init.d/apache

chown-Rroot/etc/rc.d/init.d/apache

chmod700/etc/rc.d/init.d/apache

ln-s/etc/rc.d/init.d/apache/etc/rc.d/rc3.d/S60apache

#S是start的简写、代表启动、K是kill的简写、代表关闭。60数字代表启动的顺序(对于iptv系统而言、许多服务建立在数据库启动的前提下才能够正常启动的、可以通过该数字就行调整脚本的启动顺序)。

apache的内容:

#!/bin/bash

#Starthttpdservice

/server/apache/bin/apachectlstart。

定时运行知识:

crontab:使用者的设定,安全性的问题,与at同样的,我们可以限制使用crontab的使用者账号,允许与禁止用法与at类似。当使用crontab来建立工作排程之后,它就会被纪录到/var/spool/cron/里。

crontab[-uusername][-l|-e|-r],参数:

-u:只有root才能进行这个任务,亦即帮其它使用者建立/移除crontab;

-e:编辑crontab的工作内容

-l:查阅crontab的工作内容

-r:移除crontab的工作内容。

范例一:用dmtsai在每天的12:00发信给自己

[dmtsai@linux~]$crontab-e

#此时会进入vi的编辑画面让您编辑工作!注意到,每项工作都是一行。

012***maildmtsai-s"at12:00"</home/dmtsai/.bashrc。

代表意义分钟小时日期月份周

数字范围0-590-231-311-120-7。

特殊字符代表意义

代表任何时刻都接受的意思!举例来说,上表的范例一,那个日、月、周都是*,就

*

代表着『不论何月、何日的礼拜几的12:00都执行后续指令』的意思!

代表分隔时段的意思。举例来说,如果要下达的工作是3:00与6:00时,就会是:

03,6***command

,

还是有五栏,不过第二栏是3,6,代表3与6都适用!

代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工

-作:

208-12***command

仔细看到第二栏变成8-12喔!代表8,9,10,11,12都适用的意思!

那个n代表数字,亦即是『每隔n单位间隔』的意思,例如每五分钟进行一次,则:

*/5****command

/n

很简单吧!用*与/5来搭配,也可以写成0-59/5,相同意思!

定时运行PHP文件:06***/usr/local/php/bin/php/usr/local/apache/htdocs/test/timer.php>>/tmp/cron.log。

后台运行:/usr/local/php/bin/phpCopyBaseToFile.inc.php&。

终端关闭后继续在后台运行:nohup/usr/local/php/bin/phpCopyBaseToFile.inc.php&。

相关推荐