特殊权限,定时任务 |
作者:左婷婷 归档:学习笔记 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 |
目 录
今天主要学习内容
1.1 每天晚上12点打包备份/etc目录到/tmp下面 脚本
1.1.1 ##1.命令
1.1.2 ##2.书写脚本
1.1.3 ##3.书写定时任务-每分钟执行
1.1.4 ##4.检查并根据要求把定时任务时间修改过来
1.2 定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null 2>&1)或追加到文件中 >>/tmp/oldboy.txt 2>&1
1.3 定时任务中没有追加到文件或定向到空
1.3.1 定时任务不断给你发送邮件
1.3.2 邮件软件关闭 , 定时任务不断给你发送邮件 存放在邮件的临时目录 等待发送
1.4 每分钟显示当前系统的ip地址和系统的时间 追加到/tmp/ip.log中
1.5 #sh -x显示脚本的执行过程
1.6 每两个小时打包备份 /etc/rc.local /etc/hosts /etc/fstab /etc/sysconfig 备份到/backup目录 脚本
1.7 每天晚上12点打包备份/etc/目录 备份到 /backup下面 备份到/backup/10.0.0.200
1.8 总结:
1.9 预习:
今天主要学习内容
ü 打包压缩文件以不同的名字显示 在脚本里面添加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 预习:
用户管理
复习