Linux 定时器

定时器

(指定的时间执行某个程序)
crontab 命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab 文件来保存调度信息。可以使用它运行任意一个 s h e l l 脚本或某个命令。
crontab命令格式
作用:用于生成cron进程所需要的crontab文件
crontab的命令格式
#crontab -e
使用编辑器编辑当前的crontab文件。
crontab文件格式
minute hour day-of-month month-of-year day-of-week commands

分< >时< >日< >月< >星期< >要运行的命令 < >表示空格

其中
Minute 一小时中的哪一分钟 [0~59]
hour 一天中的哪个小时 [0~23]
day-of-month 一月中的哪一天 [1~31]
month-of-year 一年中的哪一月 [1~12]
day-of-week 一周中的哪一天 [0~6] 0表示星期天
commands 执行的命令

书写注意事项
1,全都不能为空,必须填入,不知道的值使用通配符*表示任何时间
2,每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔。
3,命令应该给出绝对路径
4,用户必须具有运行所对应的命令或程序的权限
如何使用crontab 运行多个任务:
方法1:在crontab -e 里 写多个
输入命令 crontab –e
敲回车
在这里插入图片描述
开始编写任务:(每个两分钟)
在这里插入图片描述
方法2:把所有的任务,写入到一个可执行的文件
再在crontab -e里面配置执行任务
在这里插入图片描述
分钟, 小时, 天 , 月 ,星期 ,命令/脚本
示例:
eg:4点备份
0 4 * * *

eg:每周二,周五,下午6点 的计划任务
0 18 * * 2,5

eg:1到3月份,每周二周五,下午6点的计划任务
0 18 * 1-3 2,5

eg:周一到周五下午,5点半提醒学生15分钟后关机
30 17 * * 1-5 /usr/bin/wall < /etc/issue
45 17 * * 1-5 /sbin/shutdown -h now

eg:学校的计划任务, 12点14点,检查apache服务是否启动
*/2 12-14 * 3-6,9-12 1-5
eg:再添加一个备份,把/etc目录备份到/backup下,然后把错误的情况也记录下来,正确的文件都丢到/dev/null下,看不见(相当于一个黑洞)
*/2 12-14 * 3-6,9-12 1-5 /bin/cp -r /etc /backup/etc.20170407 2> /backup/etc.bak.err
/dev/null

eg:每月 1、1 0、2 2日的4:45运行/apps/bin目录下的backup.sh
45 4 1,10,22 * * /apps/bin/backup.sh

eg:每周六、周日的 1 : 10运行一个find命令
10 1 * * 6,0 /bin/find -name “core” -exec rm {} ;

eg:在每天 18:00至23 :00之间每隔30分钟运行/apps/bin目录下的dbcheck.sh
0,30 18-23 * * * /apps/bin/dbcheck.sh

eg:每星期六的 11:00 pm运行/apps/bin目录下的qtrend.sh
0 23 * * 6 /apps/bin/qtrend.sh

awk和sed (自己看)(讲hive案列时在细讲)

cut [选项] 文件名 默认分割符是制表符
选项:
-f 列号: 提取第几列
-d 分隔符: 按照指定分隔符分割列

eg:#cut -f 2 aa.txt 提取第二列
eg:#cut -d “:” -f 1,3 /etc/passwd 以:分割,提取第1和第3列
eg:#cat /etc/passwd | grep /bin/bash | grep -v root | cut -d “:” -f 1 获取所有可登陆
awk
一个强大的文本分析工具
把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
语法:awk ‘条件1{动作1}条件2{动作2}…’文件名
条件(Pattern):
一般使用关系表达式作为条件: > >= <=等
动作(Action):
格式化输出
流程控制语句
eg:#df -h | awk ‘{print $1 “\t” $3}’ 显示第一列和第三列
FS内置变量
eg:# cat /etc/passwd | grep “/bin/bash” | awk ‘BEGIN {FS=":"} {print $1 “\t”$3 }’ 输出可登陆用户的用户名和UID,这里使用FS内置变量指定分隔符为:,而且使用BEGIN保证第一行也操作,因为awk命令会在读取第一行后再执行条件
指定分隔符还可以用-F更简单
eg:# cat /etc/passwd | grep “/bin/bash” | awk -F: ‘{print $1 “\t”$3 }’ 效果同上
eg:判断一下根目录的使用情况
#df -h |grep sda1 | awk ‘{print $5}’ | awk -F% ‘{print $1} $1<80{print “info”}$1>80{print “warning”}’

BEGIN 在所有数据读取之前执行
eg:#awk ‘BEGIN {printf “first Line \n”} {printf $2 }’ aa.txt 在输出之前使用BEGIN输出内容
END 在所有数据执行之后执行
eg:#awk ‘END {printf “The End \n”} {print $2}’ aa.txt 所有命令执行完后,输出一句"The End"
#df -h | grep sda2 | awk ‘{print $5}’ | awk -F% ‘{print $1}’
#df -h | grep sda2 | awk ‘{print $5}’ | cut -d"%" -f 1
获取所有用户信息里的用户名:
cat /etc/passwd | awk -F: ‘{print $1}’
awk -F: ‘{print $1}’ /etc/passwd
获取当前机器的ip地址:
#ifconfig eth0 | grep ‘inet addr’ | awk -F: ‘{print $2}’ | awk ‘{print $1}’

sed: stream editor
s e d是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。标准输入可 能是来自键盘、文件重定向、字符串或变量,或者是一个管道的文本。
注意: s e d 并不与初始化文件打交道, 它操作的只是一个拷贝,然后所有的改动如果没有重定向到一个文件,将输出到屏幕。
语法:sed [选项]’[动作]’ 文件名
常用选项:
-n  使用安静(silent)模式。显示经过sed特殊处理的数据。
-e  允许多点编辑。
-i  直接修改读取的档案内容,而不是由屏幕输出。

命令功能描述
a\新增, a 的后面可以接字串,在下一行出现
c\替换
d删除
i\插入, i 的后面可以接字串
p打印
s查找并替换,例如 1,20s/old/new/g

eg:
sed ‘2p’ sed.txt 显示第二行和所有数据
sed -n ‘2,3p’ sed.txt 显示第二和第三行
df -h | sed -n ‘1p’ 接收命令结果数据
sed ‘2a liuyifei’sed.txt 在第二行后面添加数据
sed ‘4i fengjie
canglaoshi’sed.txt 在第4行之前添加两行数据
sed ‘2c this is replace’sed.txt 替换第二行数据
sed ‘s/it/edu360/g’ sed.txt 把sed.txt文件中的it替换为edu360,并输出
sed -e ‘1s/1/34/g;3s/yangmi//g’ sed.txt 同时进行多个替换
sed –i ‘s/it/edu360/g’ sed.txt 要想真正替换,需要使用-i参数
在这里插入图片描述使用sed获取机器的ip地址
ifconfig eth0 | grep ‘inet addr’| sed ‘s/^.addr://g’ | sed 's/ Bcast.$//g’

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值