您的位置:首页 > 其它

信号捕捉及计划任务

2016-06-30 23:06 197 查看
查看本机硬件设备信息
1.cat /proc/cpuinfo
2.lsusb
3. lspci
4 hal-device
stty –F /dev/console size 取文件大小

脚本编程知识点:
变量中字符的长度:${#VARNAME}

变量赋值等

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

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

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

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

${parameter:offset}

${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
脚本中,能实现信号捕捉,但9和15无法捕捉

trap命令
trap‘COMMAND’信号列表

写一个脚本捕捉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
~

任务计划:
在未来的某个时间点执行一次某任务

atat 时间at>COMMANDat>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 黑名单,卸载这个文件的用户不能使用atbatch 自动选择系统较空闲的时候执行任务。使用方式和at相同
周期性地执行某任务

cron:自身是一个不间断运行的服务anacron:cron的补充,能够实现让cron因为各种原因在过去的时间点该执行而未执行的任务在恢复正常后再执行一次cron 系统cron任务 /etc/crontab 分钟 小时 天 月周 用户 任务 用户cron任务 /var/spool/cron/USERNAME 分钟 小时 天 月 周 任务 时间的有效取值 分钟:0-59 小时:0-23 天:1-31 月:1-12 周:0-7,0和7都表示周日 时间通配表示: *:对应所有有效取值3 * * * * 每小时的第3分钟执行一次任务3 * * * 7 每个星期天的每三分钟执行一次任务13 12 * * * 每天的12点13分执行一次13 12 * * 5每周5的 12点13分执行一次 ,:离开时间点:10,40 * * * * 每个小时的10分和40分执行一次10,40 * * * 2,5 每周2和周5的10分和40分执行一次-:连续的时间点: 10 02 * * 1-5 每周1到周5的2点10分执行一次/#:对应取值范围内每多久一次 */3 * * * * 每3分钟执行一次每两小时执行一次:01 */2 * * *
执行结果将以邮件形式发送给管理员*/3 * * * */bin/cat /etc/fstab &>/dev/null 命令使用绝对路径 cron的环境变量:cron执行得所有命令都去PATH环境变量指定的路径下去找PATH /bin:/sbin:/user/bin:/usr/sbin 设定脚本时可以在脚本里定义环境变量#!/bin/bashexport 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 来管理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计划任务 信号 捕捉