Linux中常见问题(磁盘 定时任务)
第1章 linux无法上网
1) 第一步,先ping域名.
ping www.baidu.com
2)再ping一个公网ip ,
ping 223.5.5.5/223.6.6.6/114.114.114.114
[root@znix /]# ping 223.5.5.5
PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.
64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=42.8 ms
2) ping 默认的网关
[root@znix ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
第2章 系统的负载/cpu/内存太高了
1) 使用top 命令查看哪个进程占用cpu/内存多.
[root@znix /]# top
top - 15:29:37 up 4 days, 23:18, 4 users, load average: 0.00, 0.00, 0.00
Tasks: 92 total, 1 running, 91 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 485984k total, 215144k used, 270840k free, 117300k buffers
Swap: 786428k total, 8664k used, 777764k free, 20700k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16949 root 20 0 102m 4628 3572 S 0.0 1.0 0:00.14 sshd
17064 root 20 0 102m 4608 3568 S 0.0 0.9 0:00.06 sshd
16812 root 20 0 102m 2604 2400 S 0.0 0.5 0:00.84 sshd
2) 找出对应程序的pid号码
a) 找到占用率较高的程序
16949 root 20 0 102m 4628 3572 S 0.0 1.0 0:00.14 sshd
3) strace -p 进程的pid号码
a) 查看现在这个进程正在做什么事情.
[root@znix /]# strace -p 16949
Process 16949 attached
select(10, [3 5 9], [], NULL, NULL
第3章 定时任务
3.1 每分钟显示当前系统的日期 年-月-日_小时 ,把这个时间追加到 /tmp/date.log
3.1.1 .先运行命令
运行命令进行测试,确定命令可以执行.
[root@znix ~]# date +%F_%H >> /tmp/date.log
[root@znix ~]# cat /tmp/date.log
2017-09-08_09
3.1.2 命令放入脚本中
[root@znix scripts]# cat /server/scripts/date.sh
date +%F_%H:%M >> /tmp/date.log
3.1.3 测试脚本
[root@znix scripts]# /bin/sh /server/scripts/date.sh
[root@znix scripts]# tail -1 /tmp/date.log
2017-09-08_09:43
3.1.4 写到定时任务
[root@znix scripts]# crontab -l |tail -2
#print time to file by hou 20170908
* * * * * /bin/sh /server/scripts/date.sh >/dev/null 2>&1
3.1.5 查看你定时任务的执行日历
[root@znix scripts]# tail -2 /var/log/cron
Sep 8 09:53:41 znix crontab[16396]: (root) LIST (root)
Sep 8 09:54:01 znix CROND[16400]: (root) CMD (/bin/sh /server/scripts/date.sh >/dev/null 2>&1)
3.1.6 检查结果
[root@znix ~]# cat /tmp/date.log
2017-09-08_09
3.2 命令中的sh与bash
[root@znix ~]# ll /bin/sh /bin/bash
-rwxr-xr-x. 1 root root 942200 Mar 23 08:15 /bin/bash
lrwxrwxrwx. 1 root root 4 Aug 10 18:34 /bin/sh -> bash
第4章 磁盘满了之邮件服务
4.1 系统中的邮件服务
centos 6.x 为postfix
centos 5.x 为sendmail
4.2 关闭系统邮件服务
[root@znix ~]# /etc/init.d/postfix
Usage: /etc/init.d/postfix {start|stop|restart|reload|abort|flush|check|status|condrestart}
[root@znix ~]# /etc/init.d/postfix stop
Shutting down postfix: [ OK ]
4.2.1 关闭邮件服务后,系统的油价会放入/var/spool/postfix/maildrop/
[root@znix ~]# ls /var/spool/postfix/maildrop/ |wc -l
12
4.3 [企业案例] 如果定时任务规则结尾不加>/dev/null 2>&1或者追加到文件中>>/tmp/oldboy 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常。
定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null 2>&1)或追加到文件中 >>/tmp/oldboy.txt 2>&1.
实例4-1 情况一:
邮件服务关闭 没有定向到空,会导致 /var/spool/postfix/maildrop/ 中有许多小文件
造成磁盘满了,即inode满了.
解决办法:将邮件服务打开就会释放inode.
[root@znix /]# /etc/init.d/postfix start
Starting postfix: [ OK ]
[root@znix /]# chkconfig |grep post
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
实例4-2 情况二:
邮件服务开启/var/spool/cron/root会变大,发的邮件都会存到文件中,时间长了会将
解决办法:定向到空即可
>/dev/null 2>&1
4.4 两种输出重定向
>/dev/null 2>&1
把正确的和错误的都放在 /dev/null(黑洞,一去不复返)
>>/tmp/oldboy.txt 2>&1
把正确的和错误的都放在/tmp/oldboy.txt
4.5 书写定时任务要将内容输出重定向
如果定时任务规则结尾不加>/dev/null 2>&1或者追加到文件中>>/tmp/oldboy 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常。
4.6 创建和删除大量小文件的方法
4.6.1 删除小文件的方法
1)大量的小文件
[root@znix tmp]# ls |xargs rm
2)删除文件所在的目录 (权限、所有者、属组)
3)临时开启邮件服务 (只对/var/spool/postfix/maildrop 这个目录下的小文件)
4.6.2 创建小文件的方法
[root@znix tmp]# echo {1..400000}|xargs touch
[root@znix tmp]# ll -hd tmp/
drwxr-xr-x 2 root root 8.4M Sep 8 10:59 tmp/
4.7 管道与|xargs 区别:
| 传递的是文本
|xargs 后面的命令会任务传递过来的是文件
4.8 定时任务的位置
1.在用户的定时任务中,默认存放在当前用户的家目录下
2.系统的定时任务存放在根下
第5章 练习题--定时任务
5.1 在定时任务中的环境变量
定时任务中,只能识别两个位置的变量,使用其他位置命令的时候可以使用绝对路径,也可以添加环境变量.
/usr/bin
/bin
添加环境变量,直接写在定时任务的开始即可.可以将自己使用到的命令位置都添加上.
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
5.2 每分钟显示当前的系统的ip地址还有系统日期date +%F 追加到文件中/tmp/ip.log
5.2.1 先测试一下命令
保证命令是执行没有错误的.
[root@znix /]# date +%F
2017-09-08
[root@znix /]# /sbin/ifconfig eth0 |awk -F "[ :]+" 'NR==2 {print $4}'
10.0.0.201
5.2.2 将命令放入脚本
[root@znix ~]# cat /server/scripts/ip.sh
date +%F
/sbin/ifconfig eth0 |awk -F "[ :]+" 'NR==2 {print $4}'
5.2.3 书写定时任务
[root@znix ~]# crontab -l |tail -2
#print ip & date
* * * * * /bin/sh /server/scripts/ip.sh >/tmp/ip.sh 2>&1
5.2.4 检查执行结果
[root@znix tmp]# tail -f /tmp/ip.log
2017-09-08
10.0.0.201
5.3 每隔 2 个小时将/etc/services 文件打包备份到/tmp下(最每次备份成不同的备份包)。
5.3.1 测试命令是否正确
[root@znix ~]# cd / && /bin/tar zcf /tmp/ser_`date +%F_%H`.tar.gz etc/services
[root@znix /]# ll tmp/ser_2017-09-08_1*
-rw-r--r-- 1 root root 127314 Sep 8 16:15 tmp/ser_2017-09-08_16.tar.gz
5.3.2 写入脚本中
[root@znix ~]# cat /server/scripts/ser.sh
cd / && /bin/tar zcf /tmp/ser_`date +%F_%H`.tar.gz etc/services
5.3.3 测试脚本
[root@znix /]# sh /server/scripts/ser.sh
[root@znix /]# ll tmp/ser_2017-09-08_1*
-rw-r--r-- 1 root root 127314 Sep 8 16:17 tmp/ser_2017-09-08_16.tar.gz
5.3.4 写入定时任务
[root@znix ~]# crontab -l |tail -2
##dabao /etc/services
00 */2 * * * /bin/sh /server/scripts/ser.sh >/dev/null 2>&1
5.3.5 检查结果
[root@znix /]# ll tmp/ser_2017-09-08_1*
-rw-r--r-- 1 root root 127314 Sep 8 11:59 tmp/ser_2017-09-08_11.tar.gz
-rw-r--r-- 1 root root 127314 Sep 8 12:11 tmp/ser_2017-09-08_12.tar.gz
-rw-r--r-- 1 root root 127314 Sep 8 16:17 tmp/ser_2017-09-08_16.tar.gz
5.4 每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下(最好每次备份按时间生成不同的备份包)
5.4.1 测试命令
[root@znix /]# cd / && tar zcf /data/www_`date +%F`.tar.gz var/www/html
[root@znix /]# ll /data/www*
-rw-r--r-- 1 root root 117 Sep 8 16:21 /data/www_2017-09-08.tar.gz
5.4.2 写入测试脚本
[root@znix /]# cat /server/scripts/www.sh
cd / && tar zcf /data/www_`date +%F`.tar.gz var/www/html
[root@znix /]# ll /data/www*
-rw-r--r-- 1 root root 117 Sep 8 16:21 /data/www_2017-09-08.tar.gz
5.4.3 写入定时任务
[root@znix /]# crontab -l |tail -2
####dabao tar
00 00 * * * /bin/sh /server/scripts/www.sh >/dev/null 2>&1
5.4.4 检查执行结果
[root@znix /]# ll /data/www*
-rw-r--r-- 1 root root 117 Sep 8 16:28 /data/www_2017-09-08.tar.gz
Linux中常见问题(磁盘 定时任务)的更多相关文章
- 【转】Linux中常见问题(磁盘 定时任务)
[转]Linux中常见问题(磁盘 定时任务) 第1章 linux无法上网 1) 第一步,先ping域名. ping www.baidu.com 2)再ping一个公网ip , ping 223 ...
- 如何在 Linux 中整理磁盘碎片
有一个神话是 linux 的磁盘从来不需要整理碎片.在大多数情况下这是真的,大多数因为是使用的是优秀的日志文件系统(ext3.4等等)来处理文件系统.然而,在一些特殊情况下,碎片仍旧会产生.如果正巧发 ...
- linux中查看磁盘容量的常用操作
linux中查看磁盘容量常用操作 实验室有GPU集群,用户跑数据时候跑着跑着会出现集群挂掉的问题,原因就是,在跑数据时,用户上传文件,数据集,系统产生缓存等一系列操作,消耗了集群空间,师兄让我清理下服 ...
- Linux中的磁盘
Linux的磁盘管理 (很重要请注意高能预警) 硬盘:几个盘片,双面,磁性颗粒, 处理速率不同步:借助于一个中间层 文件系统(FileSystem) 可以实现对磁盘行的文件进行读写 文 ...
- linux中的磁盘的MBR记录详解
在硬盘中,硬盘的0柱面0磁头第一个1扇区称为主引导扇区,也叫主引导记录-MBR(main boot record),其中MBR是以下三个部分组成 1.Bootloader,主引导程序---446个字节 ...
- VMware虚拟机Linux中增加磁盘空间的扩容操作
VMwareware虚拟机安装的Red Hat Enterprise Linux系统剩余空间不足,造成软件无法正常安装.如果重新装一遍系统就需要重新配置好开发环境和软件的安装配置.结合自己的实践,总结 ...
- Linux中查看磁盘大小、文件大小、排序方法小结
一,查看磁盘空间大小的命令:dfdf命令用于查看磁盘分区上的磁盘空间,包括使用了多少,还剩多少,默认单位是KB 比如以下命令: df -hl执行结果如下: 执行的结果每列的含义: 第一列Filesys ...
- Linux中的磁盘练习
查看磁盘接口类型 ide dh[a-z] scsi sd[a-z] 添加磁盘 先添加一个磁盘 cd /dev/ ls sd* 可以看到先添加的磁盘 磁盘分区 .fdisk /dev/sdb n (添加 ...
- Linux中查看磁盘容量
一.命令 df -hl 二.效果 [root@cq-test-master ambari]# df -hl Filesystem Size Used Avail Use% Mounted on /de ...
随机推荐
- Finally-操作返回值
Finally中操作返回会出现一个问题?直接看代码 static int M1() { ; try { result = result + ; //======引发异常的代码========== , ...
- Akka(27): Stream:Use case-Connecting Slick-dbStream & Scalaz-stream-fs2
在以前的博文中我们介绍了Slick,它是一种FRM(Functional Relation Mapper).有别于ORM,FRM的特点是函数式的语法可以支持灵活的对象组合(Query Composit ...
- Charles Proxy v4.1.4 免费注册激活方法
去官网下载最新版Charles,目前是v4.1.4 下载后安装Charles,然后先打开一次Charles软件(Mac系统需要先打开一次,Windows不需要) 到网站 http://charles. ...
- 实例说明MVC,MVP,MVVM架构
很早就知道有这三个概念,但是一直都不清楚是怎么回事,在网上搜索,都是泛泛而谈,没有具体例子,新手是看不懂的,直到找到这篇文章,我对这三个架构有了更清楚的了解. 从一个简单的例子去研究这三个架构. 注意 ...
- C#仪器数据文件解析-XPS文件
XPS为微软推出的类似于Adobe PDF的一种文件格式,个人认为XPS很好,但毕竟PDF已经被大家所熟知,因此XPS的使用很少,也少有仪器数据输出为该格式. XPS百度百科:https://baik ...
- nodejs后台集成富文本编辑器(ueditor)
1 下载ueditor nodejs版本 2 复制public目录下面的文件 到项目静态资源public文件夹下 3 在项目根目录创建ueditor文件夹 要复制进来的内容为 4 在根目录的 uedi ...
- 基于EF Core的Code First模式的DotNetCore快速开发框架
前言 最近接了几个小单子,因为是小单子,项目规模都比较小,业务相对来说,也比较简单.所以在选择架构的时候,考虑到效率方面的因素,就采取了asp.net+entity framework中的code f ...
- 使用邮件监控Mxnet训练
1. 前言 受到小伙伴的启发,就自己动手写了一个使用邮件监控Mxnet训练的例子.整体不算复杂. 2. 打包训练代码 需要进行监控训练,所以需要将训练的代码打包进一个函数内,通过传参的方式进行训练.还 ...
- 用Eclipse 搭建一个Maven Spring SpringMVC 项目
1: 先创建一个maven web 项目: 可以参照之前的文章: 用Maven 创建一个 简单的 JavaWeb 项目 创建好之后的目录是这样的; 2: 先配置maven 修改pom.xml & ...
- linux 投影仪
注:文章转自http://goo.gl/aI9Ycd如果侵权,请原作者留言,立即删除 之前在 R219 做 C++ 演講的時候,發現 Ubuntu 沒有辦法使用 VGA 輸出,臨時改用 Windows ...