虚拟机安装linux提示intel VT-x处于禁用状态
问题描述
我们在第一次使用虚拟机启动linux的时候经常会碰到下面这个报错,如下:
已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。
此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态。
如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则 Intel VT-x 可能被禁用。
解决办法
重启电脑,进入bios(一般是F10),选择Configuration选项,选择Intel Virtual Technology并回车 ,选择enable. 保存退出OK。
nginx日志文件删除后空间不释放
问题描述
因nginx日志过大,占满存储空间,想删除日志减少空间,但是删除日志后发现空间还是没有减少。
未释放磁盘空间原因
在Linux或者Unix系统中,通过rm
或者文件管理器
删除文件将会从文件系统的目录结构上解除链接(unlink)。然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。而我删除的是nginx的log文件,删除的时候文件应该正在被使用。
解决办法
重启nginx服务,或者用>/opt/nginx/logs/nginx.log
清空日志文件,而不是直接删除。
给指定用户或全部用户(已登录)发送消息
给指定用户发送消息
首先,可使用w
或who
命令查看当前登录的用户信息;
然后,使用write
命令将信息发送到用户的终端上,用法步骤如下:
实例:
1 | root# write root pts/1 |
然后使用root账号登录,且tty号为pts/1的登录用户终端会收到如下消息:
1 | Message from root@cs2c.com.cn on pts/3 at 10:20 ... |
给当前登录的所有用户发送消息
给当前登录所有用户发送消息,使用wall
(write all
的缩写)
实例如下:
首先,你可以通过who
命令查看登录到该机器的所有用户。比如:
1 | # who |
执行who
命令,就会返回上面的结果。表示有三个用户登录到该机器,有个用户有两个登录Console
。
其次,广播消息
1 | #wall 'I will use this host. If somebody is using it, pls let me know. Thanks a lot.' |
执行wall
命令,所有登录到该机器的控制台(console)界面上都会收到如上所示的消息。
LINUX系统软件安装和卸载的常见方法
如何修改LINUX的IP地址、网关和主机名
如何查看当前的Linux服务器的运行级别
使用 who -r
或者 runlevel
命令。
如何查看Linux的默认网关
用 route -n
或者 netstat -nr
命令。
如何在/usr目录下找出大小超过10MB的文件
find /usr -size +10M
如何在/home目录下找出120天之前被修改过的文件
find /home -mtime +120
如何在/var目录下找出90天之内未被访问过的文件
find /var \! -atime -90
查看各系统用户的进程(LWP)数
1 | ps h -Led -o user | sort | uniq -c | sort -n |
默认情况下采用 ps 命令并不能显示出所有的进程。因为 Linux 环境下执行多线程,每个线程都将以一个轻量级进程(light-weight process 『LWP』)的形式执行,而 ps 命令如果不带 -L 选项将无法查看 LWP。
确定某用户的进程(LWP)数的分布情况
1 | ps -o nlwp,pid,lwp,args -u username | sort -n |
其中 username 为系统用户名。
常用日志查询命令
查看实时日志
1 | tail -f info.log |
分页查看所有日志
1 | cat info.log | more |
分页查看前N行日志
1 | tail -n 1000 info.log | more |
检索日志,并显示该日志的前后N行记录
1 | cat info.log | grep -n -B10 -A10 "关键字" |
查看日志,从第1000行开始,显示500行
1 | cat info.log |tail -n+1000|head -n 500 |
查看日志,显示1350行到1400行
1 | cat info.log | head -n 1400 | tail -n +1350 |
删除包括关键词的行
1 | sed -i '/关键词/d' info.log |
grep查看打印匹配的下几行或前后几行
前言
平时工作中总会碰到排查错误想要看XX日志里面的某个关键词,但是这个关键词前后又有很多其他信息也是需要关注的,这时候怎么办呢?
实现
一般是通过grep来实现。假设要看A.log里面“ABC”关键词上下100行,一般执行命令:
1 | grep -C 100 'ABC' A.log |
将信息输出到指定文件:
1 | grep -C 100 'ABC' A.log > /opt/error.log |
想匹配模式的上下几行,grep也可以实现
1 | grep -5 'parttern' inputfile //打印匹配行的前后5行 |
查找最后创建时间是3天前,后缀是*.log的文件并删除
1 | find / -name “*.log” -ctime +3 -exec rm -f {} \ |
将某目录下大于100k的文件移动至/tmp下
1 | for i in `find /test -type f -size +100k`;do cd /test && mv $i /tmp;done |
将数据库备份并打包至远程服务器192.168.1.1 /backup目录下
1 | mount 192.168.1.1:/backup /mnt |
防火墙配置脚本,只允许远程主机访问本机的80端口
1 | iptables -P INPUT ACCEPT |
脚本统计nginx日志,得到访问ip最多的前10个(nginx日志路径:/home/logs/nginx/default/access.log
1 | awk ‘{a[$1]++}END{for (j in a) print a[j],j}’ /home/logs/nginx/default/access.log|sort -nr|head -10 |
查看最消耗CPU、内存的进程
CPU占用最多的前10个进程
1 | ps auxw|head -1;ps auxw|sort -rn -k3|head -10 |
内存消耗最多的前10个进程
1 | ps auxw|head -1;ps auxw|sort -rn -k4|head -10 |
虚拟内存使用最多的前10个进程
1 | ps auxw|head -1;ps auxw|sort -rn -k5|head -10 |
参数说明
ps auxw
u:以用户为主的格式来显示程序状况
x:显示所有程序,不以终端机来区分
w:采用宽阔的格式来显示程序状况
ps auxw|head -1
输出表头
sort -rn -k5
-n是按照数字大小排序,-r是以相反顺序,-k是指定需要排序的栏位
linux磁盘空间满了后怎么去判定哪个地方占了多大的空间并回收
使用
df -h
查看磁盘空间占用情况。使用
du -s /* | sort -nr
命令查看那个目录占用空间大。然后那个目录占用多再通过
du -s /root/* | sort -nr
一层层排查,找到占用文件多的地方。使用
du -h –max-depth=1
查看当前目录下文件夹大小情况。查看文件是否被进程占用。
如果通过以上方法没有找到问题所在,那么可以使用 lsof | grep deleted
命令,看看是否删除掉的文件仍然被进程占用而没有进行实际删除。
Linux服务器忘记root密码怎么办
重启或者开机时,在倒数3秒的界面按下任意键。
该界面有如下提示(e 编辑 a 更改内核选项 c 命令行 b 启动),所以我们按下”e”编辑。
上下键选中第二行再按下”e”编辑
行末加上”singal,s,S,1”其中一项,然后回车。
按”b”,启动。
启动之后就可以用passwd命令重置root命令。
用shell脚本输出带颜色字体
语法
shell
脚本中echo
显示内容带颜色显示,echo
显示带颜色,需要使用参数-e
,如下:
1 | echo -e "\033[41;36m something here \033[0m" |
其中41的位置代表底色, 36的位置是代表字的颜色
色值对应
1、字背景颜色和文字颜色之间是英文的
""
;
2、文字颜色后面有个m
;
3、字符串前后可以没有空格,如果有的话,输出也是同样有空格;
下面是相应的字和背景颜色,可以自己来尝试找出不同颜色搭配
1 | echo -e “\033[31m 红色字 \033[0m” |
字颜色:30—–37
1 | echo -e “\033[30m 黑色字 \033[0m” |
字背景颜色范围:40—–47
1 | echo -e “\033[40;37m 黑底白字 \033[0m” |
控制选项说明
1 | \33[0m 关闭所有属性 |
实例:五颜六色的shell脚本
1 | #!/bin/bash |
重启命令
关机命令
查看当前使用的网卡
1 | watch cat /proc/net/dev |
重启网卡方法
全部网卡重启
重启网卡使设定生效:
1 | sudo /etc/init.d/networking restart |
单个网卡重启
关闭网卡 ifdown eth0
开启网卡 ifup eth0
禁用网卡
1 | vi /etc/sysconfig/network-scripts/ifcfg-eth1 |
修改IP
动态
设定一个网卡IP:
1 | ifconfig eth1 192.168.1.10 netmask 255.255.255.0 |
重启网卡使设定生效:
1 | sudo /etc/init.d/networking restart |
静态
编辑文件 /etc/network/interfaces
1 | sudo vi /etc/network/interfaces |
并用下面的行来替换有关eth0的行:
1 | # The primary network interface |
将eth0的IP分配方式修改为静态分配(static)后,为其制定IP、网关、子网掩码等信息。
将上面的Ubuntu IP地址等信息换成你自己就可以了。
用下面的命令使网络设置生效:
1 | sudo /etc/init.d/networking restart |
操作防火墙(service方式)
查看防火墙状态
1 | service iptables status |
开启防火墙
1 | service iptables start |
关闭防火墙
1 | service iptables stop |
查找大文件
搜索当前目录下,超过100M大小的文件
1 | find . -type f -size +100M |
查看超过100M大小的文件及其相关信息
1 | find . -type f -size +800M -print0 | xargs -0 ls -l |
查找超过100M大小文件,并显示查找出来文件的具体大小
1 | find . -type f -size +100M -print0 | xargs -0 du -h |
查找超过100M大小文件并对查找结果按照文件大小做一个排序
1 | find . -type f -size +800M -print0 | xargs -0 du -h | sort -nr |
查找Linux下的大目录
1 | du -h --max-depth=1 |