剩余定时任务第四关练习题vim快捷键补充
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剩余定时任务第四关练习题vim快捷键补充相关的知识,希望对你有一定的参考价值。
作者:George 归档:学习笔记 2018/1/4 |
本章正题:剩余定时任务、第四关练习题、vim快捷键补充
1.1 定时任务中-命令或脚本定向到二个位置。(二选一)
情况一:追加到文件 >> /tmp/time.log 2>&1 (相当于>> /tmp/time.log 2>>/tmp/time.log )
注:1. 也可以这么写:&>> /tmp/time.log
2. 如果脚本执行错误,就会把显示到屏幕上的错误信息追加到这文件中。
3. 如果执行成功屏幕上没有任何提示,所以就没有信息写入文件。
情况二:定向到空 > /dev/null 2>&1 :把前面命令的正确和错误的 结果都定向到黑洞中
注: 也可以这么写:&>/dev/null
1.1.1 如果没有定向到空或追加到文件,会发生什么
解:这样很容易导致硬盘Inode满了,从而导致服务器不正常。
1)postfix开启的时候,系统会不断的给你发邮件
所以会提示:You have new mail in /var/spool/mail/root
注:会导致这个邮件var/spool/mail/root越来越大
2)postfix关闭的时候,会把邮件存放在邮件临时目录
邮件临时目录:/var/spool/postfix/maildrop/
注:也会占用大量Inode
删除大量小文件方法:
1. 缩小范围删除 ls 1*.txt |xargs rm
2. 全部删除(文件太多有可能失败) ls *.txt |xargs rm
3. ls *.txt |xargs -n数字 rm
4. 删除目录
创建大量小文件方法:
echo {1..500000}.txt |xargs touch
1.1.2 避免不必要的程序及命令输出
如:tar zcvf 中的v (显示详细过程),可省略
1.1.3 定时任务脚本中的程序文件,尽量使用绝对路径
1.测试命令
[[email protected] /]# cd / && tar zcf /tmp/etc-$(date +%F).tar.gz etc/
注:最好进入被打包文件的上一层目录,使用相对路径打包
2.写入脚本中
[[email protected] /]# echo "/bin/tar zcf etc-$(date +%F).tar.gz etc" > /server/scripts/etc.sh
3.检查脚本是否可用
[[email protected] /]# sh /server/scripts/etc.sh
注:测试脚本时,是否会显示到指定文件,取决于命令的作用是否会显示到屏幕上。
#tar etc
* * * * * /bin/sh /server/scripts/etc.sh > /dev/null 2>&1
注:sh -x :显示脚本执行过程 (里面的+号表示层次)
4.查看日志或看看是否执行成功
[[email protected] /]# tail -f /var/log/cron
Jan 4 09:49:02 georgekai CROND[5590]: (root) CMD (/bin/sh /server/scripts/date.sh >> /tmp/time.log 2>&1)
5. 根据实际要求在定时任务中修改时间
#tar et
00 01 * * * /bin/sh /server/scripts/etc.sh > /dev/null 2>&1
1.1.4 定时任务运行脚本的时候(PATH只认识2个路径:/usr/bin /bin)
如:ifconfig ip 会找不到路径
注:1. 定时任务运行命令时不影响
2. 只有在定时任务运行脚本时,PATH才只认识2个路径。
解决方法:
方法一:使用命令的绝对路径
方法二:PATH在脚本的开头重新定义一下
将这条命令写入脚本的开头:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
什么时候用方法2:tomcat
注:请参考http://oldboy.blog.51cto.com/2561410/1541515
方法三:脚本中写入“ source /etc/profile”
1.1.5 图形定时任务总结
系统定时任务配置文件:/etc/crontab
用户定时任务配置文件:/var/spool/cron/root
1.2 第四关练习题
1.2.1 每2个小时打包/etc/services备份到/tmp下
1. 测试命令
[[email protected] ~]# cd / && tar zcf /tmp/svr.tar.gz etc/services
2. 写入脚本
[[email protected] ~]# echo "cd / && tar zcf /tmp/svr.tar.gz etc/services" > /server/scripts/svr.sh
3. 测试脚本
[[email protected] ~]# sh /server/scripts/svr.sh
[[email protected] ~]# ll /tmp/
4. 写入定时任务
[[email protected] ~]# crontab -e
#backup /etc/services
00 */2 * * * /bin/sh /server/scripts/svr.sh >/dev/null 2>&1
5. 查看日志和命令执行效果
[[email protected] ~]# tail -f /var/log/cron
[[email protected] ~]#ll /tmp/
1.2.2 每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下(最好每次备份按时间
生成不同的备份包)
1. 测试命令
[[email protected] /]# cd /var/www/ && tar zcf /data/html-$(date +%F_%H).tar.gz html/
[[email protected] /]# ls /data/
html-2018-01-04_12.tar.gz
2. 写入脚本
[[email protected] /]# echo "cd / && tar zcf /data/html-$(date +%F_%H).tar.gz var/www/html" > /server/scripts/html.sh
3. 测试脚本
[[email protected] /]# sh /server/scripts/html.sh
[[email protected] /]# ls /data/
html-2018-01-04_12.tar.gz
4.写入定时任务测试每分钟的效果
#backup /var/www/html
* * * * * /bin/sh /server/scripts/html.sh >/dev/null 2>&1
5.查看日志和测试命令执行的效果
[[email protected] /]# tail -f /var/log/cron
Jan 4 12:12:01 georgekai CROND[1438]: (root) CMD (/bin/sh /server/scripts/html.sh >/dev/null 2>&1)
[[email protected] /]# ll /data/
total 4
-rw-r--r--. 1 root root 117 Jan 4 12:13 html-2018-01-04_12.tar.gz
6. 根据实际情况修改时间
#backup /var/www/html
00 00 * * * /bin/sh /server/scripts/html.sh >/dev/null 2>&1
1.2.3 每周 六、日 上午 9:00 和下午 14:00 来老男孩这里学习(执行程序/server/script/oldboy.sh
代替学习)。
00 09,14 * * * /bin/sh /server/scripts/oldboy.sh > /dev/null 2>&1
1.2.4 .请描述下列路径的内容是做什么的?
/etc/sysctl.conf linux内核配置文件
/etc/rc.local 开机自启的软件
/etc/hosts 解析主机名与ip的对应关系
/etc/fstab 开机自动挂载
/var/log/secure 用户登录信息
1.2.5 请说出下列 grep 正则表达式的含义
^ 以什么什么开头
$ 以什么什么结尾
.(点号) 任意一个字符,包括空格
\ 转义符号
* 前一个字符连续出现0次或0次以上
{n,m} 前一个字符连续最少出现n次,最多出现m次
[^t] 排除带有t这字符的行
^[^t] 排除以t开头的行
1.2.6 vi 命令考察,根据中文给出命令
退出保存
wq
wq!
强制退出,不保存
q!
光标移动到文件的最后一行
G 或:$
光标移动到文件的第一行
gg
从光标所在位置将光标移动到当前行的开头 ^
从光标所在位置将光标移动到当前行的结尾 $
取消上一次的动作 u
删除一行 dd
删除当前行到文件的最后一行 dG
向上搜索 /
向上搜索 ?
vim如何查询 :help G
:help :wq
:h G
:h :wq
总结:
1. 定时任务与故障案例,没有定向到空或追加到文件
2. 环境变量故障
如:linux定时任务生产java服务无法定向到空或追加到文件
请参考http://oldboy.blog.51cto.com/2561410/1541515
3. 定时任务练习题
4. vi/vim快捷键
以上是关于剩余定时任务第四关练习题vim快捷键补充的主要内容,如果未能解决你的问题,请参考以下文章