码迷,mamicode.com
首页 > 系统相关 > 详细

剩余定时任务、第四关练习题、vim快捷键补充

时间:2018-01-04 18:11:25      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:目录   查看   正则表达   crond   alt   script   ifconfig   结果   you   


 

作者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满了,从而导致服务器不正常。

1postfix开启的时候,系统会不断的给你发邮件

所以会提示:You have new mail in /var/spool/mail/root

注:会导致这个邮件var/spool/mail/root越来越大

 

2postfix关闭的时候,会把邮件存放在邮件临时目录

邮件临时目录:/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.测试命令

[root@georgekai /]# cd / && tar zcf /tmp/etc-$(date +%F).tar.gz etc/

:最好进入被打包文件的上一层目录,使用相对路径打包

2.写入脚本中

[root@georgekai /]# echo "/bin/tar zcf etc-$(date +%F).tar.gz etc" > /server/scripts/etc.sh

3.检查脚本是否可用

[root@georgekai /]# sh /server/scripts/etc.sh

注:测试脚本时,是否会显示到指定文件,取决于命令的作用是否会显示到屏幕上。

#tar etc

* * * * * /bin/sh /server/scripts/etc.sh  > /dev/null 2>&1

注:sh -x :显示脚本执行过程 (里面的+号表示层次)

4.查看日志或看看是否执行成功

[root@georgekai /]# 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

什么时候用方法2tomcat

注:请参考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. 测试命令

[root@georgekai ~]# cd / && tar zcf /tmp/svr.tar.gz    etc/services

2. 写入脚本

[root@georgekai ~]# echo "cd / && tar zcf /tmp/svr.tar.gz    etc/services" > /server/scripts/svr.sh

3. 测试脚本

[root@georgekai ~]# sh /server/scripts/svr.sh

[root@georgekai ~]# ll /tmp/

4. 写入定时任务

[root@georgekai ~]# crontab -e

#backup /etc/services

00 */2 * * * /bin/sh /server/scripts/svr.sh  >/dev/null 2>&1

5. 查看日志和命令执行效果

[root@georgekai ~]# tail -f /var/log/cron

[root@georgekai ~]#ll /tmp/

 

 

1.2.2 每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下(最好每次备份按时间

 

生成不同的备份包)

1. 测试命令

[root@georgekai /]# cd /var/www/  && tar zcf /data/html-$(date +%F_%H).tar.gz   html/

[root@georgekai /]# ls /data/

html-2018-01-04_12.tar.gz

2. 写入脚本

[root@georgekai /]# echo "cd / && tar zcf /data/html-$(date +%F_%H).tar.gz var/www/html" > /server/scripts/html.sh

3. 测试脚本

[root@georgekai /]# sh /server/scripts/html.sh

[root@georgekai /]# 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.查看日志和测试命令执行的效果

[root@georgekai /]# 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)

[root@georgekai /]# 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 和下午 1400 来老男孩这里学习(执行程序/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快捷键补充

标签:目录   查看   正则表达   crond   alt   script   ifconfig   结果   you   

原文地址:http://blog.51cto.com/13055758/2057441

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!