服務器爆滿: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 參考博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM