linux运维管理小脚本,Linux初级运维(十八)——bash脚本编程之信号捕捉及系统管理任务计划...

一、脚本编程知识点

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

2、变量赋值等:

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

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

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

${parameter:offset}

${parameter:offset:length}:取子串,从offset处的后一个字符开始,取lenth长的子串;

cross compile:交叉编译

3、脚本配置文件

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

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

4、局部变量

local VAR_NAME=

eg:

a=1

test() {

a=$[3+4]

}

test

for I in `seq $a 10` ; do

echo $I

done

5、命令 mktemp

创建临时文件或目录

mktemp /tmp/file.XX

-d :创建为目录

6、信号

kill -SIGNAL PID

1:HUP

2:INT

9:KILL

15:TERM

脚本中,能实现信号捕捉,但9和15无法捕捉

Ctrl+c:SIGINT

trap命令:

trap ‘COMMAND’ 信号列表

7、一行执行多个语句,语句间用分号分隔

二、任务计划

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

at

batch

at 时间

at>COMMAND

at> Ctrl+d

指定时间:      (绝对时间: HH:MM , DD.MM.YY   MM/DD/YY 10:20 );(相对时间: now+#  单位:minutes,hours,days,weeks     now+3m )

模糊时间:noon ,midnight,teatime

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

at -l = atq

at -d AT_JOB_TD = atrm AT_JOB_ID

2、周期性地执行某任务

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    *    *    *    7 :表示每周的星期日的每小时的第三分钟执行粪污

3    12    *    *    5:表示每周五的12点3分执行一次任务,一周执行一次

3    12    6    *    *:表示每月6号的12点3分执行一次任务,一个月执行一次

3    12    6    8    *:表示每年8月6号的12点3分执行一次任务,一年执行一次

PS:周和日最好不要一起使用

,:离开时间点:

10,40    02    *    * 2,5 :表示每周二和周五的 2点10分和亮点40分执行一次任务

-:连续时间点:

10    02    *    *    1-5:表示周一至周五的 两点十分执行一次任务,每周执行五次。

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

*/3    *    *    *    *:表示每3分钟执行一次的任务

每两小时执行一次:   08    */2    *    *    *

每两天执行一次: 10    04    */2    *    *

执行结果将以邮件形式发送给管理员: */3     *    *    *    * /bin/cat    /etc/fstab &>/dev/null

cron的环境变量:cron执行所有命令都去PATH环境变量指定的路径下去找

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

用户任务的管理:

crontab:

-l:列出当前用户的所有cron任务

-e:编辑

-r:移除所有任务

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值