Linux运维常用知识(1)

推荐播客:

http://wgkgood.blog.51cto.com/all/1192594  吴光科自动化运维

http://navyaijm.blog.51cto.com/all/4647068/page/6 �潘吭宋�男

http://ilanni.blog.51cto.com/all/526870    http://www.ilanni.com    烂泥行天下

http://www.crazycen.com   钱学波播客

https://www.centos.bz/   Linux服务器运维日志

http://www.xuchanggang.cn   没有伞的孩子必须楼里奔跑

http://www.showerlee.com/   一路向北的blog

http://www.zrwm.com   无名小站

http://freeloda.blog.51cto.com/2033581/1285722 

http://zyan.cc 张宴博客 

http://www.ttlsa.com/nginx/   运维生存时间

http://www.techsiteanalytics.com/   DBA_MYSQL_LINUX_PERL

http://www.datacentersky.com  数据中心天空

http://www.itmin.cn/   http://wangfeng7399.blog.51cto.com/all/3518031/page/2    IT民

http://www.linuxyan.com    销声匿迹-Linux

http://www.gaojinbo.com   高进波Linux博客

http://www.90rhca.com/    Evil Sword by Heaven

http://www.jbxue.com/server/nginx/      脚本学堂

http://yun.itxdl.cn/course/56  兄弟连

http://blog.csdn.net/huzia/article/details/18941767    oracle学习

http://charlie928.blog.51cto.com/     

http://fengshenwu.com/blog/     专注海量数据(阿里封神博客

http://www.binospace.com/       姜饼博客

http://yaronspace.cn/blog/      yaron's space博客 ---胖子哥的大数据之路

http://ywwd.net/   http://dngood.blog.51cto.com/446195/1163569  dngood的shell脚本

http://www.chensiyao.cn/        保持沉默

http://www.osyunwei.com/        系统运维

http://www.centoscn.com/        centos中文站

http://teddysun.com/            秋水亿彬

http://dl528888.blog.51cto.com/  咏一技术交流

http://www.kerneltravel.net/    内核代码网站

http://www.92csz.com/           记录IT成长路上点点滴滴

http://www.simapple.com/        芒果网

http://blog.51yip.com/pgsql/1520.html   海底苍鹰博客

http://dreamfire.blog.51cto.com  自动化运维puppet

http://www.diyoms.com/python  蜗牛开源学习站


shell实例手册

http://www.cnblogs.com/gao241/p/3522143.html


shell入门教程

http://www.92csz.com/study/linux/


Gogent设置代理服务器

http://zhengbin.blog.51cto.com/2989505/1241415


shell awk sed tr grep正则表达式学习

http://2364821.blog.51cto.com/2354821/1261079

http://me2xp.blog.51cto.com/6716920/1435095

http://deerchao.net/tutorials/regex/regex.htm


Linux手册汇总

http://cb.vu/unixtoolbox_zh_CN.xhtml


运维人员必备故障排查手册

http://os.51cto.com/art/201405/438615.htm


网络设备选型参考

http://369369.blog.51cto.com/319630/758991

思科方面知识:

http://www.juveace.com/category/cisco/page/12


GNS3中PIX、ASA防火墙、juniper路由器、IDS、Qemu客户机模拟环境搭建

http://mangguostudy.blog.51cto.com/5643869/1431361

http://pthahnil.blog.51cto.com/814988/1431561   双链路负载分担――MSTP+VRRP+OSPF


Cisco交换机QOS(限速)详解

http://369369.blog.51cto.com/319630/768235


ASA5585防火墙IDC机房上架记

http://369369.blog.51cto.com/319630/806508

linux系统学习 http://wuyelan.blog.51cto.com/all/6118147

 linux系统维护命令详解      http://www.svipc.com/thread-429-1-1.html


Linux服务器的性能分析与优化

http://ixdba.blog.51cto.com/2895551/1397324


几个shell脚本实例

http://down.chinaz.com/server/201202/1678_1.htm

http://dngood.blog.51cto.com/446195/1163560


LAMP LNMP 三层独立架构部署

http://junwang.blog.51cto.com/5050337/1422899

http://junwang.blog.51cto.com/5050337/1390100


LNMP、LAMP、LANMP一键安装脚本

http://blog.linuxeye.com/31.html


LNMP服务跨省迁移的解决方案

http://oldboy.blog.51cto.com/2561410/1421444


磁盘技术MBR与GTP学习

http://simonhu.blog.51cto.com/196416/1421193


大型高性能网站的十项规则

http://fengwan.blog.51cto.com/508652/686925



postfix邮件服务器系列学习配置

http://linuxsogood.org/category/linux/page/2

http://charlie928.blog.51cto.com/3741218/1433169


linux CentOS 6.4 NFS网络文件系统

http://jishuweiwang.blog.51cto.com/6977090/1390579


自建企业内部私有CentOS 软件源 

http://bbs.51cto.com/thread-1105086-1.html


rsync+inotify实现实时同步案例

http://chocolee.blog.51cto.com/8158455/1400596

http://cfwlxf.blog.51cto.com/3966339/1406364

Rsync 文件同步(windows下安装部署)      http://www.xuchanggang.cn/archives/823.html



cacti相关专题学习

安装字体 yum -y install  cjkuni-ukai-fonts   

          fc-cache -f -v

http://linuxsogood.org/category/monitor

http://freeloda.blog.51cto.com/2033581/1308140

http://www.zhaofengcao.com/archives/category/operationsystem/linux/cacti-linux

http://junwang.blog.51cto.com/5050337/1430537

http://www.cactifans.org/cacti/1219.html   cacti微信报警接口

http://ywzhou.blog.51cto.com/2785388/1532141 

http://rolandqu.blog.51cto.com/3477736/945662 


nginx禁止网络爬虫学习

http://my.oschina.net/jean/blog/229163

http://my.oschina.net/u/1188877/blog/206515

http://laoxu.blog.51cto.com/4120547/1302013 


运维自动化之ansible

http://dl528888.blog.51cto.com/2382721/1438847 


linux下apache+SVN搭建完美版

http://cfwlxf.blog.51cto.com/3966339/1412024

http://blurrysky.blog.51cto.com/3346588/1415408

http://charlie928.blog.51cto.com/3741218/1433094

http://467754239.blog.51cto.com/4878013/1440566 

http://my.oschina.net/wojibuzhu/blog/225487 

centos升级配置svn  http://bbotte.blog.51cto.com/6205307/1426394 


hp,Ibm,Dell磁盘阵列RAID 扩容

http://bbs.51cto.com/thread-917460-1.html

http://pimg2005.blog.51cto.com/842469/1250830

http://blog.sina.com.cn/s/blog_91761af80101o42m.html


Dell的OMSA在相关系统平台安装

http://chenshengang.blog.51cto.com/4399161/1353602

https://zh.community.dell.com/techcenter/systems-management/w/wiki/560.omelinux.aspx


vsftp创建虚拟用户脚本

http://3802230.blog.51cto.com/3792230/1412310


几款好用的国内外网络质量测试工具推荐

http://michaelkang.blog.51cto.com/1553154/1279687


CentOS6.x下通过shell脚本交互安装Web服务

http://cfwlxf.blog.51cto.com/3966339/1321064


Nagios服务器端安装部署详解专题

http://www.itmin.cn/archives/category/yunweijiankong/nagios_jiankong 

http://www.linuxyan.com/cacti-nagios/191.html

http://blog.csdn.net/mchdba/article/details/25654889

http://huangrs.blog.51cto.com/2677571/981456

http://yangrong.blog.51cto.com/6945369/1419445  Nagios插件开发之监控服务器负载


zabbix基础详解及安装配置

http://chenpipi.blog.51cto.com/8563610/1412153

http://584014981.blog.51cto.com/8605371/1411173

http://www.svipc.com/thread-451-1-1.html

http://fengwan.blog.51cto.com/508652/1379787

http://www.itmin.cn/archives/category/yunweijiankong/zabbix_jiankong  zabbix专题学习

http://dl528888.blog.51cto.com/all/2382721 zabbix专题学习


linux中远程链接windows服务器

http://xujunxian.blog.51cto.com/8614409/1416152


Nagios监控系统部署安装

http://www.svipc.com/thread-423-1-1.html


Apache中https的详解及应用案例

http://www.svipc.com/thread-316-1-1.html


Linux路由器的架设

http://www.svipc.com/thread-431-1-1.html


tcp_wrapper:简单的基于主机的访问控制工具

http://www.svipc.com/thread-433-1-1.html


Web服务之LNMMP架构及动静分离实现

http://hoolee.blog.51cto.com/7934938/1413346

http://nmshuishui.blog.51cto.com/1850554/1403720


日均百万PV架构第一弹(基本架构搭建)

http://apprentice.blog.51cto.com/2214645/1406292


Web服务之Nginx浅析

http://hoolee.blog.51cto.com/7934938/1413195


iptables原理详解以及功能说明

http://www.svipc.com/thread-450-1-1.html


通过浏览器访问powershell

http://281816327.blog.51cto.com/907015/1414739


Samba共享服务的配置

http://ludihua.blog.51cto.com/4601284/1411113


CentOS --kickstart服务器搭建(一)

http://dingmh.blog.51cto.com/188555/1353808


Cisco网络工程师和网络安全

http://edu.51cto.com/course/course_id-37-page-19.html


使用IP tunnel打通二个Linux私有网络

http://netspace.blog.51cto.com/1069106/1412556


使用windows自带的diskpart命令修复U盘分区

http://alien.blog.51cto.com/951694/599203


Mac OS访问Windows共享文件夹

http://blog.csdn.net/jinhill/article/details/7246922


Linux系统下安装rz/sz命令及使用说明

参考:http://blog.csdn.net/lioncode/article/details/7921525

对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能.。

(1)编译安装

cd /usr/src
wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20
./configure && make && make instal

上面安装过程默认把lsz和lrz安装到了/usr/local/bin/目录下,现在我们并不能直接使用,下面创建软链接,并命名为rz/sz:

cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz

(2)yum安装

yum install -y lrzsz

2.使用说明

      sz命令发送文件到本地:

# sz filename

      rz命令本地上传文件到服务器:

# rz

      执行该命令后,在弹出框中选择要上传的文件即可。
      说明:打开SecureCRT软件 -> Options -> session options -> X/Y/Zmodem 下可以设置上传和下载的目录。


 Windows Server 2012破解密码(注:适用于Windows 2008)

http://www.liangston.com/?post=284

首先需要具备IPMI/KVM,挂载Windows 2012的ISO,并进入BOOT调整启动项。
进入到Windows 2012的安装界面时,点击【NEXT】执行下一步

可看到【Repair your computer】修复你的电脑的选项,请点击它

选择【Troubleshoot】疑难解答

选择【Command Prompt】打开命令提示符

输入以下命令:

d:(注:根据实际情况,系统盘文件放置的位置)
cd windows\system32
ren Utilman.exe Utilman.exe.old
copy cmd.exe Utilman.exe

关闭命令提示符窗口,并点击继续,这时候系统会重启

系统开启完成之后,按【Windows+U】

输入以下命令,重置用户密码

net user administrator Password123



使用shell判断系统时区

if [[ ! `grep -a CST-8 /etc/localtime` ]]; then
    rm -rf /etc/localtime
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
fi

大于2TB的硬盘在cacti中的画图问题

解决办法:

echo  "realStorageUnits 0"  >>  /etc/snmp/snmpd .conf
service snmpd restart



今天服务器监控显示服务到网关丢包率很高,然后看/var/log/messages日志,发现nf_conntrack: table full, dropping packet

解决方法:

需要加大的nf_conntrack的值

编辑 /etc/sysctl.conf,在文件最后添加net.nf_conntrack_max = 655360,

刷新内核:/sbin/sysctl -p



Nginx日志切割脚本

#!/bin/bash
logs_path="/alidata/server/log/nginx/"
mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /alidata/server/nginx/logs/nginx.pid`
添加权限后加入crontab中:
chmod +x /alidata/server/nginx/sbin/split_nginx_log.sh
crontab -e
0 1 * * * /alidata/server/nginx/sbin/split_nginx_log.sh


使用badblocks命令扫描硬盘排除故障

# fdisk -l       系统当前硬盘信息。

# badblocks -s -v /dev/sdnx       通过命令扫描硬盘。

其中n表示硬盘设备名,x表示硬盘对应的分区号。例如需要检查“/dev/sda2”,执行命令如下:

# badblocks -s -v /dev/sda2

Checking for bad blocks (read-only test): 完成

Pass completed, 37 bad blocks found.其中,“37 bad blocks found”表示硬盘存在37个坏块。


网卡流量实时查看的三种方法

1)iftop实现网卡流量实时查看

参考:http://www.vpser.net/manage/iftop.html

http://gaoxingf.blog.51cto.com/612518/188966

安装Iftop

wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
报下面错误:configure: error: can't find pcap.h You're not going to get very far without libpcap.
解决办法:yum -y install libpcap-devel
make && make install

查看流量

iftop -i eth0

2)watch 实现网卡流量实时查看

watch ifconfig

watch more /proc/net/dev


系统性能检测脚本

http://url.cn/Np8iy3


Linux上面查看出口iP命令:curl -s ifconfig.me


获取linuxIP地址:

ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-  

或者

ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'


shell磁盘监控自动化处理

cat disk.sh
#!/bin/bash
for i in `df |sed 1d | awk '{print $5}' | sed 's/%//g'` ####获取后循环比较大小####
do
if [ $i -gt 10 ]   ###这里阀值设置为10,为了方便测试效果###
  then
  df -lh >>disk.txt     ####追加到disk.txt以方便警告给管理员####
  ip=`ifconfig eth0|sed -n 2p|awk  '{ print $2 }'|awk -F : '{ print $2 }'`
  echo "${ip}这台主机磁盘超过阀值,请及时处理" ###这里可以换成email发邮件或者飞信###
fi
done
执行脚本:
[root@2 shell]# sh disk.sh
192.168.2.4这台主机磁盘超过阀值,请及时处理
[root@2 shell]# cat disk.txt
文件系统              容量  已用 可用 已用% 挂载点
/dev/hda3             192G  4.0G  178G   3% /
/dev/hda1              99M   12M   83M  13% /boot
tmpfs                 506M     0  506M   0% /dev/shm


更改服务器的SID(安全标识符)

SID也就是安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。

打开运行窗口-------sysprep    然后会弹出一个窗口。双击sysprep.exe  在弹出的系统准备工具中,记得将通用 给勾上

wKioL1OCehSAn-d8AAIgp4lq-uE153.jpg

稍后计算机会重启,然后进入安装系统的初始化输入,这个过程不会破坏破坏系统和数据的。进入系统后。打开运行----cmd-----whoami /all,在下面查看SID号,改变了吧,这样加入到域中就不会出现冲突了,当然也要把计算机名给改下。


禁止外网ssh登录服务器

用/etc/hosts.allow,/etc/hosts.deny控制

当/etc/hosts.allow与/etc/hosts.deny中有相同项时,以hosts.deny为准。

1.允许内网登录:

  vim /etc/hosts.allow

  sshd:10.0.5.0/255.255.255.0  ###sshd服务,允许10.0.5.0网段登录

  ###################################

  hosts.allow格式:(服务:ip段)

2.禁止其它ip段登录

  vim /etc/hosts.deny

  sshd:all

  ################################

以上配置即可达到允许10.0.5.0内网段登录,禁止外网ssh登录。


linux系统下查看网卡的UUID

yum -y install NetworkManager
service NetworkManager start

用nmcli命令查看被NetworkManager管理的网卡的UUID号

nmcli con

查看那些设备被NetworkManager管理 

nmcli dev


yum安装LAMP

http://www.snowman.net.cn/linux/yum%E5%AE%89%E8%A3%85lamp/

安装apache

yum install httpd httpd-devel

安装mysql

yum install mysql mysql-server mysql-devel

安装php

yum remove php*

yum installphp php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml

安装php53版本

yum remove php*

yum installphp53 php53-mysql php53-common php53-gd php53-mbstring php53-mcrypt php53-devel php53-xml

启动apache 测试php

service httpd start

vim /var/www/html/phpinfo.php

<?php

phpinfo();

?>

在浏览器中输入:http://IP/phpinfo.php 看是否显示PHP的信息

启动Mysql,测试PHP程序能否连上Mysql

service mysqld start

vim /var/www/html/test.php
   <?php
   $link=mysql_connect('ip','user','password');
   if(!$link) echo "失败!";
   else echo "成功!";
   mysql_close();
   ?>

在浏览器中输入:http://IP/test.php,看是否连接成功。注意,可能有时候防火墙也关闭了,环境也没问题,PHP还是连不上Mysql,可尝试关闭SElinux,命令setenforce 0。


nginx 启动脚本:

#!/bin/sh
# Startup script forthe Nginx
# chkconfig: - 8863
# description: Nginx isa free,open-source,high-performance HTTP Server and reverse proxy.
# program:/usr/local/nginx/sbin/nginx
# config:/usr/local/nginx/conf/nginx.conf
# pidfile:/usr/local/nginx/logs/nginx.pid
# Synopsis:
#        nginx [--help] [--version] {start|stop|restart|reload|status|update}
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
# Define variable
nginx=/usr/local/nginx/sbin/nginx
pidfile=/usr/local/nginx/nginx.pid
PROGRAM=`basename $0`
VERSION=1.0
# Functions
usage(){
    echo "Usage: $PROGRAM [--help] [--version] {start|stop|restart|reload|status|update}"
}
version(){
    echo "Version:$VERSION"
}
start(){
if[ -e $pidfile ]
   then
    echo "Nginx already running..."
   else
    echo -e "Starting Nginx:"
    action "nginx start ..."/bin/true
    /usr/local/nginx/sbin/nginx
    echo -e "nginx is OK"
fi
}
stop(){
if[ -e $pidfile ]
   then
    echo -e "Stopping Nginx: kill nginx"
    kill -QUIT `cat ${pidfile}`
    echo -e "OK"
    action "nginx stop ..."/bin/true
    else
    echo "Nginx already stopped..."
fi
}
reload(){
if[ -e $pidfile ]
   then
    echo -e "Reloading Nginx: reload "
    kill -HUP `cat ${pidfile}`
    action "nginx reload OK "/bin/true
else
    echo "Nginx is not running..."
fi
}
status(){
    if[ -e $pidfile ]
       then
        PID=`cat $pidfile`
        echo  "Nginx (pid $PID) is running..."
        action "nginx status OK "/bin/true
       else
        echo  "Nginx is stopped"
    fi
}
update(){
if[ -e $pidfile ]
   then
    echo -e "Updateing Nginx:  nginx update"
    kill -USR2 `cat ${pidfile}`
    action "nginx update OK !!! "/bin/true
else
    echo "Nginx is not running..."
fi
}
if[ $# -gt 0]
   then
    case$1in
        start)
            start
            ;;
     stop)
           stop
           ;;
       restart)
           stop
           start
           ;;
       reload)
           reload
           ;;
       status)
           status
           ;;
       update)
           update
           ;;
       --help)
           usage
           ;;
       --version)
           version
           ;;
       *)
           usage
   esac
  else
   usage
fi

自动备份上一个月的日志然后压缩到另一个目录,最后***那个月产生的日志

vim /root/backup-log.sh

#!/bin/bash
Log_Bak=`find /var/log/*`
Ago_Time=`date "+%Y%m" --date="1 month ago"`
tar -zcvf /tmp/$Ago_Time.tar.gz $Log_Bak && rm -rf $Log_Bak

crontab 设置成每月1号运行

crontab -e

* * 1 * * /root/backup-log.sh > /dev/null 2>&1

start crond restart



Linux下备份文件小脚本

脚本说明:

备份数组a里面定义的所有目录,并且保留7天,7天之前的数据会被***

bak_dir是备份之后,文件要移动到的目录

备份的文件名为应用的目录名加时间的格式

修改del_file里的数字,可以修改保留的天数

#!/bin/bash
a=(/var/log/httpd/ /root/nginx/)
length=${#a[*]}
d=`date +%F`
bak_dir='/data/'
del_file=`date -d '-7 days' +%F`
for((i=0;i<$length;i++));do
        if [ -e $bak_dir`basename ${a[$i]}`.${del_file}.tar.bz2 ];then
        rm -rf $bak_dir`basename ${a[$i]}`.${del_file}.tar.bz2
        fi
        if [ -d ${a[$i]} ];then
        cd ${a[$i]} && tar cjf `basename ${a[$i]}`.$d.tar.bz2 ./* && mv `basename ${a[$i]}`.$d.tar.bz2 $bak_dir
        fi
done


memcached 启动脚本:

#!/bin/bash
# description: Starts and stops the Memcached services.
# pidfile: /tmp/memcached1.pid
# config:  /usr/local/memcached
# chkconfig: - 55 45
# source function library
. /etc/rc.d/init.d/functions
memcached="/usr/local/memcached/bin/memcached"
[ -e $memcached ] || exit 1
start()
{
echo "Starting memcached:"
daemon $memcached -d -m 2048 -u root -l 127.0.0.1 -p 11211 -c 10240 -P /tmp/memcached1.pid
}
stop()
{
echo "Shutting down memcached"
killproc memcached
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 3
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?


memcached 检测脚本:需要配合crontab 来使用

#!/bin/bash
#Func:test memcached dead  reboot memcached
#date:2014/03/27
#BY:renzhenxing
#version:v0.1
mem=`ps -ef | grep mem | grep "mem" | egrep -v "vmmemctl|grep"| wc -l`
if [ $mem -eq 1 ];then
 echo  "mem is ok!!!"
 exit 0
else
 echo  "mem is dead !"
 /usr/local/memcached/bin/memcached -d -m 2048 -u root -l 127.0.0.1 -p 11211 -c 10240 -P /tmp/memcached1.pid
fi


mysql备份脚本

#!/bin/bash
#BY:renzhenxing
#Date:20140207
#mysql bak scripts
#version: 0.1
R="\\033[31m";
E="\\033[0m";
B="\\033[34m";
P="\\033[35m";
date=`date +%Y%m%d`
db_dir=/opt/database_bak
db_user=root
db_password=123456
chmd5=`cat $db_dir/check.md5`
###check bak dir exist:
if [ -d $db_dir ];then
  echo -e "$R $db_dir is not exist $E , so creat $db_dir.!!!!"
###back mysql databases:
echo -e "$P start bak database 'BBS' $E"
/usr/local/mysql/bin/mysql -u $db_user -p$db_password -e "stop slave;"
#/usr/local/mysql/bin/mysqldump -u $db_user -p$db_password -B bbs | bzip2 -k -9 > $db_dir/bbs$date.bz2
/usr/local/mysql/bin/mysqldump -u $db_user -p$db_password -B bbs | bzip2 -k -9 > $db_dir/che100$date.bz2
if [ $? -eq 0 ];then
   echo " mysql is BBS databases back ok!!!,$date "
else
   echo " mysql BBS databases back failure, PLZ check backfile "
fi
/usr/local/mysql/bin/mysql -u $db_user -p$db_password -e "start slave;"
###md5sum check bak file:
md5sum $db_dir/*.bz2 >>$db_dir/md5.txt
md5sum -c $db_dir/md5.txt >>$db_dir/check.md5
###mysql rep check:
sla=`/usr/local/mysql/bin/mysql -u $db_user -p$db_password -e "show slave status\G" | grep "Yes" | wc -l`
if [ "$sla" -eq 2 ];then
   echo " Replication is OK!"
else
   echo " 主从故障,请查看!!!!!"
fi
/opt/src/sendemail/sendEmail -f [email protected] -t [email protected] -s smtp.163.com -u "`date +%F` BBS DB bak messages" -xu 18810355666 -xp 密码 -m "`date +%F` bbs db bak check file, every day AM `date +%F` auto send. /\t $chmd5">>$db_dir/sendEmail.log


shell脚本iftop监控程序占用带宽

#!/bin/bash
file_name="test.txt"
temp_file1="liuliang.txt"
temp_file2="liuliang2.txt"
iftop  -Pp -Nn -t -L 100 -s 1 >$temp_file1
pragrom_list=(VueDaemon VueCenter VueAgent VueCache VueSERVER VUEConnector Myswitch Slirpvde)
#pragrom_list=(VueSERVER VueCenter)
>$file_name
for i in ${pragrom_list[@]}
do
        port_list=`netstat -plnt|grep $i|awk '{print $4}'|awk -F: '{print $2}'`
        port_all=""
        for port in $port_list
        do
                port_all="${port}|${port_all}"
                port_all=`echo $port_all|sed 's/\(.*\)|$/\1/g'`
        done
        if [[ $port_all == "" ]];then
                echo "${i}sendflow=0" >> $file_name
                echo "${i}receiveflow=0" >> $file_name
                continue
        fi
        send_flow=`cat $temp_file1 |grep -E "${port_all}"|grep -E 'Mb|Kb'|grep '=>'|awk '{print $4}'|\
        tr '\n' '+' |sed -e s/Mb/*1000/g |sed s/Kb//g |sed  's/\(.*\)+$/\1\n/g'|bc`
        #echo "cat liuliang.txt |grep -E "${port_all}"|grep -E 'Mb|Kb'|grep '=>'|awk '{print $4}'|\
        #tr '\n' '+' |sed -e s/Mb/*1000/g |sed s/Kb//g |sed  's/\(.*\)+$/\1\n/g'|bc"
        if [[ ${send_flow} == "" ]];then
                send_flow=0
        fi
        send_num=`cat $temp_file1 |grep -E "${port_all}"|grep "=>"|awk '{print $1}'`
        echo "" > $temp_file2
        for num in $send_num
        do
          cat $temp_file1 |grep  '<='|sed -n ${num}p|grep -E 'Mb|Kb' >>$temp_file2
        done
        receive_flow=`cat $temp_file2 |grep -E 'Mb|Kb'|awk '{print $4}'|\
        tr '\n' '+' |sed -e s/Mb/*1000/g |sed s/Kb//g |sed  's/\(.*\)+$/\1\n/g'|bc`
        if [[ $receive_flow == "" ]];then
                receive_flow=0
        fi
        echo "${i}sendflow=${send_flow}" >>$file_name
        echo "${i}receiveflow=${receive_flow}" >>$file_name
done


centos磁盘满了,查找大文件并清理

通常情况下,最有可能找出占用磁盘空间文件或文件夹的地方,主要是 /tmp,/var,/home。

  • du : 计算出单个文件或者文件夹的磁盘空间占用.

  • sort : 对文件行或者标准输出行记录排序后输出.

  • head : 输出文件内容的前面部分.

      用下面的命令组合就可以完成上述查找工作:

例如:查找/home目录下面前10个大文件

# du -a /home | sort -n -r | head -n 10

如果需要输出可读性高的内容,请使用如下命令:

# cd /home

du -hsx * | sort -rh | head -10

linux操作系统中,经常会遇到磁盘空间满的问题。

[root@SERVER-Test ~]# df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/vg_servertest-lv_root   50G   13G   35G  27% /
tmpfs                               16G     0   16G   0% /dev/shm
/dev/sda1                          485M   96M  364M  21% /boot
/dev/mapper/vg_servertest-lv_home  374G  343G   13G  97% /home
/dev/mapper/vg_servertest-lv_var   385G  219G  147G  60% /var

磁盘空间满,很多情况下是由于大文文件引起的,若文件不大,则一定是文件过多引起的,

怎么查看大文件所在的路径,du:用于统计linux中文件或目录所占磁盘空间的大小

du参数######

-m:以M为单位展示查询结果

-h:以K、M、G为单位展示查询结果,提高信息可读性

--max-depth=1:其中,数字“1”是指查询结果中最多显示的目录层数,这里指最多显示一层目录。

     cd到挂载点后,执行du -m --max-depth=1或du -h --max-depth=1命令,示例如下:

3801213fb80e7bec359f2bc32e2eb9389b506b4e

 作为对“du -h --max-depth=1”的一个优化,还可以使用“du -h --max-depth=1 |sort -nr”命令,这个命令的含义是统计目录所占磁盘空间的大小,并按数值的从大到小进行排序。

例如:查看/home目录下面大文件

[root@SERVER-Test /]# du -h --max-depth=1 /home
16K	/home/redis
396K	/home/eliteall
24K	/home/renshi
233M	/home/source
8.1M	/home/linqingtao
20K	/home/user01
364K	/home/test3
23G	/home/share
16K	/home/lost+found
16K	/home/mysql
305G	/home/svn
136K	/home/test

然后,利用此命令,cd到/opt目录,再次利用“du -m --max-depth=1或du -h --max-depth=1”找出/opt目录中占用磁盘较大的文件或目录,这样逐层(目录)深入就一定会查询到大文件所在目录。


当找到大文件后,若因某些原因,不想对文件进行***,可以用echo或cat或clear命令清除文件内容:

echo > /opt/log/big.log

        此命令会把/var/log目录中的big.log文件内容清除,而又不***big.log文件

cat > /opt/log/big.log

        此命令能与“echo > /var/log/big.log”达到相同效果,不过,命令执行后,需要用“Ctrl + d”结束

clear > /opt/log/big.log

        此命令会把big.log文件内容清空,而不***文件

同样的效果,用true、flase、“:”等也能实现清空文件内容,而不***文件的效果

true > /opt/log/big.log
flase > /opt/log/big.log
: > /opt/log/big.log

       若想***文件,只需利用rm命令即可

rm -f  /opt/log/big.log


   有时候某些大文件被某些程序占用了,并且这些大文件已经被***了,但是对应的文件句柄没有被某些程序关闭,造成内核无法收回这些文件占用的空间。

那么,如何查找那些文件被某些程序占用呢:

#lsof -n | grep deleted
COMMAND     PID      USER   FD      TYPE             DEVICE        SIZE       NODE NAME
dd        31708      higkoo    1w      REG                8,2 5523705856     429590 /data/filetest (deleted)

解决办法:kill -9 PID   只需把进程删掉就能释放空间。

有时候可能是inode用完了.

用# df -i  可以查看。
要是inode用完了,磁盘没法再写入新内容了,这个是某些临时小文件太多了,把inode用完了,把它删掉就行了。
# find /var/spool/clientmqueue -type f -print -exec rm -f {} \;
这个命令中 /var/spool/clientmqueue 是要***的文件所在的目录 -type f这个参数限定find只查找普通文件(即不是管道文件,不是块文件,不是链接文件,不是目录等),防止误***系统文件。

你可能感兴趣的:(linux)