分类: 技术

  • deepin 设置远程自动重启正常自动登录

    1.账号设置 自动启动 无密码登录

    Ubuntu笔记本合上盖子后无法远程重启的解决方法

    2.

     方法步骤:

      1、首先检查电源选项,合上盖子选项设为“Do Nothing”。

      2、修改login manager 。

      打开/etc/systemd/logind.conf

      将:

      #HandleLidSwitch=suspend

      修改为:

      HandleLidSwitch=ignore

      重启system manager:

      systemctl restart systemd-logind

  • Centos6和Centos7系统运行级别

    Centos7:

    启动级别:

    1. 00:系统的关机级别,init 0 进入到关机状态                   poweroff.target
    2. 01:系统的单用户模式  用于修复系统 或 重置密码信息      没有网络        rescue.target
    3. 02:系统的多用户模式     没有网络               multi-user.target
    4. 03:系统的多用户模式,正常系统运行级别多用户模式级别     有网络         multi-user.target
    5. 04:预留级别             multi-user.target
    6. 05:图形化界面级别           graphical.target
    7. 06:系统的重启级别           reboot.target

    Centos6

    启动级别:

    1. 00:系统的关机级别,init 0 进入到关机状态
    2. 01:系统的单用户模式  用于修复系统 或 重置密码信息      没有网络
    3. 02:系统的多用户模式     没有网络
    4. 03:系统的多用户模式,正常系统运行级别多用户模式级别     有网络
    5. 04:预留级别
    6. 05:图形化界面级别
    7. 06:系统的重启级别

    1、查看系统当前运行级别

    Centos6:

        #runlevel     或者       #cat  /etc/inittab

    Centos7:

         #systemctl get-default

    2、修改系统运行级别

    Centos6:

           #   vim   /etc/inittab (永久调整)   或者    init  运行级别数值   (临时调整)   

    Centos7:

            #  systemctl    set-default    运行级别

    如:systemctl set-default multi-user.target

    3、运行级别文件信息

    Centos6: #/etc/inittab

    Centos7:#ls -l /usr/lib/systemd/system/runlevel*target

    4、临时切换系统使用:

    图形–> 文本

    # systemctl isolate multi-user.target

    文本–>图形

    # systemctl isolate graphical.target

  • Ubuntu下init启动级别解释

    在Ubuntu装显卡驱动的时候,会使用sudo init 3这条命令,这样就省去了sudo service lightdm stop,那么原因是什么呢?解释如下:

    运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

    运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

    运行级别2:多用户状态(没有NFS)

    运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

    运行级别4:系统未使用,保留

    运行级别5:X11控制台,登陆后进入图形GUI模式

    运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

  • deepin linux怎么开机进入命令行(文本模式)

    deepin linux下如果希望开机就进入文本命令行模式可以参考本经验。

    方法/步骤

    1. 首先,同时按CTRL+ALT+T键,打开终端。
    2. deepin linux使用的是lightdm启动器,它是默认开机启动的。
    3. 通过执行如下命令将其禁止开机自启动即可。sudo systemctl disable lightdm
    4. 再查看开机启动状态已经关掉了。
    5. 这时候重启一下电脑。sudo shutdown -r now
    6. 再次开机如下图所示。
    7. 输入用户名和密码,就可以进入命令行模式使用了deepin linux了。
  • ubuntu找不到chkconfig命令

    在Ubuntu 中使用 chkconfig命令报错

    chkconfig: command not found
    

    问题原因
    Ubuntu 中 chkconfig 已经被 sysv-rc-conf 所替代

    解决办法:

    apt-get update
    apt-get install sysv-rc-conf
    sysv-rc-conf --list
    
    

    在进行安装sysv-rc-conf 有可能会出现Unable to locate package sysv-rc-conf
    解决办法:

    第一步:打开sources.list文件
    vi /etc/apt/sources.list
    第二步:在sources.list文件最后一行中添加如下一列文本
    deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
    第三步:更新apt-get
     apt-get update
     第四步:重新安装sysv-rc-conf
     apt-get install sysv-rc-conf
     第五步:查看服务情况
    

    在这里插入图片描述
    完成

    文章知识点与官方

  • CentOS 8运行其它环境编译的curl报77错误解决方法

    此问题来源于经过Github Actions编译出来的curl执行程序,由于actions默认的构建环境都是Ubuntu的,编译构建出来的新版本curl放到CentOS 8上运行时,会提示类似如下内容的错误(仅限需要用到ssl证书的协议,如https):

    12345 curl: (77) error setting certificate verify locations:    CAfile: /etc/ssl/certs/ca-certificates.crt    CApath: none ... curl: (77) Error reading ca cert file /etc/ssl/certs/ca-certificates.crt - mbedTLS: (-0x3E00) PK - Read/write of file failed

    按照网上搜到的说法,重新yum安装ca-certificates之类的都不起作用,查看/etc/ssl/certs目录,发现有如下内容:

    lrwxrwxrwx 1 root root 49 Sep 22 21:54 ca-bundle.crt -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
    lrwxrwxrwx 1 root root 55 Sep 22 21:54 ca-bundle.trust.crt -> /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt

    于是想到是不是构建和运行系统环境配置不同所致,于是建立软连接

    ln -s /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt ./ ca-certificates.crt

    再次执行curl访问https网站,问题解决!

    PS: 后续在K2P的OpenWRT路由器上试验curl时也遇到了类似问题,不过这次可没有/etc/pki/ca-trust里现成的证书了,参考其它OP系统解决此问题的方法,发现都是用“opkg install ca-bundle ca-certificates”来从软件源安装证书,这个貌似在K2P的官方固件上是行不通的,于是参考这里:https://www.myflv.cn/course/87.html,直接从curl官网: http://curl.haxx.se/ca/cacert.pem 下载ca证书,并复制到上面提到的同样位置:/etc/ssl/certs/ca-certificates.crt 即可。

  • docker overlay2占用大量磁盘空间处理方法

    简单办法

    多看了一下资料,发现可以使用 docker system prune来自动清理空间,参考下面:

    • 该指令默认会清除所有如下资源:
      • 已停止的容器(container)
      • 未被任何容器所使用的卷(volume)
      • 未被任何容器所关联的网络(network)
      • 所有悬空镜像(image)。
    • 指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
    • 添加 -a 或 –all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
    • 可以添加 -f 或 –force 参数用以忽略相关告警确认信息。
    • 指令结尾处会显示总计清理释放的空间大小。
      https://yq.aliyun.com/articles/272173 )

    另外,使用下面命令可以查看docker所占的硬盘大小,如:
    在这里插入图片描述

    使用docker,基本上把官方文档的入门教程看完,就能用了。
    再自己打个包试试,基本上就OK了。后面遇到问题再深入,都可以。

  • linux命令-watch

    watch

    相关命令:暂无相关命令

    watch 可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令

    watch[参数][命令]

    主要参数:

    -n 或--interval  watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
    -d 或--differences  用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
    -t 或-no-title  会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
    -h 或--help 查看帮助文档

    例1

    [root@localhost ~]# watch -n 10 netstat -tpnl    #每10秒显示一下,已连接的TCP连接
    
    [root@localhost ~]# watch -d ls -l  #高亮显示ls -l
    
    

    例2

    [root@rudder ~]# watch 'ps aux|grep httpd'  #比较常用的查看某个进程,自动2秒刷新。
    
    Every 2.0s: ps aux|grep httpd                                                              Wed Jun  5 16:15:20 2013
    
    root     16581  0.0  0.3  37112 18728 ?        Ss   May28   0:01 /usr/sbin/httpd
    apache   28029  1.3  0.3  46300 19636 ?        S    16:04   0:08 /usr/sbin/httpd
    apache   29348  2.0  0.3  50804 24064 ?        S    16:10   0:05 /usr/sbin/httpd
    apache   29409  1.3  0.3  46404 19748 ?        S    16:12   0:02 /usr/sbin/httpd
    apache   29412  1.9  0.4  51892 25152 ?        S    16:12   0:03 /usr/sbin/httpd
    apache   29414  1.4  0.4  51720 25056 ?        S    16:12   0:02 /usr/sbin/httpd
    apache   29418  1.5  0.4  51892 25176 ?        S    16:12   0:02 /usr/sbin/httpd
    apache   29422  1.5  0.3  46408 19760 ?        S    16:12   0:02 /usr/sbin/httpd
    apache   29428  1.5  0.3  49952 23992 ?        S    16:12   0:02 /usr/sbin/httpd
    apache   29500  1.3  0.3  49280 22596 ?        S    16:13   0:01 /usr/sbin/httpd
    apache   29515  1.1  0.3  46300 19512 ?        S    16:13   0:01 /usr/sbin/httpd
    apache   29590  0.0  0.1  37112  9688 ?        S    16:14   0:00 /usr/sbin/httpd
    apache   30148  5.7  0.3  46296 19512 ?        S    16:15   0:00 /usr/sbin/httpd        
    root     30177  0.0  0.0   4580   976 pts/1    S+   16:15   0:00 sh -c ps aux|grep httpd
    
    
  • Linux服务器被入侵后,我们该如何排查隐患

    1、用户信息文件/etc/passwd

    ps:无密码只允许本机登陆,远程不允许登陆

    2、影子文件:/etc/shadow

    3、查看当前登录用户及登录时长

    4、排查用户登录信息

    1.查看最近登录成功的用户及信息

    2.查看最近登录失败的用户及信息:

    3.显示所有用户最近一次登录信息:

    在排查服务器的时候,黑客没有在线,可以使用last命令排查黑客什么时间登录的有的黑客登录时,会将/var/log/wtmp文件删除或者清空,这样我们就无法使用last命令获得有用的信息了。

    在黑客入侵之前,必须使用chattr +a/var/log/wtmp文件进行锁定,避免被黑客删除.

    5、sudo用户列表

    入侵排查:

    通过.bash\_history文件查看帐号执行过的系统命令:

    打开 /home 各帐号目录下的 .bash_history,查看普通帐号执行的历史命令。

    为历史的命令增加登录的 IP 地址、执行命令时间等信息:

    注意:历史操作命令的清除:history -c

    该操作并不会清除保存在文件中的记录,因此需要手动删除.bash\_profile文件中的记录

    检查端口连接情况:

    使用 ps 命令,分析进程,得到相应pid号:

    查看 pid 所对应的进程文件路径:

    分析进程:

    查看进程的启动时间点:

    根据pid强行停止进程:

    注意:如果找不到任何可疑文件,文件可能被删除,这个可疑的进程已经保存到内存中,是个内存进程。这时需要查找PID 然后kill掉。

    检查开机启动项:

    系统运行级别示意图:

    查看运行级别命令:

    开机启动配置文件:

    启动Linux系统时,会运行一些脚本来配置环境——rc脚本。在内核初始化并加载了所有模块之后,内核将启动一个守护进程叫做initinit.d。这个守护进程开始运行/etc/init.d/rc中的一些脚本。这些脚本包括一些命令,用于启动运行Linux系统所需的服务。

    开机执行脚本的两种方法:

    (1)在/etc/rc.local的exit 0语句之间添加启动脚本。脚本必须具有可执行权限

    (2)用update-rc.d命令添加开机执行脚本

    1、编辑修改/etc/rc.local

    2、update-rc.d:此命令用于安装或移除System-V风格的初始化脚本连接。脚本是存放在/etc/init.d/目录下的,当然可以在此目录创建连接文件连接到存放在其他地方的脚本文件。

    此命令可以指定脚本的执行序号,序号的取值范围是 0-99,序号越大,越迟执行。

    当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc_.d文件中建立软链接即可。

    语法:update-rc.d 脚本名或服务 <remove|defaults|disable|enable>

    开机即执行。

    入侵排查:

    计划任务排查:

    需要注意的几处利用cron的路径:

    上面的命令实际上是列出了/var/spool/cron/crontabs/root该文件的内容:

    • /etc/crontab只允许root用户修改
    • /var/spool/cron/存放着每个用户的crontab任务,每个任务以创建者的名字命名
    • /etc/cron.d/将文件写到该目录下,格式和/etc/crontab相同
    • 把脚本放在/etc/cron.hourly//etc/cron.daily//etc/cron.weekly//etc/cron.monthly/目录中,让它每小时/天/星期/月执行一次。

    小技巧:

    入侵排查:重点关注以下目录中是否存在恶意脚本;

    入侵排查:

    查询已安装的服务:

    RPM 包安装的服务:

    源码包安装的服务:

    异常文件检查:

    按照几种方式查找修改的文件:

    (1)按照名称

    (2)按照文件大小

    (3)按照时间查找

    (4)根据属主和属组查找:

    (5)按照CPU使用率从高到低排序:

    (6)按照内存使用率从高到低排序:

    补充:

    1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性。

    2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
    可以使用find命令来查找,如find /opt -iname “*” -atime 1 -type f 找出 /opt 下一天前访问过的文件。

    3、针对可疑文件可以使用 stat 进行创建修改时间。

    系统日志检查:

    日志默认存放位置:/var/log/

    必看日志:secure、history

    查看日志配置情况:more /etc/rsyslog.conf

    日志分析技巧:


    内容很长,还有些枯燥,但是希望大家可以慢慢看完,要是有哪里需要补充的,也随时欢迎大家评论留言,好的,下课!!

  • ubuntu下 使用AB做压力测试

    近刚开始接触apache大数据下数据优化,讲一下apache 下ab压力测试工具。

    程序“ab”尚未安装。 您可以使用以下命令安装:

    apt-get install apache2-utils 
    yum -y install httpd-tools  

    以下是ab –help

    sage: ab [options] [http[s]://]hostname[:port]/path
    Options are:
        -n requests     Number of requests to perform
        -c concurrency  Number of multiple requests to make at a time
        -t timelimit    Seconds to max. to spend on benchmarking
                        This implies -n 50000
        -s timeout      Seconds to max. wait for each response
                        Default is 30 seconds
        -b windowsize   Size of TCP send/receive buffer, in bytes
        -B address      Address to bind to when making outgoing connections
        -p postfile     File containing data to POST. Remember also to set -T
        -u putfile      File containing data to PUT. Remember also to set -T
        -T content-type Content-type header to use for POST/PUT data, eg.
                        'application/x-www-form-urlencoded'
                        Default is 'text/plain'
        -v verbosity    How much troubleshooting info to print
        -w              Print out results in HTML tables
        -i              Use HEAD instead of GET
        -x attributes   String to insert as table attributes
        -y attributes   String to insert as tr attributes
        -z attributes   String to insert as td or th attributes
        -C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)
        -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
                        Inserted after all normal header lines. (repeatable)
        -A attribute    Add Basic WWW Authentication, the attributes
                        are a colon separated username and password.
        -P attribute    Add Basic Proxy Authentication, the attributes
                        are a colon separated username and password.
        -X proxy:port   Proxyserver and port number to use
        -V              Print version number and exit
        -k              Use HTTP KeepAlive feature
        -d              Do not show percentiles served table.
        -S              Do not show confidence estimators and warnings.
        -q              Do not show progress when doing more than 150 requests
        -l              Accept variable document length (use this for dynamic pages)
        -g filename     Output collected data to gnuplot format file.
        -e filename     Output CSV file with percentages served
        -r              Don't exit on socket receive errors.
        -h              Display usage information (this message)
        -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)
        -f protocol     Specify SSL/TLS protocol
                        (SSL3, TLS1, TLS1.1, TLS1.2 or ALL)
    
    -n :总共的请求执行数,缺省是1; -c: 并发数,缺省是1; -t:测试所进行的总时间,秒为单位,缺省50000s -p:POST时的数据文件 -w: 以HTML表的格式输出结果