码迷,mamicode.com
首页 > 其他好文 > 详细

信号捕捉及计划任务

时间:2016-06-30 23:28:43      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:信号捕捉及计划任务

查看本机硬件设备信息

1.cat /proc/cpuinfo

2.lsusb

3. lspci

4 hal-device

 

stty –F /dev/console size 取文件大小

 

脚本编程知识点:

  1. 变量中字符的长度:${#VARNAME}

  2. 变量赋值等

  3. ${parameter:-word}; 如果 parameter为空或未定义,则变量展开为”word”,否则,展开为parameter的值。

[root@mylinux ~]# A=3

[root@mylinux ~]# echo ${A:-30}

3

[root@mylinux ~]# echo ${B:-30}

30

 

 

  1. ${parameter:+word}; 如果parameter为空或未定义,不做任何操作;否则,展开为”word”

  2. ${parameter:=word}; 如果parameter 为空或未定义,则变量展开为”word”,并将展开的值给parameter

  3. ${parameter:offset}

  4. ${parameter:offset:lengt}:取子串,从offset处的最后一个字符开始,取lengt长的字串

[root@mylinux ~]# A=‘hello world‘   从第2个字符开始向

[root@mylinux ~]# echo ${A:2:3}  略过2个,再取后面3个字符

llo

/etc/rc.d/init.d 服务脚本

服务脚本支持配置文件:/etc/sysconfig服务脚本同名的配置文件

 

 

local VAR_NAME= 定义局部变量

mktemp命令,创建临时文件或者目录

mktemp /tmp/file.XXX  生成的随机数值当做文件名

mktemp –d创建临时目录

 

 

信号:

kill –SIGNAL PID

脚本中,能实现信号捕捉,但915无法捕捉

 

trap命令

 trapCOMMAND’信号列表

 

写一个脚本捕捉Crtl+c信号

#!/bin/bash

#

trap ‘echo "wuxiao.."‘  2

while :; do

date

sleep 2

done

 

在同一行里使用两个命令用;隔开

#!/bin/bash

#

NET=192.168.50

FILE1=`mktemp /tmp/file.XXX`

clearup () {

echo "quit"

exit 1

rm -f $FILE

}

 

trap ‘clearup‘ INT

 

for I in {99..254};do

 if  ping -c 1 -w 1 $NET.$I&>/dev/null; then

     echo "$NET.$I is up" | tee >> $FILE1

 else

     echo "$NET.$I is down"

  fi

done

~                

 

任务计划:

  1. 在未来的某个时间点执行一次某任务

at

at 时间

at>COMMAND

at>Ctrl+d

 

指定时间:

绝对时间HH:MM     DD.MM.YY  MM/DD/YY    10:20

相对时间 now+#minutes从现在开始#分钟以后,

        单位:minutes,hours,days,weeks

模糊时间:noon,midnight,teatime

编辑完命令以后使用ctrl+D来退出

命令的执行结果:将以邮件的形式发送给安排任务的用户

 

at -l =atq显示作业列表

at –d  #=atrm  # 删除第#个命令

/etc/at.allow白名单

/etc/at.denv 黑名单,卸载这个文件的用户不能使用at

batch

  自动选择系统较空闲的时候执行任务。使用方式和at相同

 

 

  1. 周期性地执行某任务

cron:自身是一个不间断运行的服务

anacron:cron的补充,能够实现让cron因为各种原因在过去的时间点该执行而未执行的任务在恢复正常后再执行一次

cron

   系统cron任务

      /etc/crontab

         分钟 小时 月周 用户 任务

   用户cron任务

   /var/spool/cron/USERNAME

       分钟 小时 任务

  时间的有效取值

  分钟:0-59

  小时:0-23

  天:1-31

  月:1-12

  周:0-7,07都表示周日

 

时间通配表示:

 *:对应所有有效取值

3 * * * * 每小时的第3分钟执行一次任务

3 * * * 7 每个星期天的每三分钟执行一次任务

13 12 * * * 每天的1213分执行一次

13 12 * * 5每周5 1213分执行一次

 ,:离开时间点:

10,40 * * * * 每个小时的10分和40分执行一次

10,40 * * * 2,5 每周2和周510分和40分执行一次

-:连续的时间点:

   10  02  *  * 1-5 每周1到周5210分执行一次

/#:对应取值范围内每多久一次

 */3 *   *   *  * 3分钟执行一次

每两小时执行一次:

01      */2  * *  *

 

执行结果将以邮件形式发送给管理员

*/3 * * * */bin/cat /etc/fstab &>/dev/null    命令使用绝对路径

 

cron的环境变量:cron执行得所有命令都去PATH环境变量指定的

路径下去找

PATH  /bin:/sbin:/user/bin:/usr/sbin

 

设定脚本时可以在脚本里定义环境变量

#!/bin/bash

export  PATH=

 

 

 

用户任务的管理:

crontab –l查看当前任务

crontab –e 编辑任务

crontab –r 移除所有任务

crontab –u USERNAME  -e:管理其用户的cron任务

 

[root@localhost~]# crontab -u admin -e

nocrontab for admin - using an empty one

crontab:installing new crontab

[root@localhost~]# ls /var/spool/cron/

admin

 

 

anacron :/etc/anacrontab

 

[root@localhost~]# cat /etc/anacrontab

#/etc/anacrontab: configuration file for anacron

 

# Seeanacron(8) and anacrontab(5) for details.

 

SHELL=/bin/sh

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

MAILTO=root

# themaximal random delay added to the base delay of the jobs

RANDOM_DELAY=45

# thejobs will be started during the following hours only

START_HOURS_RANGE=3-22

 

#periodin days   delay in minutes   job-identifier   command

1        5       cron.daily                   nice run-parts/etc/cron.daily

7        25     cron.weekly               nice run-parts /etc/cron.weekly

@monthly45    cron.monthly            nice run-parts /etc/cron.monthly

第一个字段表示多少天没执行,第二个字段表示开机多少小时候执行,第三个字段是注释信息

第四个字是命令

 

 

 

 

一定要确保crond这个服务正在运行

[root@localhost~]# service crond status

crond(pid  1439) 正在运行...

anacron也是一定要保证服务正常运行

 

 

此服务也可以通过chkconfig 来管理

 

 


本文出自 “linux运维” 博客,谢绝转载!

信号捕捉及计划任务

标签:信号捕捉及计划任务

原文地址:http://coolcl.blog.51cto.com/4514424/1794746

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!