分类: 技术

  • 笔记本安装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

  • aliyundrive-webdav

    docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 8080:8080 \
      -v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ \
      -e REFRESH_TOKEN='your refresh token' \
      -e WEBDAV_AUTH_USER=admin \
      -e WEBDAV_AUTH_PASSWORD=admin \
      messense/aliyundrive-webdav
  • Hyper-V 共享式网络链接 端口映射

    远程路由访问我配置了很久都不成功,经过多方搜索,现面的命令能实现端口映射
    一、查询端口映射情况
    
    netsh interface portproxy show v4tov4
    查询这个IP所有的端口映射。
    netsh interface portproxy show v4tov4|find "192.168.1.1" 
    二、增加一个端口映射
    netsh interface portproxy add v4tov4 listenport=外网端口 listenaddress=主IP connectaddress=私网IP connectport=私网IP端口
    例如:
    netsh interface portproxy add v4tov4 listenport=8888 listenaddress=118.123.13.180 connectaddress=192.168.1.10 connectport=2222
    三、删除一个端口映射
    netsh interface portproxy delete v4tov4 listenaddress=主IP listenport=外网端口
    例如:
    netsh interface portproxy delete v4tov4  listenaddress=118.123.13.180 listenport=8888
    
    在关闭Hyper-V虚拟机的情况下,选择Hyper-V管理界面中的“虚拟交换机管理器”
    在弹出的对话框中“新建虚拟网络交换机”,选择“内部”,点击“创建虚拟交换机”。
    在IP网卡 切换到“共享”标签下,勾选“允许其他网络用户通过此计算机的Internet连接来连接”并在下方“家庭网络连接”中选择刚刚创建的虚拟交换机——vEthernet (Hyper-V Switch),点击“确认
  • 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打开和查看。

  • 安装 docker-compose

    1. 最新发行的版本地址:https://github.com/docker/compose/releases
    2. 运行以下命令以下载Docker Compose的当前稳定版本:
    sudo curl -L "https://github.com/docker/compose/releases/download/1.27.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    将可执行权限应用于二进制文件:
    sudo chmod +x /usr/local/bin/docker-compose
    注意:如果命令docker-compose在安装后失败,请检查您的路径。您还可以创建指向/usr/bin或路径中任何其他目录的符号链接。
    
    测试安装
    docker-compose --version
    bash 命令补齐
    curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
    卸载docker-compose
    直接移除二进制包即可
    
    sudo rm /usr/local/bin/docker-compose