`
berrywu
  • 浏览: 124808 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

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

阅读更多

设置开机启动服务知识:
chkconfig --level 35 服务名 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:MM                     ex> 04:00
         在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此工作。
 HH:MM YYYY-MM-DD             ex> 04:00 2005-12-03
         强制规定在某年某月的某一天的特殊时刻进行该工作!
 HH:MM[am|pm] [Month] [Date] ex> 04pm December 3
         也是一样,强制在某年某月某日的某时刻进行!
 HH:MM[am|pm] + number [minutes|hours|days|weeks]
         ex> now + 5 minutes ex> 04pm + 3 days
         就是说,在某个时间点『再加几个时间后』才进行。
 范例一:再过五分钟后,将 /root/.bashrc 寄给 dmtsai 这个使用者
 [root@linux ~]# at now + 5 minutes
 at> /bin/mail dmtsai -s "testing at job" < /root/.bashrc
 at> <EOT>   <==这里输入 [ctrl] + d 就会出现 <EOF> 的字样!代表结束!
 job 8 at 2005-09-07 10:47
 # 上面这行信息在说明,第 8 个 at 工作将在 2005/09/07 的 10:47 进行!
 范例二:由于机房预计于 2005/09/16 停电,我想要在 2005/09/15 23:00 关机?
 [root@linux ~]# at 23:00 2005-09-15
 at> /bin/sync
 at> /bin/sync
 at> /sbin/shutdown -h now
 at> <EOT>
 job 10 at 2005-09-15 23:00
 # 您瞧瞧! at 还可以在一个工作内输入多个指令呢!不错吧!
atq:查询目前主机上面有多少的 at 工作排程。
atrm [jobnumber]:排除排程,先用atq查看排程的ID号,再用此命令排除排程。
chkconfig 命令用来更新和查询不同运行级上的系统服务,语法为:   
     chkconfig --list [name]
     chkconfig --add name
     chkconfig --del name
     chkconfig [--level levels] name
     chkconfig [--level levels] name。
chkconfig 有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。
选项介绍:   
     --level levels  指定运行级,由数字 0 到 7 构成的字符串,如:   
     --level 35   表示指定运行级3 和5。     要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:chkconfig --level 345 nfs off   
     --add name      这个选项增加一项新的服务,chkconfig 确保每个运行级有一项 启动(S) 或者 杀死(K) 入口。如有缺少,则会从缺省的init 脚本自动      建立。   
     --del name      用来删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除。   
     --list name     列表,如果指定了name 那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。
不同的运行级定义如下:
  # 0 - 停机(千万不能把initdefault 设置为0 )
  # 1 - 单用户模式                                     # s   init s = init 1
  # 2 - 多用户,没有 NFS
  # 3 - 完全多用户模式(标准的运行级)
  # 4 - 没有用到
  # 5 - X11 多用户图形模式(xwindow)
  # 6 - 重新启动 (千万不要把initdefault 设置为6 )
运行级文件,每个被chkconfig 管理的服务需要在对应的init.d 下的脚本加上两行或者更多行的注释。
      第一行告诉 chkconfig 缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。
      第二行对服务进行描述,可以用 跨行注释。
例如,random.init 包含三行:
     # chkconfig: 2345 20 80
     # description: Saves and restores system entropy pool for
     # higher quality random number generation.
     表明 random 脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为20,停止优先权为 80。
实例:
1、在linux下安装了apache服务(通过下载二进制文件经济编译安装、而非rpm包)、apache服务启动命令:/usr/local/apache/bin/apachectl start,让apache服务运行在运行级别3下面。
命令如下: 
   1)touch /etc/rc.d/init.d/apache
      vi /etc/rc.d/init.d/apache
      chown -R root /etc/rc.d/init.d/apache
      chmod 700 /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
      #Start httpd service
      /server/apache/bin/apachectl start。
  
定时运行知识:
crontab:使用者的设定,安全性的问题, 与 at 同样的,我们可以限制使用 crontab 的使用者账号,允许与禁止用法与at类似。当使用 crontab来建立工作排程之后,它就会被纪录到 /var/spool/cron/ 里。
crontab [-u username] [-l|-e|-r],参数:
 -u :只有 root 才能进行这个任务,亦即帮其它使用者建立/移除 crontab;
 -e :编辑 crontab 的工作内容
 -l :查阅 crontab 的工作内容
 -r :移除 crontab 的工作内容。
 范例一:用 dmtsai 在每天的 12:00 发信给自己
 [dmtsai@linux ~]$ crontab -e
 # 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
 0   12  *  *  * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc。
 代表意义 分钟   小时   日期   月份    周
 数字范围 0-59 0-23 1-31 1-12 0-7。
 特殊字符                           代表意义
      代表任何时刻都接受的意思!举例来说,上表的范例一,那个日、月、周都是 * , 就
   *
      代表着『不论何月、何日的礼拜几的 12:00 都执行后续指令』的意思!
      代表分隔时段的意思。举例来说,如果要下达的工作是 3:00 与 6:00 时,就会是:
          0 3,6 * * * command
   ,
      还是有五栏,不过第二栏是 3,6 ,代表 3 与 6 都适用!
      代表一段时间范围内,举例来说, 8 点到 12 点之间的每小时的 20 分都进行一项工
   -  作:
          20 8-12 * * * command
    仔细看到第二栏变成 8-12 喔!代表 8,9,10,11,12 都适用的意思!
    那个 n 代表数字,亦即是『每隔 n 单位间隔』的意思,例如每五分钟进行一次,则:
          */5 * * * * command
 /n
    很简单吧!用 * 与 /5 来搭配,也可以写成 0-59/5 ,相同意思!
 定时运行PHP文件:0 6 * * * /usr/local/php/bin/php /usr/local/apache/htdocs/test/timer.php  >> /tmp/cron.log。
 后台运行:/usr/local/php/bin/php CopyBaseToFile.inc.php &。
 终端关闭后继续在后台运行:nohup /usr/local/php/bin/php CopyBaseToFile.inc.php &。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics