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 参考博客

服务器爆满:cannot create temp file for here-document: No space left on device的更多相关文章

  1. Linux命令行报错 bash: cannot create temp file for here-document: No space left on device

    今天Linux服务器出问题了,使用"tab"补全命令时,提示 bash: cannot create temp file for here-document: No space l ...

  2. cd tom-bash: cannot create temp file for here-document: No space left on device

    Linux使用tab补全时提示 cd tom-bash: cannot create temp file for here-document: No space left on device 这是因为 ...

  3. Linux出现cannot create temp file for here-document: No space left on device的问题解决

    在终端输入:cd /ho 按tab键时,显示错误: bash: cannot create temp file for here-document: No space left on device 这 ...

  4. 【linux基础err】bash: cannot create temp file for here-document: No space left on device

    博主的device还有剩余空间也出现了这个问题,不知是什么原因,不过删除一些无用的内容,或者将某些有用的内容移动到其他硬盘,之后就可以正常使用了. 参考: 1. cannot create temp ...

  5. bash: cannot create temp file for here-document: Read-only file system

    文件系统被强制只读问题,第一眼看到百度了一下,说可能磁盘坏了.卧槽我都吓懵了系统盘坏了,闹着玩呢,然后接着查资料,排查 mount 查看所有挂载,发现根目录的挂载权限是ro只读. /dev/sda2 ...

  6. ls bash: cannot create temp file for here-document: No space left on device

    出现这种问题,一般是磁盘空间满了,或者是inode满了 使用命令: df -h查询磁盘空间 df -i 查询inode占用 Filesystem Inodes IUsed IFree IUse% Mo ...

  7. 网页验证码出不来,读取验证码时出错:javax.imageio.IIOException: Can't create cache file!

    版权声明:本文为博主原创文章,仅作为学习交流使用 转载请注明出处 https://www.cnblogs.com/linck/p/10593053.html 今天打开项目时,发现登陆界面的验证码出不来 ...

  8. javax.imageio.IIOException: Can't create cache file!

    javax.imageio.IIOException: Can't create cache file! at javax.imageio.ImageIO.createImageInputStream ...

  9. mysql 无法启动的原因Can't start server: can't create PID file: No space left on device

    一大早来到公司,看到了一个噩梦,后台总是登录不上,登录就出错,还以为被黑客入侵了.经过1个小时的排错原因如下: 我的服务器是linux的,mysql的报错日志路径是/var/log/,经过查看日志发现 ...

随机推荐

  1. spring项目启动错误——java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext

    最近在搭spring项目框架的时候,遇到一个很伤的问题,翻了很多帖,都报告说什么少spring-context包啊之类的,但实际上spring的那些依赖我根本没漏,下面是我的pom: <depe ...

  2. mac 设置 MySQL 数据库默认编码(字符集)为 UTF-8

    mac 设置 MySQL 数据库默认编码(字符集)为 UTF-8   原文链接:https://juejin.im/post/5bbdca76e51d45021147de44 鉴于有些刚接触 MySQ ...

  3. SQL-W3School-高级:SQL FOREIGN KEY 约束

    ylbtech-SQL-W3School-高级:SQL FOREIGN KEY 约束 1.返回顶部 1. SQL FOREIGN KEY 约束 一个表中的 FOREIGN KEY 指向另一个表中的 P ...

  4. thinkphp模版主题使用方法

    3.1.3模版主题使用方法,手册貌似没有.配置项: 'DEFAULT_THEME'=>'default',//默认主题 'THEME_LIST'=>'default,theme',//主题 ...

  5. Robot Framework 学习资源汇总

    学习网站 http://robotframework.org/ http://www.testtao.cn/?cat=43 https://www.jianshu.com/c/483e8ffcbc79 ...

  6. 【403】COMP9024 Exercise

    Week 1 Exercises fiveDigit.c There is a 5-digit number that satisfies 4 * abcde = edcba, that is,whe ...

  7. React Native使用NetInfo对当前系统网络的判断

    有网状态: 断网状态: 代码如下: 注意:第一次参考了http://www.hangge.com/blog/cache/detail_1614.html代码,一直显示的是unknow状态... 最后处 ...

  8. flask数据库连接池DBUtils

    数据库连接池 为啥要使用数据库连接池 频繁的连接和断开数据库,消耗大,效率低 DBUtils可以创建多个线程连接数据库,且一直保持连接,不会断开 执行数据库操作时,由数据池分配线程,当数据池空时,可选 ...

  9. for 和 while 用于遍历时候的区别

    for: 以空格作为间隔符,输出字段. read: 以行作为间隔符,输出字段. 对于文件来说,如果只有一列,for  和  read 无区别, 多列的话, 有区别. read  用法详情: 见 如下转 ...

  10. vc++中播放声音

    http://www.cnblogs.com/xuemaxiongfeng/articles/2462560.html http://bbs.csdn.net/topics/390729457 htt ...