Linux 问题手册

简介

python 问题

安装python包时报:read timed out

 执行如下命令:
 # pip install --default-timeout=100 future

执行mvn package 发生内存溢出

  增加mvn的堆空间:
  Windows下,在mvn.cmd中增加如下信息:
  set MAVEN_OPTS= -Xms1024m -Xmx4096m

  Linux下,在~/.bash_profile文件中增加如下信息:
  export MAVEN_OPTS="-Xms1024m -Xmx3024m"

Eclipse使用maven时,要进行配置

 首选项-->maven-->安装-->选择安装路径

网络类

不能找到ifconfig命令?

 # yum install net-tools.x86_64

不能找到lsb_release 命令?

 # yum install -y redhat-lsb

不能找到grub2命令?

 # yum install grub2-tools.x86_64

不能找到pvcreate命令?

 # yum install “*pvcreate*”

不能找到xfs相关命令?

 # yum install xfsprogs  

不能找到ping命令?

RHEL/CentOS
 yum install iputils

Ubuntu
 apt-get install inetutils-ping

linux 只下载不安装rpm?

 单个包下载:
 yumdownloader --destdir=./ kernel-ml
 可以将依赖包都下载
 yum install   --enablerepo=elrepo-kernel --downloadonly --downloaddir=./ kernel-ml-4.20.12-1.el7.elrepo.x86_64

设置双网卡的时候,ping不通,怎么办?

 根本原因,linux启用了反向路由检查
 关闭反向路由检查(根据自己的情况替换第二第三行的网卡名):

  echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter 
  echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter 
  echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter 

IPv4中有哪些地址是私有地址?

 A类:10.0.0.0    -   10.255.255.255 (10/8 prefix)
 B类:172.16.0.0  -   172.31.255.255 (172.16/12 prefix)
 C类:192.168.0.0 -   192.168.255.255(192.168.255.255/24 prefix)

执行make时报jemalloc.h: No such file or directory?

 # make MALLOC=libc

如何设置locale?

 localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

dig和nslookup命令缺失?

 # yum install bind-utils

缺失字体?

 # yum install fontconfig
 # yum install ghostscript-fonts
 # yum install urw-fonts 

Linux 目录显示乱码?

 # yum install convmv  -y

 #把文件名从utf8转换为gbk
 # convmv -f UTF-8 -t GBK -r --notest  *

Linux xz格式的文件怎么解压?

 # xz -d file.xz

系统不支持创建更多的loop 设备怎么办?

 默认情况下系统支持的loop device是8个
 如果需要超过8个loop device,那么使用losetup命令的时候可能会遇到类似的错误 'no such device',这 是因为超过了可用loop device设备的最大限制,依据你的Linux系统,可以通过修改 /etc/modprobe.conf  配置文件,增加如下参数的方式进行扩展

 options loop max_loop=20 --比如我增加到20个

 如果要马上生效的话,可以执行以下命令立即加载该模块。
   modprobe -v loop

系统不能找到brctl相关命令?

 yum install -y bridge-utils

如何将iso文件挂载?

 # mount -o loop centos-7-x86-1810.iso /cloud/temp

系统出现大量的rcuob和rcuok怎么办?

 # vim /etc/default/grub,在GRUB_CMDLINE_LINUX这一行末尾添加nr_cpus=2,然后执行命令grub2-mkconfig -o /boot/grub2/grub.cfg,重启

windows下的文件上传到linux服务器乱码?

 # yum install convmv

 # convmv -f gbk -t utf-8 -r notest /home/filepath

apache服务浏览目录文件乱码?

 # 增加如下的配置:在(/var/www/html的Directory下)
 IndexOptions NameWidth=25 Charset=UTF-8 

如何修改用户的shell?

# usermod --shell /bin/bash mysql

或者
# chsh --shell /bin/bash mysql
# nginx.conf配置文件的格式为:Bom格式,修改或者另存为:无Bom格式。

使用UDP协议的应用和应用层协议有哪些?

 # DNS 域名解析系统
 # TFTP 简单文件传送协议
 # RIP 路由信息协议
 # DHCP 动态主机配置协议
 # SNMP 建档网络管理协议
 # NFS 网络文件系统
 # IGMP 网际组管理协议

使用TCP协议的应用和应用层协议有哪些?

 # SMTP    简单邮件传输协议 
 # TELNET  远程终端协议
 # HTTP    超文本传送协议
 # FTP     文件传送协议

tmp目录下的文件自动丢失?

 tmp下的文件是由 /etc/cron.daily/tmpwatch文件中的配置控制,默认为:10d,也就是10天

如何利用chrony进行时间同步的问题?

 安装chrony,并配置chrony中的server,例如:
 server 10.0.132.175 iburst

 启动chrony服务:
 systemctl start chronyd

如何设置crontab?

 通过crontab -e命令设置:
 格式如下:
 * * * * * {command}
 * 分钟
 * 小时
 * 天
 * 月
 * 周中的某一天
 command: 要执行的命令

如果通过root配置,生成信息位于:
/var/spool/cron/root 中

如果要配置dns,但是域名解析的安装包没有装,怎么办?

 # yum install bind*

 备注:
    其实安装bind-chroot即可

knotify4 消耗大量的cpu和内存资源?


如何判断硬件是否支持虚拟化?

 Intel: cat /proc/cpuinfo |grep vmx
 Amd: cat /proc/cpuinfo | grep svm

如何启用kvm内核模块?

 kvm.ko & kvm_intel.ko |kvm_amd.ko

git 通过ssh连接费标准端口怎么办?

 git clone ssh://git@47.244.57.204:87/zhongying/api.git

git http方式clone代码?

 git clone  http://username:password@地址/test.git
 如果username和password中有@符号,替换为:%40

git clone 时显示Filename too long的解决办法

 在git bash中,运行下列命令: git config --global core.longpaths true  就可以解决该问题

locale: Cannot set LC_CTYPE to default locale: No such file or directory怎么办?

 locale -a 查看所有可以识别的字符编码

configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+?

 在gcc目录执行:./contrib/download_prerequisites
 这个命令会下载几个包:mpfr, gmp,mpc,isl

 三个包下载到contrib目录,并切已经解压,软连接都会创建,需要手工编译安装,编译安装顺序:gmp, mpfr mpc

windows如何生成md5的hash码?

 CertUtil -hashfile {fileName} MD5

 CertUtil -hashfile {fileName} SHA256
 CertUtil -hashfile {fileName} SHA512

su: /bin/bash: Too many open files in system?

 cat /proc/sys/fs/file-max
 vi /etc/sysctl.conf
 修改fs.file-max = 6553600

 sysctl -p
 cat /proc/sys/fs/file-max

如何清除windows本地dns缓存?

 # ipconfig /flushdns

如果无法在ftp上创建文件夹,怎么办?

 在配置文件中增加参数:allow_writeable_chroot=YES

task java:10379 blocked for more than 120 seconds?

 在日志中还会看到:/proc/sys/kernel/hung_task_timeout_secs

 sysctl -w vm.dirty_ratio=10
 sysctl -w vm.dirty_background_ratio=5 
 sysctl -p

 vi /etc/sysctl.conf
 vm.dirty_background_ratio = 5
 vm.dirty_ratio = 10

触发此问题的操作:docker所在宿主机空间满了

sftp 访问比较慢,通过jsch的jar包访问?

 增加:sshConfig.put("PreferredAuthentications", "no");
 在解决问题之后,说说原因:

 sftp的访问时通过ssh协议进行的,在sshd_config中有一个配置项:GSSAPIAuthentication,这个参数是用于设置:登录服务器是否启用:GSSAPI( Generic Security Services Application Programming Interface) ,GSSAPI是一套类似Kerberos 5的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。

 服务器端启用了GSSAPI。登陆的时候客户端需要对服务器端的IP地址进行反解析,如果服务器的IP地址没有配置PTR记录,那么就会等待超时(感觉出来就是慢)

vsphere 虚拟机在线添加磁盘linux,用fdisk -l查看不到,怎么办?

 进入到:/sys/class/scsi_host
 查看有几个以host开头的文件,执行如下命令:
 echo "- - -" >/sys/class/scsi_host/host0/scan

 备注:host0 替换为实际的,有几个以host开头的文件执行几次。

Linux启动vnc服务,远程连接?


 vncpasswd root

 https://tecadmin.net/setup-vnc-server-on-centos-redhat-and-fedora/

Linux中明明编译安装了,但是在执行./configure时还是找不到?

  查找相应名称的.pc文件
  配置:export PKG_CONFIG_PATH={目录}/{找的pc文件名}.pc:$PKG_CONFIG_PATH

Linux中用free 查看buff和cache使用的空间很多,怎么办?

  手工清理方式
  $echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。
  $echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的  pagecache。
  $echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。

  参考学习的网址[Linux 查询占用内存](https://cloud.tencent.com/developer/information/linux%20%E6%9F%A5%E8%AF%A2%E5%8D%A0%E7%94%A8%E5%86%85%E5%AD%98)
 名字: /opt/cleanbuff.sh 
 #!/bin/bash
 echo "开始清理缓存"
 sync;sync;sync #写入硬盘,防止数据丢失
 sleep 10 #延迟10秒
 echo 1 > /proc/sys/vm/drop_caches
 echo "清理结束"

 chmod +x /opt/cleanbuff.sh
 crontab -e
 * */1 * * * /opt/cleanbuff.sh

 每个小时清理一次 (分钟、小时、日、月份、星期)

查看GLIBC 版本支持及碰到问题解决?

 strings /usr/lib64/libc.so.6 |grep GLIBC

 ldconfig -l -v /home/libc.so.6
 LD_PRELOAD=/home/libc.so.6 ln -s /lib64/libc-2.5.so /lib64/libc.so.6

 ln -s /lib64/libc-2.5.so /lib64/libc.so.6 这个可以替换为任何可执行的命令

下载内核rpm包的地址是哪里?

 http://repos.lax-noc.com/elrepo/kernel/el6/

 el6 表示适用于redhat 6,centos-6
 el7 表示适用于redhat-7,centos-7

linux 报cpio: read异常处理

 此问题一般在安装rpm包时出现,一般表示不是一个完整的包

如何获取文件的最后修改时间及用户名?

 # stat -c "%U %y  xsb90.txt

如何管理字体库?

yum install -y fontconfig mkfontscale

然后复制windows下的simsun.ttc到/usr/share/fonts/  目录下  宋体和新宋体
windows使用的是ttf,linux用的是ttc

crontab 定时调度不执行,怎么办?

1. 查看配置是否正确
2. 查看权限是否为可执行
3. 查看/var/spool/clientmqueue下的文件

php 错误

 php -i |grep Client 查看是否一致

 yum install remove php-mysql
 yum inistall php-mysqlnd

 php artisan key:generate
 使用 php artisan key:generate 命令时可能会报错
 解决办法 使用git 命令行打开将 .env.example重新命名为 .env
 mv .env.example .env
 然后重新执行 php artisan key:generate
 将生成的key复制到config/app.php替换的APP_KEY键值

 始终没找到app.php文件,根据提示的信息,大概知道是用户或者权限不对,将apache启动用户和项目文件的用户调整为同一个,调整合适的读写权限,重新启动后解决。

windows下如何查看文件的md5?

 certutil -hashfile filename MD5
 certutil -hashfile filename SHA1
 certutil -hashfile filename SHA256

不能通过brctl删除flannel?

 ifconfig flannel.1 down
 brctl delbr flannel.1

 报:can't delete bridge flannel.1:Operation not permitted
 原因:正确的操作删除veth接口的方法,veth接口不是桥接器,所以当然你不能用brctl删除它

 解决方法:
 ip link delete flannel.1

lvm扩容

 * 创建新盘
   /dev/sdb

 * 查看vg以及lv
   vgdisplay
   lvdisplay

 * 从设备创建盘符
   /dev/sdb  ---> /dev/sdb1

 * 创建pv
   pvcreate /dev/sdb1

   也可以不创建pv直接对裸盘进行操作

 * 扩容vg
   vgextend systemvg /dev/sdb1

 * 扩容lv
   lvextend -L +50G /dev/systemvg/optlv

 * 生效
   resize2fs /dev/systemvg/optlv

   如果系统盘是xfs,增加执行如下命令:
   xfs_growfs /dev/systemvg/optlv

lvm 创建

 * 创建pv卷
   pvcreate /dev/vdb1

 * 查看pv卷
    pvs

 * 创建vg卷
   vgcreate datavg /dev/vdb1/

 * 查看vg卷
    vgs 

 * 创建逻辑卷 -L 指定分区大小 -n 指定lvm名称
   lvcreate -L 50G -n lv1  datavg

 * 使用mkfs.ext4命令在逻辑卷lvmServer上创建ext4文件系统
   mkfs.xfs /dev/datavg/lv1

 * 挂在分区到本地目录/server
   mount /dev/datavg/lv1 /server/

 * 修改fstab 开机自动挂载
   /dev/datavg/lv1        /data                    xfs    defaults         0 0

vmware扩展分区

 关机状态下,编辑此虚拟机
 扩展,调整磁盘空间

 点击确认,会有提示

 开机,进入系统,发现磁盘空间没变化;

 fdisk /dev/sda
 m
 n
 p
 一般默认为:3  默认即可

 最后按:q  退出

 mkfs.ext4 /dev/sda3
 pvcreate /dev/sda3
 partprobe
 lvdisplay  查看要扩展的lv的所在vg(我的为zstack)

 vgextend zstack /dev/sda3
 lvextend -L +39.9 /dev/zstack/root  (如果此命令不行执行: lvextend -l +100%FREE /dev/zstack/root)
 xfs_growfs /dev/zstack/root

 df -h

如何清理dns记录?

 * rndc flush
  如果不能找到rndc命令:安装bind包

 启动本地DNS 缓存服务即可:
  # service nscd start
 反之
  # service nscd stop

possible memory allocation deadlock in kmem_zone_alloc?


如果有rpm包找不到怎么办?

  http://rpm.pbone.net/ 网站可以查找搜索需要的包