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任务
- bash脚本编程之十四 信号捕捉及系统管理之任务计划
- Linux01-BASH脚本编程之信号捕捉及任务计划53
- Linux基础入门及系统管理01-bash脚本编程之二if等条件判断脚本知识17
- Linux基础入门及系统管理01-bash脚本编程之四文件测试及特殊变量19
- 日常运维(六):Linux系统的任务计划与系统服务管理
- Linux基础入门及系统管理01-bash脚本编程之一变量、变量类型等16
- Linux基础入门及系统管理01-bash脚本编程之三整数测试及算术运算18
- 2018-2-4Linux系统管理(5)bash脚本编程参数变量及条件判断
- Linux初级运维(十五)——bash脚本编程之函数
- Linux基础入门及系统管理01-bash脚本编程之五字符串测试及for循环21
- Linux控制脚本:信号捕捉,作业控制,调整谦让度,以及计划任务
- Linux系统以秒为单位执行shell脚本完成任务计划
- linux任务计划、 系统服务管理工具chkconfig、systemd
- Linux系统任务计划和系统服务管理
- 20151209 Linux系统日常管理 (第三部分计划任务crontab;anacron)
- Linux初级运维(十六)——Linux进程管理及系统启动流程
- Linux运维学习历程-第十二天-bash脚本与程序包管理
- linux运维初级班shell脚本编程考试及参考答案20110523
- linux命令:shell脚本编程知识点 信号捕捉trap mktemp ${#}
- linux下的周期性任务(任务计划)-阅linux系统管理技术整理