zoukankan      html  css  js  c++  java
  • 服务器爆满:cannot create temp file for here-document: No space left on device

    1 概述

    • 服务器的磁盘空间被占满导致TAB补全指令失效(TAB会创建临时文件)
    cannot create temp file for here-document: No space left on device
    
    • 真正服务器的信息不能暴露,所以下面都是用自己的VPS的例子

    2 Linux磁盘管理相关操作

    # 显示文件系统的磁盘使用情况统计
    [root@vultr home]# df -h
    Filesystem      Size  Used   Avail Use% Mounted on 
    /dev/sda6       29G   4.2G   23G   16%     / 
    udev            1.5G  4.0K   1.5G   1%     /dev 
    tmpfs           604M  892K   603M   1%     /run 
    none            5.0M     0   5.0M   0%     /run/lock 
    none            1.5G  156K   1.5G   1%     /run/shm 
    
    # du显示文件或者目录的大小
    [root@vultr home]# du -bsh /*
    229M    /boot
    8.9K    /dev
    24M     /etc
    4.0K    /home
    7       /lib
    9       /lib64
    ......
    
    # 查找大于10M的文件
    find / -type f -size +10000000c -exec du -sh {} ;
    

    3 发现btmp日志文件太大

    (1)查看恶意ip试图登录次数:

    [root@vultr log]# lastb|awk '{ print $3}'|sort|uniq -c| sort -n
    392 43.225.180.10
    463 pool-71-187-181-
    600 128.199.231.254
    673 162.105.87.199
    799 5.188.10.76
    863 42.7.27.165
    1284 218.5.77.196
    1415 185.143.221.2
    1648 185.143.222.6
    1832 116.31.116.36
    2198 vmi86304.contabo
    2254 129.213.88.157
    3664 42.7.27.166
    7229 116.31.116.35
    14790 116.31.116.34
    ......
    

    (2)处理措施

    • 修改SSH端口
    # 修改 /etc/ssh/sshd_config 
    [root@vultr /]# vi /etc/ssh/sshd_config
    Port 22 -> 修改为需要的值
    
    # SSH服务重新启动
    [root@vultr /]# service ssh restart
    
    # 修改完查看是否生效
    [root@vultr /]# netstat -nlap|grep sshd|grep tcp|grep LISTEN
    
    • 禁止root账户登录(禁止之前记得创建普通用户账号和设定sudo密码)
    # 修改 /etc/ssh/sshd_config 
    [root@vultr /]# vi /etc/ssh/sshd_config
    添加 PermitRootLogin no
    
    # SSH服务重新启动
    [root@vultr /]# service ssh restart
    
    • 封恶意IP地址:定时执行脚本读取登录失败IP,并添加到/etc/hosts.deny文件
    # 1 secure_ssh.sh脚本
    #! /bin/bash
    cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
    for i in `cat  /usr/local/bin/black.list`
    do
      IP=`echo $i |awk -F= '{print $1}'`
      NUM=`echo $i|awk -F= '{print $2}'`
      if [ ${#NUM} -gt 1 ]; then
        grep $IP /etc/hosts.deny > /dev/null
        if [ $? -gt 0 ];then
          echo "sshd:$IP:deny" >> /etc/hosts.deny
        fi
      fi
    done
    
    # 2 将secure_ssh.sh脚本放入cron计划任务,每1分钟执行一次。
    # crontab -e
    */1 * * * *  sh /usr/local/bin/secure_ssh.sh
    

    4 总结

    • 服务器磁盘空间比较小时,简单的日志文件都可能导致磁盘空间不足
    • 应用的日志应该到达一定量级(如:100M)就压缩归档

    5 参考博客

  • 相关阅读:
    关于数据源跟事件封装实例
    IOS开发基础知识--碎片27
    IOS开发基础知识--碎片26
    IOS开发基础知识--碎片25
    iOS菜单滚动联动内容区域功能实现
    IOS开发基础知识--碎片24
    iOS仿京东分类菜单之UICollectionView内容
    iOS仿京东分类菜单实例实现
    IOS开发基础知识--碎片23
    通用性好的win2003序列号: (推荐先用这个里面的)
  • 原文地址:https://www.cnblogs.com/linzhanfly/p/9805268.html
Copyright © 2011-2022 走看看