首页 > 代码库 > Linux运维常用知识(4)
Linux运维常用知识(4)
linux命令无效-bash: ls: command not found
一次重启后开机,基本所有的命令都不可用,只有少数的命令可用
[root@centos-1 ~]# ll
-bash: ls: command not found
[root@centos-1 ~]# pwd
/root
[root@centos-1 ~]# shutdown -r now
-bash: shutdown: command not found
[root@centos-1 ~]# export $PATH
-bash: export: `/usr/java/jdk1.7.0_55/bin::/root/bin‘: not a valid identifier
[root@centos-1 ~]#
export $PATH,可能是PATH路径设置问题
1.先临时设置PATH
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
修改配置文件,发现有代码错误,原来是配置JAVA路径的时候,PATH拼写出错
#vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_55
export JAVA_BIN=/usr/java/jdk1.7.0_55/bin
export PATH=$JAVA_HOME/bin:$PAH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
重启解决.
centos下mysql修改datadir和socket相关路径
有时候我们希望使用别的目录来代替mysql默认使用的/var/lib/mysql目录存储数据。
为了完成这个需求,我们需要几步来实现:
1,修改selinux为permissive或disable
2,将目录的权限修改为mysql用户所有和属组
3,修改/etc/my.cnf
将datadir和socket修改为你需要的路径
这步做完后,mysql-server就可以正常启动了,并且可以看到data文件和socket文件已经存入你指定的目录中。但是当你使
用本地mysql客户端连接服务端的时候,会发现系统依然提示你找不到“/var/lib/mysql/mysql.sock”这个sock文件,这时候
继续下一步
4,在/etc/my.cnf中添加一段
[client]
socket=[你指定的文件]
ok,这样重启mysql-server后就可以正常连接了。
使用mysql_secure_installation仍然会提示无法找到“/var/lib/mysql/mysql.sock”文件,打开
mysql_secure_installation命令脚本,它在/usr/bin目录下。
在make_config这个函数中添加一段
echo "socket=[你指定的文件,同上设置]" >>$config
保存文件后就可以正常使用了。
解决Windows8下Cisco Systems VPN Client的Reason 442: Failed to Enable Virtual Adapter错误
Windows8下使用Cisco Systems VPN Client创建的Cisco IPSec VPN无法连接,提示Reason 442: Failed to Enable Virtual Adapter,这个问题是Windows8特有的,不能用其他系统的解决方案解决此问题.下面给出解决方案.
1.打开注册表编辑器(需使用管理员权限)
2.找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CVirtA
选择名称为DisplayName的项,修改数值.
4.如果是x86(即32位)版本则将类似@oem8.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter的值修改为Cisco Systems VPN Adapter
5.如果是x64(即64位)版本则将类似@oem8.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter for 64-bit Windows的值修改为Cisco Systems VPN Adapter for 64-bit Windows
6.在Cisco Systems VPN Client中点击Connect按钮,成功连接.
监控利器:CactiEZ及无数据,无图像解决
CactiEZ中文版是最简单有效的Cacti中文解决方案,整合Spine,RRDTool和美化字体。
集成Thold,Monitor,Syslog,Weathermap,Realtime,Errorimage,Mobile,Aggregate以及Apache,Squid,F5,Nginx,MySQL等模板。支持多种硬盘控制器和阵列卡,基于CentOS6,启动速度更快,支持EXT4文件系统,原生rsyslog更稳定。全中文页面,中文图形,支持邮件报警,支持声音报警,安装方便使用简单。
CactiEZ中文版10.1:
下载地址:32位: http://www.zhengfeng.net/CactiEZ-10.1-i386.torrent
64位: http://www.zhengfeng.net/CactiEZ-10.1-x86_64.torrent
CactiEZ还是有英文版的 http://cactiusers.org/ 这个网站去下载英文版。
http://www.crazycen.com/linux/1164.html
cacti无图像或者无数据解决方法:
1.system utilities –>Rebuild poller cache 2.系统时间不准确,重新设置时间 3.图像没有生成,运行#/usr/bin/php /srv/www/htdocs/cacti/poller.php –force 4.权限问题,修改权限#chmod 777 -R /srv/www/htdocs/cacti/rra 5.数据库表有损坏,修复#mysqlcheck -ao cacti –auto-repair -uroot -p 6.重启snmpd服务#service snmpd restart
Icinga 中文版
Icinga其实就是nagios的二次开发,他包括了nagios的所有功能,甚至可以直接把nagios的配置文件拿来用。icinga-cn是专门的中文项目,更适合国人使用。
中文版地址:http://icinga-cn.sourceforge.net/
几个常用的Linux主机性能监控脚本
1、查看主机网卡流量
#!/bin/bash #network #Mike.Xu while : ; do time=‘date +%m“-”%d“ ”%k“:”%M’ day=‘date +%m“-”%d’ rx_before=‘ifconfig eth0|sed -n “8”p|awk ’{print $2}‘|cut -c7-’ tx_before=‘ifconfig eth0|sed -n “8”p|awk ’{print $6}‘|cut -c7-’ sleep 2 rx_after=‘ifconfig eth0|sed -n “8”p|awk ’{print $2}‘|cut -c7-’ tx_after=‘ifconfig eth0|sed -n “8”p|awk ’{print $6}‘|cut -c7-’ rx_result=$[(rx_after-rx_before)/256] tx_result=$[(tx_after-tx_before)/256] echo “$time Now_In_Speed: ”$rx_result“kbps Now_OUt_Speed: ”$tx_result“kbps” sleep 2 done
2、系统状况监控
#!/bin/sh #systemstat.sh #Mike.Xu IP=192.168.1.227 top -n 2| grep “Cpu” 》》。/temp/cpu.txt free -m | grep “Mem” 》》 。/temp/mem.txt df -k | grep “sda1” 》》 。/temp/drive_sda1.txt #df -k | grep sda2 》》 。/temp/drive_sda2.txt df -k | grep “/mnt/storage_0” 》》 。/temp/mnt_storage_0.txt df -k | grep “/mnt/storage_pic” 》》 。/temp/mnt_storage_pic.txt time= date +%m“。”%d“ ”%k“:”%M connect= netstat -na | grep “219.238.148.30:80” | wc -l echo “$time $connect” 》》 。/temp/connect_count.txt
3、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告
#!/bin/bash #monitor available disk space SPACE=‘df | sed -n ’/ \ / $ / p‘ | gawk ’{print $5}‘ | sed ’s/%//‘ if [ $SPACE -ge 90 ] then 123456789@qq.com fi
4、 监控CPU和内存的使用情况
#!/bin/bash #script to capture system statistics OUTFILE=/home/xu/capstats.csv DATE=’date +%m/%d/%Y‘ TIME=’date +%k:%m:%s‘ TIMEOUT=’uptime‘ VMOUT=’vmstat 1 2‘ USERS=’echo $TIMEOUT | gawk ‘{print $4}’ ‘ LOAD=’echo $TIMEOUT | gawk ‘{print $9}’ | sed “s/,//‘ ’ FREE=‘echo $VMOUT | sed -n ’/[0-9]/p‘ | sed -n ’2p‘ | gawk ’{print $4} ‘ ’ IDLE=‘echo $VMOUT | sed -n ’/[0-9]/p‘ | sed -n ’2p‘ |gawk ’{print $15}‘ ’ echo ”$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE“ 》》 $OUTFILE
5、全方位监控主机
#!/bin/bash # check_xu.sh # 0 * * * * /home/check_xu.sh DAT=” date +%Y%m%d “ HOUR=” date +%H “ DIR=”/home/oslog/host_${DAT}/${HOUR}“ DELAY=60 COUNT=60 # whether the responsible directory exist if ! test -d ${DIR} then /bin/mkdir -p ${DIR} fi # general check export TERM=linux /usr/bin/top -b -d ${DELAY} -n ${COUNT} 》 ${DIR}/top_${DAT}.log 2》&1 & # cpu check /usr/bin/sar -u ${DELAY} ${COUNT} 》 ${DIR}/cpu_${DAT}.log 2》&1 & #/usr/bin/mpstat -P 0 ${DELAY} ${COUNT} 》 ${DIR}/cpu_0_${DAT}.log 2》&1 & #/usr/bin/mpstat -P 1 ${DELAY} ${COUNT} 》 ${DIR}/cpu_1_${DAT}.log 2》&1 & # memory check /usr/bin/vmstat ${DELAY} ${COUNT} 》 ${DIR}/vmstat_${DAT}.log 2》&1 & # I/O check /usr/bin/iostat ${DELAY} ${COUNT} 》 ${DIR}/iostat_${DAT}.log 2》&1 & # network check /usr/bin/sar -n DEV ${DELAY} ${COUNT} 》 ${DIR}/net_${DAT}.log 2》&1 & #/usr/bin/sar -n EDEV ${DELAY} ${COUNT} 》 ${DIR}/net_edev_${DAT}.log 2》&1 &
放在crontab里每小时自动执行:
0 * * * * /home/check_xu.sh
这样会在/home/oslog/host_yyyymmdd/hh目录下生成各小时cpu、内存、网络,IO的统计数据。
如果某个时间段产生问题了,就可以去看对应的日志信息,看看当时的主机性能如何。
print spooler服务启动后,自动停止,服务死锁
怀疑非正常关机,造成“Print Spooler服务”启动文件“spoolsv.exe”损坏。从其他机子上拷了一个spoolsv.exe来。覆盖,重启。故障依旧
开始->运行,输入regedit打开注册表编辑器
找到以下键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler
选定Spooler这个文件夹,在右边窗口里找DependOnService这个键值
双击打开把数据改为RPCSS,确定后退出注册表编辑器,重启计算机。
linux系统下的远程开机
1.服务器没有部署在本地,通常托管到IDC机房,而且服务器在机房中不止一台,其中一台被关闭时,则我们可以远程连接一台没有关机的服务器上,然后进行远程开机.
2.远程开机需要的软件:wakeonlan
yum install wol -y
3.如何进行远程开机?
先不要急着去关闭你的linux服务器,你首先要确定它是否支持远程开机?
1)登录到目标服务器,用ethtool这个命令打印出网卡的信息
[root@localhost lhd]# ethtool eth0
可以看到,ethtool 把网卡的信息全部列出,我们只关心其中的这两项:
Supports Wake-on: pumbg
Wake-on: d
如果 wake-on 一项值为 d,表示禁用wake on lan
值为 g,表示启用 wake on lan
因为此机器禁用了 wake on lan,所以用下面的命令来启用它:
[root@localhost lhd]# ethtool -s eth0 wol g
现在目标机器的网卡已经支持了远程开机,
下面我们得到它的本地MAC地址:
[root@localhost lhd]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:03:0D:1D:1F:97
把HWaddr 00:03:0D:1D:1F:97这一项记录下来即可
现在你可以试着把目标机器关闭
2)开机
现在我们需要登录到已安装了wake on lan软件的机器上,在上面执行开机命令:
wol 00:03:0D:1D:1F:97
稍后就会发现,目标机器已开机可以登录了
wol的取值默认是d,含义是disable
修改后的值为g,含义是Wake on MagicPacket(tm)
当机器重启后,eth0的设置又会回复到Wake-on: d 状态,
3)这个问题怎么解决?
两个办法:第一个,也是我们的惯性思维;
把/sbin/ethtool -s eth0 wol g 这条命令附加到/etc/rc.local这个文件中,
则下次开机后会自动执行
第二个: 编辑/etc/sysconfig/network-scripts/ifcfg-eth0
(eth0网卡的配置文件),添加上一行:
ETHTOOL_OPTS=”wol g”
4,网络唤醒的局限性:
它只能在局域网中应用,而不能通过互联网运行,为什么?
因为机器关闭后,完全是靠网卡唤醒机器,此时的机器是关闭的,没有操作系统运行,
也就谈不上支持tcp/ip协议,当然也就不能通过互联网运行了.
也就是说:如果我们在某个局域网中只有一台机器,就不能使用此功能了.
我们必须能登录到局域网中的一台机器上,在此机器上运行 wake on lan 去唤醒目标机器
前提条件就是:目标机器和我们登录的机器在同一局域网中
5,还有一点:被远程开机的目标机器必须是插电的
下面简单介绍一下linux下的wakeonlan 的用法:
假设远程要唤醒的计算机IP:12.34.56.78,Mac地址:01:02:03:04:05:06
$ wakeonlan -i 12.34.56.78 01:02:03:04:05:06
本文出自 “从心开始” 博客,请务必保留此出处http://fuquanjun.blog.51cto.com/5820068/1427062