分类: linux

  • Centos 7 修改开机等待时间

    vim /etc/default/grub

    修改timeout =2

    vim /boot/grub2/grub.cfg

    修改centos/grub.cfg中的以下部分内容后重启CentOS7,OK!

      if [ x$feature_timeout_style = xy ] ; then
        set timeout_style=menu
        set timeout=2
        # Fallback normal timeout code in case the timeout_style feature is
        # unavailable.
      else
        set timeout=2
      fi

  • 笔记本安装Centos系统设置盒盖不休眠

    1.找到CentOS7下对应配置文件,目录:/etc/systemd/logind.conf,使用vi命令打开

    [root@localhost ~]# vi /etc/systemd/logind.conf

    2.配置文件中找到我们要修改的配置项:

    HandlePowerKey 按下电源键后的行为,默认power off

    HandleSleepKey 按下挂起键后的行为,默认suspend

    HandleHibernateKey 按下休眠键后的行为,默认hibernate

    HandleLidSwitch 合上笔记本盖后的行为,默认suspend

    我们把HandleLidSwitch后面的suspend修改为lock,即

    HandleLidSwitch=lock

    注意,如果配置项前面有#号,要删掉,#是注释的意思

    3.重启systemd-logind服务:

    [root@localhost ~]# systemctl restart systemd-logind

    其中,后面的配置项的可选范围为:

    ignore 忽略,跳过
    power off 关机
    eboot 重启
    halt 挂起
    suspend shell内建指令,可暂停目前正在执行的shell。若要恢复,则必须使用SIGCONT信息。所有的进程都会暂停,但不是消失(halt是进程关闭)
    hibernate 让笔记本进入休眠状态
    hybrid-sleep 混合睡眠,主要是为台式机设计的,是睡眠和休眠的结合体,当你选择Hybird时,系统会像休眠一样把内存里的数据从头到尾复制到硬盘里 ,然后进入睡眠状态,即内存和CPU还是活动的,其他设置不活动,这样你想用电脑时就可以快速恢复到之前的状态了,笔记本一般不用这个功能。
    lock 仅锁屏,计算机继续工作。

  • CentOS 7下通过SSHFS挂载sftp资源

    环境

    CentOS7
    SSHFS:2.10

    安装

    安装装EPEL源

    yum install epel-release
    

    安装sshfs

    yum install sshfs
    

    配置

    使用如下命令进行挂载

    sshfs -p 22 root@192.168.1.21:/ /app1/
    #输入密码后确认挂载
    
    #允许其他用户访问
    sudo sshfs -o allow_other tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint  
    
    #无密码登录
    sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint 
    
    设置开机自启动挂载
    touch auto.sh
    写入开机启动脚本: 
    echo 远程主机密码 | sshfs 远程主机用户@远程ip:/OA/RP/  /root/test -o workaround=rename -o password_stdin -o allow_other
    chmod +x auto.sh
    vim /etc/rc.d/rc.local
    写入  sh /home/autosu.sh
    chmod +x  /etc/rc.d/rc.local   //开机自动启动    
    
    #去挂载目录查看
    cd /app1/
    ll
    #查看挂载情况
    
    
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    如需取消:

    #umount掉挂载点即可
    umount /app1
    

    开机自动挂载方案:

    1. 在系统启动时挂载
    crontab -e
    ------------------------------------------
    @reboot sh mountsshfs.sh
    
    vim mountsshfs.sh
    ------------------------------------------
    #! /bin/sh
    while true
    do 
        ping -c1 -w1 ssh_server_ip > /dev/null && break
    done
    sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 user@192.168.200.10:/pathto/dir /home/username/mount/dir
    
    2.利用/etc/fstab
    user@host:/remote/folder /mount/point  fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/user/.ssh/id_rsa,allow_other,reconnect 0 0
    参数
    noauto 不在boot时mount
    x-systemd.automount 配置按需挂载
    _netdev 避免“No such device”错误,指明sshfs是一个网络设备而非块设备
    
    注意:在完成对/etc/fstab的修改后,需要执行如下命令
    systemctl daemon-reload
    systemctl restart <target>
    这里 <target>可以使用如下命令查询
    systemctl list-unit-files --type automount

    注意事项

    1. 挂载在重启后失效
    2. 一般来说,linux系统都默认安装了sftp,挂载期间基本不用考虑sftp服务。
    3. Windows下可使用其他第三方软件开启sftp服务,或通过smb进行挂载 [CentOS]CentOS 7下通过mount cifs挂载smb资源
  • linux挂载webdav为本地路径

    1.安装davfs2

    Ubuntu/Debian下

    apt-get install davfs2
    

    CentOS下

    yum install davfs2
    

    创建目录并挂载

    mkdir /alidrive
    mount -t davfs http://172.17.0.6:8080/ /alidrive
    

    如果遇到文件夹全是问号的情况,说明你之前挂载的目录非正常断开
    修复方法如下,即可恢复

    sudo umount -l /alidrive 
    

    中途环境重新创建了容易,导致ip变为172.17.0.2

  • tmux

    Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。

    补充说明

    使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;

    功能

    • 提供了强劲的、易于使用的命令行界面。
    • 可横向和纵向分割窗口。
    • 窗格可以自由移动和调整大小,或直接利用四个预设布局之一。
    • 支持 UTF-8 编码及 256 色终端。
    • 可在多个缓冲区进行复制和粘贴。
    • 可通过交互式菜单来选择窗口、会话及客户端。
    • 支持跨窗口搜索。
    • 支持自动及手动锁定窗口。

    安装

    # 在 Mac OS 中,通过 brew 安装
    brew install tmux
    # ubuntu版本下直接apt-get安装
    sudo apt-get install tmux
    # centos7版本下直接yum安装
    yum install -y tmux
    
    # centos6版本需要编译安装
    yum install libevent libevent-devel ncurses-devel
    tar -zvxf tmux-2.3.tar.gz # (提前下载:wget https://github.com/tmux/tmux/releases/download/2.3/tmux-2.3.tar.gz)
    cd tmux-2.3
    ./configure
    make && make install
    

    快捷键使用说明

    Ctrl+b 激活控制台;此时以下按键生效
    系统操作 ? 列出所有快捷键;按q返回
    d 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话
    D 选择要脱离的会话;在同时开启了多个会话时使用
    Ctrl+z 挂起当前会话
    r 强制重绘未脱离的会话
    s 选择并切换会话;在同时开启了多个会话时使用
    : 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器
    [ 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出
    ~ 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息
    窗口操作 c 创建新窗口
    & 关闭当前窗口
    数字键 切换至指定窗口
    p 切换至上一窗口
    n 切换至下一窗口
    l 在前后两个窗口间互相切换
    w 通过窗口列表切换窗口
    , 重命名当前窗口;这样便于识别
    . 修改当前窗口编号;相当于窗口重新排序
    f 在所有窗口中查找指定文本
    面板操作 将当前面板平分为上下两块
    % 将当前面板平分为左右两块
    x 关闭当前面板
    ! 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板
    Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小
    Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小
    Space 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled
    q 显示面板编号
    o 在当前窗口中选择下一面板
    方向键 移动光标以选择面板
    { 向前置换当前面板
    } 向后置换当前面板
    Alt+o 逆时针旋转当前窗口的面板
    Ctrl+o 顺时针旋转当前窗口的面板

    1)进入tmux面板后,一定要先按ctrl+b,然后松开,再按其他的组合键才生效。 2)常用到的几个组合键:

    ctrl+b ?        #     显示快捷键帮助
    ctrl+b 空格键   #     采用下一个内置布局,这个很有意思,在多屏时,用这个就会将多有屏幕竖着展示
    ctrl+b !        #     把当前窗口变为新窗口
    ctrl+b  "       #     模向分隔窗口
    ctrl+b %        #     纵向分隔窗口
    ctrl+b q        #     显示分隔窗口的编号
    ctrl+b o        #     跳到下一个分隔窗口。多屏之间的切换
    ctrl+b 上下键   #    上一个及下一个分隔窗口
    ctrl+b C-方向键 #    调整分隔窗口大小
    ctrl+b &        #    确认后退出当前tmux
    ctrl+b [        #    复制模式,即将当前屏幕移到上一个的位置上,其他所有窗口都向前移动一个。
    ctrl+b c        #    创建新窗口
    ctrl+b n        #    选择下一个窗口
    ctrl+b l        #    最后使用的窗口
    ctrl+b p        #    选择前一个窗口
    ctrl+b w        #    以菜单方式显示及选择窗口
    ctrl+b s        #    以菜单方式显示和选择会话。这个常用到,可以选择进入哪个tmux
    ctrl+b t        #    显示时钟。然后按enter键后就会恢复到shell终端状态
    ctrl+b d        #    脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话
    

    参考资料

    • tmux 官网下载地址:http://tmux.github.io/
  • Linux查看网络流量

    作为一个非职业运维,不时需要查看Linux服务器上的网络流量状况。本文介绍几个常用的Linux查看网络流量命令,并简要介绍其用法。部分命令系统已经内置,某些命令则需要从软件仓库或者自行编译安装,本文以CentOS系统为例介绍软件安装方法。

    一、查看总流量

    ip

    ip 命令来自 iproute2util 包,是查看、配置网络/路由的工具。作为 ifconfig 的替代品,ip 命令功能更强大,用法更语义化。

    ip命令在大多数系统上都已经默认安装,也可通过 yum install -y iproute 安装。ip 的 “-s -h” 参数查看各网卡的总流量,下图是 ip -s -h link 的输出结果:

    nload

    nload 命令可以查看各个网络设备的当前网络速率,也会展示流经设备的总流量。

    nload 来自EPEL软件库,CentOS安装命令为:yum install -y epel-release && yum install -y nload。查看eth0网卡流量 nload eth0命令输出如下:

    PS:netstat -s 和 ifconfig -s 都可以查看收发的总包(netstat分协议给出),但不会给出字节数据。

    二、查看实时网速网速

    nload 命令可以输出当前网速,上面已经介绍过,本节不再赘述。

    dstat

    dstat 是一个用来替换vmstatiostatnetstatnfsstatifstat的全能系统信息统计工具,支持数据实时刷新,输出直观易懂。

    dstat 默认没有安装,安装命令为:yum install -y dstatdstat -tnf 1 10 输出接下来10秒内每秒的网络数据:

    sar

    sar 是System Activity Report的缩写,是一款全面的Linux系统运行状态统计和性能分析工具,可从磁盘IO、CPU负载、内存使用等多个维度对系统活动进行报告。

    sar 命令来自 sysstat 包,可使用这个命令安装:yum install -y sysstatsar -n TCP 1 10可查看接下来10秒内的tcp数据:

    三、查看连接/进程流量

    ss/netstat

    ss 和 netstat 是查看活动链接/监听端口的常用命令。ss 是 netstat 的替代,性能更好,建议使用。

    ss 是 iproute2util 包的一部分,因此在大多数系统上默认安装,也可通过yum install -y iproute安装。netstat 来自 net-tools 包,新版系统上需要自行安装:yum install -y net-tools

    下图是用ss查看tcp连接的输出:

    iftop

    iftop 是一款实时流量监控工具,可以查看每个连接的实时速率。

    iftop 来自EPEL软件库,安装命令是:yum install -y epel-release && yum install -y iftopiftop -nN -i eth0实时查看eth0网卡的各个连接和网速:

    nethogs

    nethogs 是为了查看单个进程流量而设计的工具,按照进程进行带宽分组。

    nethogs 来自EPEL软件库,安装命令是:yum install -y epel-release && yum install -y nethogsnethogs -d 2 eth0 每2秒刷新流经eth0网卡的进程流量信息:

    其他

    tcpdump可以用来抓包,保存的数据可以用wireshark打开和查看。

  • mkfs 格式化磁盘

    指令:mkfs

    使用权限 : 超级使用者
    使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks] [-L Lable]
    说明 : 建立 linux 档案系统在特定的 partition 上

    参数 :

    device : 预备检查的硬盘 partition,例如:/dev/sda1

    -V : 详细显示模式
    -t : 给定档案系统的型式,Linux 的预设值为 ext2
    -c : 在制做档案系统前,检查该partition 是否有坏轨
    -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
    block : 给定 block 的大小
    -L:建立lable
     
    补充说明:
    mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。例如,若在"-t" 参数中指定ext2,则
    mkfs会调用mke2fs来建立文件系统.使用时如省略指定【块数】参数,mkfs会自动设置    适当的块数.

    例1

    a,把该设备格式化成ext3文件系统 
    
     [root@linux ~]# mkfs -t ext3  /dev/sda6
    
    b,此命令在 /dev/hd3 设备上创建了一个空的文件系统,将卷序列号设为 vol001,文件系统名为 works。新的文件系统占用了整个设备。文件系统具有缺省分段大小(4096 字节)和缺省 nbpi 比率(4096)       
    [root@linux ~]# mkfs -lworks -vvol001 /dev/hd3
    
    c,在 /dev/lv01 设备上创建一个空的 4MB 的文件系统,其分段大小为 512 字节,且每 2048 个字节为一个 i-node[root@linux ~]# mkfs -s 4M -o nbpi=2048, frag=512 /dev/lv01    
    
    d,创建了一个启用磁盘大文件的 JFS 文件系统,并且分配组大小为 64 兆字节,磁盘的每 131072 字节为一个 inode。文件系统的大小将成为逻辑卷 lv01 的大小[root@linux ~]# mkfs -V jfs -o nbpi=131072,bf=true,ag=64 /dev/lv01   
    
  • fdisk 分区格式化

    disk

    相关命令:暂无相关命令

    fdisk磁盘分区命令-v
        打印 fdisk 的版本信息并退出.
    -l
        列出指定设备的分区表信息并退出。 如果没有给出设备,那么使用那些在 /proc/partitions (如果存在)提到的.
    -u
        以扇区数而不是以柱面数的形式显示分区表中各分区的信息. -s 分区 将分区的 大小 (单位为块)信息输出到标准输出
    [root@localhost ~]# fdisk -l      
    
    Disk /dev/sda: 500.1 GB, 500107862016 bytes
    255 heads, 63 sectors/track, 60801 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          17      136552   83  Linux
    /dev/sda2              18         279     2104515   82  Linux swap / Solaris
    /dev/sda3             280       60801   486142965    5  Extended
    /dev/sda5             280       60801   486142964+  83  Linux
  • docker centos7 安装sshd

    1. 拉取镜像

    docker pull cenntos:7
    
    1. 运行容器并且附加端口映射

    docker run -itd -p 22:22 --name centos7 centos:7 
    

    3.进入到容器

    docker attach 容器Id
    

    4.安装系列工具

    yum -y update
    yum install passwd openssl openssh-server vim -y
    

    5.启动sshd服务

    /usr/sbin/sshd -D &
    

    6.报错如下

    Could not load host key: /etc/ssh/ssh_host_rsa_key
    Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    Could not load host key: /etc/ssh/ssh_host_ed25519_key
    

    7.解决错误并且重新运行

    ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N '' 
    ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
    ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
    

    8.修改配置文件

    //UsePAM yes 改为 UsePAM no
    //UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no
    sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
    sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
    
    1. 重新运行sshd服务

    /usr/sbin/sshd -D &

    10.修改密码

    passwd root

    11.使用putty或者xshell或者finalshell就可以连接登陆使用了。

    网络工具安装:

    yum search ifconfig

    通过yum search 这个命令我们发现ifconfig这个命令是在net-tools.x86_64这个包里,接下来我们安装这个包就行了

    运行 yum install net-tools   就OK 了

    yum install net-tools

    即可显示当前服务器上所有端口及进程服务,与grep结合可查看某个具体端口及服务情况··

    netstat -ntlp   //查看当前所有tcp端口·

    netstat -ntulp |grep 80   //查看所有80端口使用情况·

    netstat -an | grep 3306   //查看所有3306端口使用情况·

    ssh 命令不识别:

    yum -y install openssh-clients