日历

2017年十二月
« 9月    
 123
45678910
11121314151617
18192021222324
25262728293031

最近评论

    linux企业应用

    centos 7 图形界面 文本界面切换

    1,命令模式
    systemctl set-default multi-user.target

    2,图形模式
    systemctl set-default graphical.target

    接着 reboot 即可

    linux企业应用

    创建快照时出错:msg.snapshot.error-QUIESCINGERROR.

    今天克隆一台虚拟机,提示错误如下:
    创建快照时出错:msg.snapshot.error-QUIESCINGERROR.
    保存快照是出错:msg.snapshot.error-QUIESCINGERROR.

    解决办法是:启动服务Virtual disk,并设为自动启动,禁用vmware snapshot provider服务。

    再克隆就好了。

    linux企业应用

    WDCP被黑后查杀后门和恶意程序的方法步骤

    1、一台服务器受到攻击,据反映ps、lsof、ss、netstat被置换了,进入系统,执行ps命令,找到如下信息,正常情况下,应该只有第一条,而现在出现了两条,同时第二条也反映了这次入侵的特点,ps、lsof、ss、netstat这四个命令被备份到/usr/bin/dpkgd目录下!
    [root@localhost bin]# ps aux
    root      7941  0.0  0.0   1484   704 pts/2    S+   09:40   0:00 ps aux
    root      7942  0.0  0.0 110256  1144 pts/2    R+   09:40   0:00 /usr/bin/dpkgd/ps aux

    2、通过查看,/bin/ps这个命令文件的大小是1223123字节,通过下面的命令查找系统中同样大小的文件,有如下这些
    [root@localhost rc.d]# find / -size 1223123c
    /usr/bin/bsd-port/getty
    /usr/bin/.sshd
    /usr/sbin/lsof
    /usr/sbin/ss
    /etc/kblockd
    /bin/ps
    /bin/netstat
    find: “/proc/8145/task/8145/fd/5”: 没有那个文件或目录
    find: “/proc/8145/task/8145/fdinfo/5”: 没有那个文件或目录
    find: “/proc/8145/fd/5”: 没有那个文件或目录
    find: “/proc/8145/fdinfo/5”: 没有那个文件或目录

    3、布置一台同样版本的系统。受入侵的系统是Centos6.5,找来一台Centos6.4的系统与6.5的对比,发现命令文件的大小和6.5的不一样,所以需要布置一台和受入侵系统版本一致的对照系统。
    [root@localhost bin]# cd /usr/bin/dpkgd
    ps、lsof、ss、netstat这四个命令的大小如下:
    [root@localhost dpkgd]# ll -h
    总用量 436K
    -rwxr-xr-x 1 root root 143K 12月 24 18:21 lsof
    -rwxr-xr-x 1 […]

    linux企业应用

    NetworkManager导致网络错误

    1、今天一台服务器网络连接不上了,经查看,eth0和eth1做了bonding,使用stat命令查看和网络配置相关的文件,也没有查看到网络配置文件被修改过。
    /etc/sysconfig/network-scripts/ifcfg-bond0
    /etc/sysconfig/network-scripts/ifcfg-eth0
    /etc/sysconfig/network-scripts/ifcfg-eth1
    /etc/modprobe.d/modprob.conf
    /etc/rc.d/rc.local

    2、重新启动网络,执行命令service network restart,可以看到eth0,eth1等都能启动,但是bond0启动报错
    Bringing up interface bond0: Error:Connection activation failed:The connection not for this device.

    3、执行 chkconfig –list | grep NetworkManager
    看到NetworkManager 这货居然存在并启动了。果断停止 service NetworkManager stop

    4、再次执行service network restart,可以看到bond0启动正常。

    5、为防止NetworkManager再次启动,执行chkconfig –level 2345 NetworkManager off。
    永久关闭NetworkManager,这个软件很不好用。

    linux企业应用

    linux系统无法引导无法执行grub-install的处理过程

    1、有一台linux主机重启后,连接不上,打开终端,系统停留在grub界面,grub>;
    2、在命令行,输入find (hd0,0),敲tab键,没找到文件;

    3、看到上面的输出,猜测系统应该是完全损坏了;
    4、使用光盘进入拯救模式,语言选择默认,键盘选择默认,网络恢复选择NO,选择continue,或read only,剩下的选择OK,继续就行
    5、进入sh-4.1# ,ls /mnt/sysimage/ 显示为根目录的文件,发现各文件都在;输入 chroot /mnt/sysimage,回车;
    6、执行grub-install  /dev/sda 命令,重新安装grub,显示一下错误:/boot/grub/stage1 not read correctly
    7、尝试修改/boot/grub/stage1的名字,系统提示只读,网上搜索/boot/grub/stage1 not read correctly的错误原因,提示是/etc/fstab和/etc/mtab有问题,检查发现这2个文件没有特殊的地方;
    8、按照文件系统错误的思想,查看各磁盘信息,发现 /boot 分区 500M左右,fdisk查看/dev/sda发现,sda1是LVM格式;CentOS系统的boot分区一般不选择LVM格式,而且这台服务器有2个磁盘sda和sdb,各200G,从df命令显示来看,进行过LVM扩容的操作,所以怀疑/dev/sda1的文件系统的ID应该不是8e,而是83
    9、修改/dev/sda1的文件系统ID,依次执行,fdisk /dev/sda,p查看分区,/boot是sda1,分区号应该是1,执行t命令修改文件系统ID,分区输入1,修改成的文件系统ID输入 83,输入w保存退出,exit退出sh-4.1,执行reboot
    10、系统启动成功。

    linux企业应用

    计算机重名导致计算机很卡

    今天一台计算机很慢,看系统日志,net.pipe listener adapter无法开启,另外还有2个相关的服务启动存在错误。在系统日志中,还有一条,就是系统的名字,网络中已经有其他的服务器使用了相同的名字,导致本机不能使用该名字。

    修改就算计名字,然后重新启动,系统流畅了,也没有net.pipe listener adapter无法开启的错误了。

    linux企业应用

    Centos6.5解决无法本地登录的一个实例

    今天一客户服务器在机房无法本地登录,但是通过ssh可以远程登录,查看登录验证文件,内容如下
    [root@XX02 pam.d]# cat /etc/pam.d/login
    #%PAM-1.0
    auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
    auth       include      system-auth
    account    required     pam_nologin.so
    account    include      system-auth
    password   include      system-auth
    # pam_selinux.so close should be the first session rule
    session    required     pam_selinux.so close
    session    required     pam_loginuid.so
    session    optional     pam_console.so
    # pam_selinux.so open should only be followed by sessions to be executed in the user context
    session    required     pam_selinux.so open
    session    required     pam_namespace.so
    session    optional     pam_keyinit.so force […]

    linux企业应用

    centos7 welcome to emergency mode问题处理

    今天一台centos无法正常启动,登录界面显示如下内容:
    piix4_smbus XXXXX:Host SMBus controller not enabled!
    end_request: I/O error,dev fd0,sector 0

    首先解决第一个问题,处理过程如下:
    [root@node1 ~]# lsmod | grep i2c_piix4
    i2c_piix4              11232  0
    i2c_core               29132  1 i2c_piix4
    [root@node1 ~]# vi /etc/modprobe.d/blacklist.conf    添加一下信息:
    blacklist i2c_piix4
    [root@node1 ~]# systemctl reboot
    重新启动后,piix4的报错没有了,但是fd0的报错还在,这个需要修改BIOS,再次重新启动系统,进入BIOS
    在Main页,将软驱启动设置为Disabled,保存退出,再次启动,发现end_request: I/O error,dev fd0,sector 0的错误提示没有了,但是系统依然在emergency mode。
    输入用户密码进入系统,执行命令df -h 发现系统之挂载了/boot  和  /  分区,cat /etc/fstab 发现有4个分区进行挂载,swap分区也许挂载了,也就是说有一个分区/dev/sdb1没有挂载正确,错误的信息如下:
    /dev/sdb1  /storage xfs 0 0

    [root@node1 ~]# stat /etc/fstab  发现该文件在客户报错前修改过
    于是将
    /dev/sdb1  /storage xfs 0 0
    修改为:
    /dev/sdb1  /storage xfs defaults […]

    linux企业应用

    Linux一条语句显示IP

    centos 6下,一条语句显示IP地址:
    [root@FTPSvr01 ~]# ifconfig eth0|awk -F'[ :]+’  ‘/t a/{print $4}’
    111.222.123.234
    简要解释:
    ‘/ t a/’是过滤包含t a的行
    -F'[ :]+’  以多个连续空格或冒号为分隔符
    {print $4}打印第四列

    或者使用语句: ifconfig eth0|awk ‘/inet addr/{print $2}’| awk -F: ‘{print $2}’

    在centos 7 下,一条语句显示IP地址,还不够完善
    [root@TestCentOS7 ~]# ip addr show | awk ‘/inet /{print $2}’
    127.0.0.1/8
    172.33.44.55/24

    用下面这条语句,可以显示想要的IP了:
    [root@TestCentOS7 ~]# ip addr show | awk -F'[ /]+’ ‘/global /{print $3}’
    111.222.123.234

    linux企业应用

    工具栏点击没有反应问题处理

    今天一个的windows服务器出现了一个问题,窗口的东西可以动,可以编辑,但是工具栏无论右键,或者左键都没有反应。
    处理方法:启动任务管理器,点进程,找到explorer.exe,点击结束进程,
    然后点击文件,新建任务,点击浏览,在C:\Windows目录下找到 explorer,点击打开,回到创建新任务,点击确定,桌面和工具栏都可以使用了。

    linux企业应用

    利用Nmap端口扫描

    安装nmap:yum -y install nmap

    命令:nmap -v -sT  IPAddr

    [root@TestCentOS7 ~]# nmap -v -sT IPADDRESS

    Starting Nmap 6.40 ( http://nmap.org ) at 2016-07-15 15:16 CST
    Initiating Ping Scan at 15:16
    Scanning IPADDRESS [4 ports]
    Completed Ping Scan at 15:16, 1.01s elapsed (1 total hosts)
    Initiating Parallel DNS resolution of 1 host. at 15:16
    Completed Parallel DNS resolution of 1 host. at 15:16, 6.50s elapsed
    Initiating […]

    linux企业应用

    Linux运维工程师入门须掌握的10个技术点

    linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司 。。。。。

    工具如下:

    1、linux系统基础,这个不用说了,是基础中的基础,连这个都不会就别干了,参考书籍,可以看鸟哥linux基础篇,至少要掌握这书60%内容,没必须全部掌握,但基本命令总得会吧

    2、网络服务,服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,如FTP, DNS,SAMBA, 邮件, 这几个大概学一下就行,LAMP和LNMP是必须要熟练,我所指的不是光光会搭建,而是要很熟悉里面的相当配置才行,因为公司最关键的绝对是WEB服务 器,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,至少有些公司还会用tomcat,这个也最好学一下。其实网络服务方面不用 太担心,一般公司的环境都已经搭建好,就算有新服务器或让你整改,公司会有相应的文档让你参照来弄,不会让你乱来的,但至少相关的配置一定要学熟,而且肯 定是编译安装多,那些模块要熟悉一下他的作用,特别是PHP那些模块。

    这面2点只是基础,也是必要条件,不能说是工具,下以才是真正的要掌握的工具。

    3、shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一 些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本吧,这是最最最基本了,别以为会写那些猜数字和计算什么数的,这些没什么作用,只作学习意义, 写系统脚本才是最有意义,而另一个脚本语言是可选的,一般是3P,即python, perl和php,php就不需要考虑了,除非你要做开发,我个人建议学python会比较好,难实现自动化运维,perl是文本处理很强大,反正这两个 学一个就行了。

    4、sed和awk工具,必须要掌握,在掌握这两个工具同时,还要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。

    5、文本处理命令,sort , tr , cut, paste, uniq, tee等,必学,也是结合第3点时一并学习的。

    6、数据库,首选mysql,别问我为什么不学sqlserver和oracle,因为linux用得最多绝对是mysql,增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维人员使用最多还是查,哪些优化和开发语句不会让你弄的。

    7、防火墙,不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则,如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而FILTER表用得最多,反正不学就肯定不合格。

    8、监控工具,十分十分重要,我个人建议,最好学这3个,cacti,nagios,zibbix,企业用得最多应该是nagios和 zibbix,反正都学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。

    9、集群和热备,这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰,集群工具有很多, 最好学是LVS,这是必学,最好也学学nginx集群,反向代理,还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的,mysql热备也要 学,就是主从复制,这个别告诉我容易,其实不容易的,要学懂整个流程一点也不容易,只照着做根本没意思。

    10、数据备份,不学不行,工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar, dump, rsync等,最好多了解一下。

    算了,说到这10点已经够你受了,应该可以入门了,因为有些技术会比较难学,例如apache和nginx中还有些很重要的技术,如系统调优和服务 优化,还有程序优化,这些在没接触工作前很难学习到的,所以先把这10点学了吧,估计要学熟至少3个月不止,就脚本那部分已经让你很吃力了,我建议是先学 熟shell,等工作后再学另一门脚本语言,这样会比较好。

    以上就是踏入linux运维工程师需要掌握的工具,其实还有很多工具要掌握的,但你在学习环境中是很难学到,最 后我再提醒一下,这里所指的工具相当于技能,而不是像windows或ubuntu那些图形化工具,那些工具没用的,还有,学linux就别装图形界面, 这样虚拟机就不用吃太多内存,而且绝对不建议在真机上装linux,根本达不到学习效果。

    linux企业应用

    passwd命令提示: 鉴定令牌操作错误

    使用passwd修改密码报错: 鉴定令牌操作错误。下面对该错误可能出现的四种情况进行分析:

    第一种:/usr/bin/passwd 的权限中没有添加s即SUID特殊权限
    即:-rwxr-xr-x. 1 root root 27000 8月  22 2010 /usr/bin/passwd
    解决方案:chmod u+s /usr/bin/passwd
    SUID的功能简单的说就是让组用户或其他用户在执行该文件是拥有文件所有者(own)权限,这里就是需要获取w(写)权限,这样才能将新密码写到/etc/shadow文件中 切记:SUID只对二进制的文件有效(系统中的一些命令),不能用在脚本上(script),因为脚本还是把很多的程序集合到一起来执行,而不是脚本自身在执行。同样,SUID也不能放到目录上,放上也是无效的。

    第二种:
    [root@Svr04 ~]# lsattr /etc/shadow
    —-i——–e- /etc/shadow(文件的隐藏属性,具体不扩展),这里需要将i去掉,用chattr -i /etc/shadow
    同样/etc/group /etc/passwd也可能出现该情况。本次是用户/etc/shadow不能扩展,把i属性去掉就可以了。

    第三种:
    虽然出现passwd: 鉴定令牌操作错误,但是密码已经修改了,可以通过cat /etc/shadow去查看,只是该用户被锁定了,这里需要解锁。
    解决方案:
    usermod +U somebody将该用户解锁(/etc/shadow文件中该用户所属第二栏有几个!(惊叹号)就执行几次该指令)

    第四种:
    主机磁盘已满,修改密码是提示:鉴定令牌操作错误
    解决方法:清理磁盘后重新修改密码

    linux企业应用

    CentOS下使用MyTop实时监控MySQL

    MyTop是一个类似Linux下的top命令风格的MySQL监控工具,MyTop采用Perl开发。MyTop可以监控MySQL当前的连接用户和正在执行的命令。

    MyTop的项目页面为:http://jeremy.zawodny.com/mysql/mytop/

    MyTop安装
    $ yum -y install mytop #epel源

    MyTop命令参数

    $ man mytop
    -u / –user <USERNAME>:指定 username,预设是 root
    -p / –pass / –password <PASSWORD>:指定password,预设是none
    -h / –host <HOSTNAME[:PORT]>:指定 MySQL server的hostname,预设是localhost
    -P / –port <PORT>:指定连接 MySQL server的port,预设是3306
    -s / –delay <SECONDS>:更新的秒数,预设是5秒
    -d / –db / –database <DATABASE>:指定连接的资料库,预设是test
    -b / –batch / –batchmode:指定为 batch mode,每次更新不会清除旧的显示结果,会将更新资料显示上最上方,预设是unset
    -S / –socket <PATH_TO_SOCKET>:指定使用MySQL socket直接连线,而不使用TCP/IP连线,预设是none(当mytop和MySQL在同一台时才能使用)
    –header or -noheader:是否要显示表头,预设是header
    –color or –nocolor:是否要使用颜色,预设是color
    -i / -idle or -noidle:idle 的thread是否要出现在清单上,预设是idle

    注意: […]

    linux企业应用

    ftp自动上传下载文件脚本

    FTP自动登录批量下载文件

    #!/bin/bash
    #
    ftp -v -n IPADDR << EOF
    user youname password
    binary
    cd test
    lcd /home/
    prompt
    mget *
    close
    bye
    EOF

     

    FTP自动登录批量上传文件
    #!/bin/bash
    #
    ftp -v -n IPADDR << EOF
    user youname password
    binary
    cd test
    lcd /home
    prompt
    mput *.txt
    bye
    EOF

    linux企业应用

    CentOS 7下使用FirewallD构建防火墙常用命令

    FirewallD介绍

    FirewallD提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4, IPv6 防火墙设置以及以太网桥接,也支持允许服务或者应用程序直接添加防火墙规则的接口。FirewallD拥有运行时配置和永久配置选项。

    采用firewall-cmd(command)或firewall-config(gui)来动态的管理kernel netfilter的临时或永久的接口规则,并实时生效而无需重启服务。

    FirewallD特性

    Zone

    FirewallD使用区域(zone)的概念来管理,网络区域定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接。每个网卡对应一个zone,这些zone的配置文件可在/usr/lib/firewalld/zones/下看到,默认的是public。

    Zone提供了以下几个区域

    drop

    任何流入网络的包都被丢弃,不作出任何响应,只允许流出的网络连接。即使开放了某些服务(比如http),这些服务的数据也是不允许通过的。

    block
    任何进入的网络连接都被拒绝,并返回IPv4的icmp-host-prohibited报文或者IPv6的icmp6-adm-prohibited报文。只允许由该系统初始化的网络连接。

    public(默认)
    用以可以公开的部分。你认为网络中其他的计算机不可信并且可能伤害你的计算机,只允许选中的服务通过。

    external
    用在路由器等启用伪装的外部网络。你认为网络中其他的计算机不可信并且可能伤害你的计算机,只允许选中的服务通过。

    linux企业应用

    blocked for more than 120 seconds

    “echo 0> /proc/sys/kernel/hung_task_timeout_secs” disables this message
    INFO: task init:106 blocked for more than 120 seconds
    “echo 0> /proc/sys/kernel/hung_task_timeout_secs” disables this message
    INFO: task udevd:91 blocked for more than 120 seconds

    linux会设置40%的可用内存用来做系统cache,当flush数据时,cache数据由于和IO同步问题导致超时(120s),可将40%减小到10%,避免超时。为永久避免这个问题可修改系统配置文件:

    # vim /etc/sysctrl.conf
    vm.dirty_background_ratio = 5
    vm.dirty_ratio = 10

    linux企业应用

    Redhat 6 利用Centos 6的源安装更新bash

    很久没有使用rhel了,今天使用rhel,发现自带的bash无法升级,只能使用centos的了。

    修改/etc/yum.repos.d/rhel-source.repo文件的内容,修改为如下:

     

    # CentOS-Base.repo
    #
    # The mirror system uses the connecting IP address of the client and the
    # update status of each mirror to pick mirrors that are updated to and
    # geographically close to the client.  You should use this for CentOS updates
    # unless you are manually picking other mirrors.
    #
    # If the mirrorlist= does not work for you, […]

    linux企业应用

    windows server 2012启动黑屏,且进入cmd的解决方法

    今天一客户反应windows server 2012启动后,只有黑屏,且有一个CMD对话框,怀疑客户删东西了。咨询后发现,客户删除framework后,就不能启动了。

    .Net Framework 4.5是Windows Server 2012 中图形化界面(GUI) 的基础,所以出现了这个问题,解决办法也简单,在命令行输入如下命令:Dism /online /enable-feature /all /featurename:Server-Gui-Mgmt /featurename:Server-Gui-Shell /featurename:ServerCore-FullServer    回车后,等待一段时间,提示你是否重新启动计算机?(Y/N)。

    输入Y,系统重新启动。再次进入系统,正常的图形界面了。

     

    linux企业应用

    从haproxy日志里抓取造成 404请求的IP,查询IP位置,记录到文件的脚本。

    从haproxy日志里抓取造成 404请求的IP,查询IP位置,记录到文件的脚本。

    #!/bin/bash
    #search /var/log/haproxy.log for http 404 requests.
    #extract the source ip address.
    #find the location for the ip.
    #store in a logfile.

    if [[ -z $1 ]]; then
    _limit=32
    else
    _limit=$1
    fi
    set -e
    set -u

    _haproxy_log_file=”/var/log/haproxy.log”
    _404_log_file=”/root/haproxy_404.log”

    if [[ ! -f $_404_log_file ]]; then
    touch $_404_log_file
    fi
    _ip_total=`grep ” 404 ” $_haproxy_log_file |grep -v ” 404 -” |awk ‘{print $6}’|awk -F: ‘{print $1}’|sort`
    _ip_single=`echo “$_ip_total” |uniq -c|sort -gr`
    IFS=”

    for x in $_ip_single; […]