特殊权限,定时任务

 

作者:左婷婷

归档:学习笔记

2018/8/8

 

快捷键:

Ctrl + 1    标题1

Ctrl + 2    标题2

Ctrl + 3    标题3

Ctrl + 4    实例

Ctrl + 5    程序代码

Ctrl + 6    正文

格式说明:

蓝色字体:注释

×××背景:重要

绿色背景:注意


老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结

学无止境,老男孩教育成就你人生的起点!

联系方式:

网站运维QQ交流群:

Linux  385168604

架构师 390642196

Python 29215534

大数据 421358633

官方网站:

http://www.oldboyedu.com


 

今天主要学习内容... 2

1.1 每天晚上12点打包备份/etc目录到/tmp下面 脚本... 2

1.1.1 ##1.命令... 2

1.1.2 ##2.书写脚本... 2

1.1.3 ##3.书写定时任务-每分钟执行... 3

1.1.4 ##4.检查并根据要求把定时任务时间修改过来... 3

1.2 定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null 2>&1)或追加到文件中 >>/tmp/oldboy.txt 2>&1. 3

1.3 定时任务中没有追加到文件或定向到空... 3

1.3.1 定时任务不断给你发送邮件... 3

1.3.2 邮件软件关闭 定时任务不断给你发送邮件 存放在邮件的临时目录 等待发送... 4

1.4 每分钟显示当前系统的ip地址和系统的时间 追加到/tmp/ip.log... 4

1.5 #sh -x显示脚本的执行过程... 4

1.6 每两个小时打包备份  /etc/rc.local /etc/hosts /etc/fstab /etc/sysconfig 备份到/backup目录 脚本... 4

1.7 每天晚上12点打包备份/etc/目录 备份到 /backup下面  备份到/backup/10.0.0.200. 4

1.8 总结:... 5

1.9 预习:... 5

 

今天主要学习内容

ü  打包压缩文件以不同的名字显示 在脚本里面添加date +%F时不识别,在脚本中%相当于回车,要加\转义字符才可以。

ü  定时任务中的命令或脚本都要定向到黑洞(>/dev/null)或者追加到文件里面。

ü  要是不追加到文件或黑洞中

u  邮件软件开启   定时任务会不断发送邮件

u  邮件软件关闭   邮件发送不出来  存放在/var/spool/postfix/maildrop临时目录里面。

ü  临时目录里面存放的文件太多,他会将inode用光,这样就会报出磁盘空间不足。

ü  Sh  -x 可以显示脚本的执行过程

ü  创建压缩包时遇到软连接时我们加上参数h

ü  里面以+开头的表示执行过程  不是以+开头的表示显示/输出

ü  ip 在脚本中执行时要使用绝对路径

ü  或者在脚本开头重新配置环境变量PATH

1.1 每天晚上12点打包备份/etc目录到/tmp下面 脚本

1.1.1 ##1.命令

[root@oldboyedu50-lnb ~]# tar zcf  /tmp/etc-`date +%F`.tar.gz  /etc/       书写命令

tar: Removing leading `/' from member names

[root@oldboyedu50-lnb ~]# ll /tmp/etc-2018-08-0*

-rw-r--r-- 1 root root 9734087 Aug  6 09:19 /tmp/etc-2018-08-06.tar.gz      检查结果

-rw-r--r-- 1 root root 9734062 Aug  9 09:39 /tmp/etc-2018-08-09.tar.gz

1.1.2 ##2.书写脚本

[root@oldboyedu50-lnb ~]# vim /server/scripts/bak-etc.sh                    书写脚本      

tar zcf  /tmp/etc-`date +%F`.tar.gz  /etc/

 

[root@oldboyedu50-lnb ~]# sh /server/scripts/bak-etc.sh                     #测试脚本

tar: Removing leading `/' from member names

[root@oldboyedu50-lnb ~]# ll /tmp/

total 9512

-rw-r--r-- 1 root root 9734062 Aug  9 09:41 etc-2018-08-09.tar.gz           检查是否执行成功

-rw-r--r-- 1 root root     434 Aug  8 11:42 name.log

1.1.3 ##3.书写定时任务-每分钟执行

[root@oldboyedu50-lnb ~]# crontab –l                                       写入定时任务查看

#backup etc  oldboy at 2018xxxxxx

* * * * *  /bin/sh /server/scripts/bak-etc.sh                               每分钟执行脚本

[root@oldboyedu50-lnb ~]# ll /tmp/

total 9512

-rw-r--r-- 1 root root 9734062 Aug  9 09:44 etc-2018-08-09.tar.gz           已经生成压缩包

-rw-r--r-- 1 root root     434 Aug  8 11:42 name.log

1.1.4 ##4.检查并根据要求把定时任务时间修改过来

 [root@oldboyedu50-lnb ~]# crontab -l

##print name  oldboy at 2018xxxxx

#* * * * *  echo oldboy >>/tmp/name.log

 

#sync time   oldboy  at 2018xxxxx

*/2 * * * * /usr/sbin/ntpdate  ntp1.aliyun.com

 

#backup etc  oldboy at 2018xxxxxx

00 00 * * *  /bin/sh /server/scripts/bak-etc.sh                     修改时间成功

1.2 定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null 2>&1)或追加到文件中 >>/tmp/oldboy.txt 2>&1

>/dev/null 2>&1 ==&>/dev/null          

/dev/null      linux黑洞       执行过程不想看

>>/tmp/oldboy.txt 2>&1 ==&>>/tmp/oldboy.txt 记录着执行过程

[root@oldboyedu50-lnb ~]# crontab -l

##print name  oldboy at 2018xxxxx

#* * * * *  echo oldboy                             >>/tmp/name.log 2>&1   将执行结果追加到文件中

#sync time   oldboy  at 2018xxxxx

*/2 * * * * /usr/sbin/ntpdate  ntp1.aliyun.com      >/dev/null 2>&1         将执行结果重定向到黑洞中               

1.3 定时任务中没有追加到文件或定向到空

1.3.1 定时任务不断给你发送邮件

You have new mail in /var/spool/mail/root

1.3.2 邮件软件关闭 定时任务不断给你发送邮件 存放在邮件的临时目录 等待发送

inode用光了 定时任务书写不规范导致的

【企业案例】如果定时任务规则结尾不加>/dev/null 2>&1或者追加到文件中>>/tmp/oldboy 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常。

       如何删除大量小文件

              echo {1..450000}.txt|xargs touch

              ls *.txt |xargs rm

              ls *.txt |xargs -n数字 rm

              缩小范围一点点删除

                     ls 1*.txt |xargs rm

              删除目录

                     记录好目录权限和所有者

1.4 每分钟显示当前系统的ip地址和系统的时间 追加到/tmp/ip.log

1.5 #sh -x显示脚本的执行过程

[root@oldboyedu50-lnb ~]# sh -x  /server/scripts/bak-etc.sh

+ cd /

++ date +%F

+ tar zcf /tmp/etc-2018-08-09.tar.gz etc/

[root@oldboyedu50-lnb ~]# #以+开头的行 表示执行过程

[root@oldboyedu50-lnb ~]# #不是以+开头的行 显示/输出

1.6 每两个小时打包备份 /etc/rc.local /etc/hosts /etc/fstab /etc/sysconfig 备份到/backup目录 脚本

编辑脚本

tar zchf  /backup/conf-`date +%F`.tar.gz   /etc/rc.local  /etc/hosts /etc/fstab  /etc/sysconfig/

书写定时任务

#backup conf

00 */2 * * *  sh  /server/scripts/bak-conf.sh >/dev/null 2>&1

1.7 每天晚上12点打包备份/etc/目录 备份到 /backup下面  备份到/backup/10.0.0.200

#把hostname -I 结果放入到ip变量中 创建一个叫ip地址.log的文件     

2.命令结果存放在变量中  

[root@oldboyedu50-lnb /backup]# ip=`hostname -I|awk '{print $1}'`   hostname –I取ip执行后后面会有一个空格   使用awk将空格过滤掉

[root@oldboyedu50-lnb /backup]# mkdir -p /backup/$ip     创建文件

 [root@oldboyedu50-lnb /backup]# tar zcf /backup/$ip/etc.tar.gz   /etc/    打包文件

tar: Removing leading `/' from member names

[root@oldboyedu50-lnb /backup]# tar zcf /backup/$ip/etc-`date  +%F`.tar.gz   /etc/

tar: Removing leading `/' from member names

[root@oldboyedu50-lnb /backup]# tree  /backup/

/backup/

#书写脚本

[root@oldboyedu50-lnb /backup]# vim /server/scripts/bak-etc-adv.sh

#get ip address

ip=`ostname -I|ak '{print $1}'`                               书写脚本

#mkdir && backup

mkdir -p /backup/$ip

tar zcf /backu/$ip/etc-`date  +%F`.tar.gz   /etc/

1.8 总结:

1.定时任务常见故障案例

2.整理之前遇到故障案例

3.定时同步时间(定时执行命令)

4.备份-一步一步来

1.9 预习:

用户管理

复习