关于linux运维:Linux系统使用cpulimit对CPU使用率进行限制

介绍cpulimit 是一个限度过程的 CPU 使用率的工具(以百分比示意,而不是以 CPU 工夫示意)。 当不心愿批处理作业占用太多 CPU 时,管制批处理作业很有用。 指标是避免过程运行超过指定的工夫比率。 它不会更改 nice 值或其余调度优先级设置,而是更改实在的 CPU 使用率,而且可能动静且疾速地适应整个零碎负载。 应用的 CPU 数量的管制是通过向过程发送 SIGSTOP 和 SIGCONT POSIX 信号来实现的。 指定过程的所有子过程和线程将共享雷同百分比的 CPU。 源装置【举荐】Centos: yum install cpulimitDebian / Ubuntu: apt-get install -y cpulimit`编译装置cd /tmpwget 'https://sunpma.com/other/oss/cpulimit-1.1.tar.gz'tar cpulimit-1.1.tar.gzcd cpulimit-1.1makecp cpulimit /usr/local/sbin/rm -rf cpulimit*应用实例限度程序名为 xmrig的程序仅应用 60%的CPU使用率,并在后盾始终运行; cpulimit -e xmrig -l 60 -b限度过程号为 10086的程序仅应用 60%的CPU利用率,并在后盾始终运行; cpulimit -p 10086 -l 60 -b限度绝对路径下的软件仅应用 60%的CPU利用率,并在后盾始终运行; cpulimit -e /usr/local/nginx/sbin/nginx -l 60 -b敞开cpulimit后盾过程(勾销所有限度) kill $(pidof cpulimit)应用办法-p--pid=Npid of the process过程的PID-e--exe=FILEname of the executable program file可执行程序文件名-P--path=PATHabsolute path name of the过程的绝对路径名-b--backgroundrun in background后盾运行-l--limit=Npercentage of cpu allowed from 1 up容许的CPU百分比,最低为1%-z--lazyexit if there is no suitable target process如果指标过程退出或无指标过程则终止-h--helpdisplay this help and exit显示帮忙并退出注意事项限度CPU的百分比依照理论的CPU数量而定,比方单核最高为100%,双核最高为200%,三核最高为300%,以此类推即可;ROOT用户能够限度所有的过程,普通用户只能限度用户有权限治理的过程;以上就是 cpulimit 这个小工具的一些根底用法和进阶用法,心愿对大家有所帮忙。 ...

June 5, 2023 · 1 min · jiezi

关于linux运维:Debian系统添加新用户并赋予sudo权限

出于服务器安全性的思考,当xiaoz在新开一台服务器时,通常会创立一个新用户,并授予该用户sudo权限,而后禁用root用户。本文记录并分享了在Debian零碎下执行此操作的办法。 Debian增加新用户间接执行上面的命令即可: # newuser 改成本人的用户名称sudo adduser newuseradduser命令是Debian系独有的(包含Ubuntu),在Redhat系下不存在该命令。执行该命令会主动创立用户、用户组和家目录,并要求设置用户明码和名称等信息。 赋予sudo权限局部Debian零碎可能默认没有装置sudo命令,能够执行上面的命令先进行装置(须要root用户操作): apt-get install sudo装置结束后执行上面的命令将新用户增加到sudo组(须要root用户操作),以便他们能够取得管理员权限。 # newuser改成你上一步骤中的用户名usermod -aG sudo newuser测试接下来切换到newuser,而后测试sudo是否失常。 # 切换到newusersu - newuser# 测试sudo权限,如果没有报错,阐明失常sudo pwd结语在Debian系下新建用户并赋予sudo权限都非常简单。只需应用几个命令即可实现,与Redhat系相比,不须要批改配置文件,更加不便。 此文章首发于我的独立博客:https://blog.xiaoz.org/archives/18678

May 6, 2023 · 1 min · jiezi

关于linux运维:快速解决-Linux-内核问题一站式运维工具-ocops-介绍

导读:明天,Linux 内核治理曾经成为古代计算机领域中不可或缺的一部分。然而,因为问题简单多样,解决起来也须要更加业余的常识和教训。而且,因为各种运维工具扩散、入口不对立、治理不零碎,局部工具参数和子命令数量宏大,对于一般运维人员应用来说十分艰难。 为了进步运维效率,OpenCloudOS 运维工具 SIG 开发了 oc-ops,作为一款一站式 OS 运维工具集,它能够帮忙用户更好地对立、系统地治理运维工具,并晋升相干问题的定位效率。本文将具体介绍 oc-ops 的性能和劣势,让读者更全面地理解这个工具集的重要性。 一、开发背景在治理 Linux 内核时,开发者经常面临着很多问题,比方定位 TCP 协定栈中导致数据包失落的环节,这些问题可能须要业余的常识和教训能力解决。还有些场景不足必要的工具来解决问题,甚至有时即便有相应的工具,也很难应用。 另外一个问题是,运维工具扩散、入口不对立、治理不零碎,没有一个工具或平台可能为所有的问题提供解决方案,并且没有对立的入口或集中的形式来应用和治理这些工具。 例如,blktrace、blkparse 和 btt 等磁盘 IO 监测工具生成的数据量微小,人工从中找出超过工夫阈值的 IO 申请十分耗时。局部工具的参数和子命令数量达到数百个,对于一般的运维人员来说学习应用须要破费大量的工夫。 为了解决这些问题,OpenCloudOS 运维工具 SIG 开发了一款一站式 OS 运维工具集——oc-ops,它将开发和运维人员的专业知识通过工具进行固化和传承,并自主研发了一些子命令来补全相干工具。 oc-ops 能够帮忙对立、系统地治理运维工具,从而进步运维效率。无论你是 Linux 开发人员,还是系统管理员,oc-ops 都能够帮忙你更高效地解决各种问题。 二、oc-ops 语法格局1、根本语法格局Usage: oc-ops [opt] <subcmd> [opt] [cmdargs] oc-ops [opt] 反对的参数: oc-ops -h:查看 oc-ops 用法,将列出 oc-ops 反对的所有 subcmd。    oc-ops -v:查看 oc-ops 的版本号。    oc-ops -d:以调试模式运行 oc-ops,不便 oc-ops 命令本身问题的定位。为便于应用、使 oc-ops 易于上手,oc-ops 采纳如下策略: 反对 tab 键主动扩大/补全的性能。限度子命令参数的个数,尽量采纳自然语言代替参数(利用下面的主动扩大放慢输入速度)。命令级数临时限定在 4 级。       2、子命令用法通过 oc-ops <subcmd> -h,可查看每个子性能的具体用法。 ...

March 21, 2023 · 2 min · jiezi

关于linux运维:如何在后台运行-Linux-Shell-命令-脚本

在 Linux 终端上执行命令的通常只需运行它,而后期待它优雅地退出即可。一旦命令退出,您能够继续执行其余命令,这就是所谓的前台中的运行命令。顾名思义,您能够在终端上看到命令的输入。 然而,有时在前台运行命令会带来一系列挑战。该命令可能须要很长时间能力退出,可能会节约您贵重的工夫,它可能齐全依赖于 shell 会话,让你陷入困境。 在这种状况下,在后盾运行命令是最好的抉择。当您在前台并发地执行其余命令时,能够将一个(多个) 命令发送到后盾。这进步了在终端上工作的效率,节俭了您的工夫。 在本指南中,咱们关注如何在后盾运行 Linux shell 命令或脚本。 在后盾应用“&”符号运行 shell 命令要在后盾运行命令或脚本,请在开端用&号完结它,如下所示 $ command & 留神: 以&号完结命令并不会将该命令与您拆散。它只是将它发送到您正在应用的以后 shell 的后盾,该命令依然将输入打印到 STDOUT 或 STDERR,这将阻止您在终端上执行其余命令。 一种更好的办法是将命令重定向到 /dev/null,而后在开端附加 & 符号,如下所示 $ command &>/dev/null & 要确认命令被发送到后盾,运行 jobs 命令 如果须要终止后盾过程,执行 kill 命令,前面跟着过程的 PID,选项 -9 将立刻终止过程。 $ kill -9 138314 应用 nohup 命令在后盾运行 shell 命令或脚本在后盾运行命令的另一种办法是应用 nohup 命令。nohup 命令是 no hang up 的缩写,它是一个命令,即便在退出 shell 后也能放弃过程运行。 它通过阻止过程接管 SIGHUP (信号挂起) 信号来做到这一点,这个信号通常是在过程退出终端时发送给过程的。 要在后盾发送命令或脚本并放弃其运行,请应用以下语法: $ nohup command &>/dev/null & ...

December 26, 2022 · 1 min · jiezi

关于linux运维:记一次异地备份项目服务器TOP命令卡死

状况阐明理解到服务器TOP命令卡死,无奈通过Ctrl+C或者其余任何命令完结过程. 谬误排查应用普通用户登录操作系统,失常登陆查看df -h命令失常ls top等命令卡死su到root用户,尝试应用上述命令,依然卡死应用ls查看根目录下/etc/fstab文件,查看无额定挂载点未挂载经排查,在非/目录下,应用上述任意命令均为失常.狐疑/目录下有文件系统未失常挂载尝试应用mount -l命令,夯死尝试cat /etc/mtab文件,夯死尝试cat/proc/mounts文件,夯死strace命令进行跟踪,提醒如下execve("/usr/bin/ls", ["ls"], [/* 22 vars */]) = 0brk(NULL) = 0x1475000mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3a2c6ce000access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC理解到最近网络上批改过一些配置,加上了VxLAN造成起因在根目录下,ls top等命令基本上都是内容比拟多,数据包比拟大 基本上都吃满了1500这个默认值加上VxLAn的包 大于1500 封装之后堡垒机辨认不了出现给用户就是夯死了解决计划调整操作系统mtu值,将服务器操作系统数据包调小,加上VxLAN数据包小于1500即可

November 2, 2022 · 1 min · jiezi

关于linux运维:Deepin系统navicat15安装

Deepin零碎装置navicat15(已验证)下载Navicat15通过上面地址下载Navicat15,默认下载到桌面即可 $ https://download.navicat.com.cn/download/navicat15-premium-cs.AppImage而后右键Open with抉择 Archive Manager解压到桌面的navicat15-premium-cs-bak文件夹 $ mv navicat15-premium-cs/ ~/Desktop/temp/navicat15-premium-cs-bak装置依赖包$ sudo apt install libcapstone-dev cmake rapidjson-dev openssl git装置keystonegit拉取keystone$ git clone https://github.com/keystone-engine/keystone.git编译keystone$ mkdir -pv ~/Desktop/temp/keystone/build$ cd ~/Desktop/temp/keystone/build$ ../make-share.sh这一步可能会报上面谬误 CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions.-- The C compiler identification is GNU 8.3.0-- The CXX compiler identification is unknown-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working C compiler: /usr/bin/cc - skipped-- Detecting C compile features-- Detecting C compile features - doneCMake Error at CMakeLists.txt:5 (project): No CMAKE_CXX_COMPILER could be found. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. -- Configuring incomplete, errors occurred!See also "/home/liang/Desktop/keystone/build/CMakeFiles/CMakeOutput.log".See also "/home/liang/Desktop/keystone/build/CMakeFiles/CMakeError.log".解决办法 ...

September 27, 2022 · 2 min · jiezi

关于linux运维:Linux定时任务cron服务

应用3A服务器搭建centos零碎crond 服务详解cron 是 Linux 下用来周期性的执行某种工作或期待解决某些事件的一个守护过程,能够在无需人工干预的状况下运行作业。 装置 crond 服务 yum install croniecrond服务启动 systemctl start crondsystemctl enable crondcrond服务解析Linux系统调度能够分为两类: 零碎任务调度 | 用户任务调度(1) 零碎任务调度: 零碎周期性所要执行的工作,比方写缓存数据到硬盘、日志清理等 crond服务在/etc/目录下有一个crontab文件,这个文件就是零碎任务调度的配置文件。 配置文件内容解析 [root@dev etc]# vim /etc/crontabSHELL=/bin/bash # 指定shellPATH=/sbinL:/bin:/usr/sbin:/usr/bin # 指定了零碎可执行文件门路MAILTO=root # 指定了crond的工作执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则示意不发送工作 执行信息给用户。HOME=/ # 指定执行命令或脚本时应用的主目录(2) 用户任务调度: 用户定期要执行的工作,比方用户数据备份、定时邮件揭示等用户能够应用 crontab 工具来定制本人的打算工作。所有用户定义的crontab 文件都被保留在 /var/spool/cron目录中。其文件名与用户名统一。 能够通过 crontab 命令增加或者编辑须要定时执行的工作crontab 命令基本参数crond 服务提供 crontab 命令用于设置 crond 服务 crontab -u //设定某个用户的cron服务,个别root用户在执行这个命令的时候须要此参数 crontab -l //列出某个用户cron服务的具体内容 crontab -r //删除某个用户的cron服务 crontab -e //编辑某个用户的cron服务特殊字符 : 代表所有可能的值, :用逗号隔开的值示意一个范畴列表,如 1,2 示意1-2:能够在整数两头用中杠示意一个整数范畴,如 6-8 , 示意6 7 8/ : 能够用正斜线示意工夫距离频率,如 /10 用于minute字段,示意每10分钟执行一次。增加定时工作工作格局: M(分) H(时) D(日) m(月) d(周) command ...

September 6, 2022 · 1 min · jiezi

关于linux运维:操作服务器的神奇工具Tmux

Tmux 是什么?会话与过程命令行的典型应用形式是,关上一个终端窗口(terminal window,以下简称"窗口"),在外面输出命令。用户与计算机的这种长期的交互,称为一次"会话"(session) 。 会话的一个重要特点是,窗口与其中启动的过程是连在一起的。关上窗口,会话开始;敞开窗口,会话完结,会话外部的过程也会随之终止,不论有没有运行完。 Tmux 的作用Tmux 就是会话与窗口的"解绑"工具,将它们彻底拆散。 它容许在单个窗口中,同时拜访多个会话(这对于同时运行多个命令行程序很有用)它能够让新窗口"接入"曾经存在的会话。它容许每个会话有多个连贯窗口,因而能够多人实时共享会话。它还反对窗口任意的垂直和程度拆分。根本用法装置# Ubuntu 或 Debian$ sudo apt-get install tmux# CentOS 或 Fedora$ sudo yum install tmux# Mac$ brew install tmux启动与退出装置实现后,键入tmux命令,就进入了 Tmux 窗口。 下面命令会启动 Tmux 窗口,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是零碎信息。 按下Ctrl+d或者显示输出exit命令,就能够退出 Tmux 窗口。 $ exit前缀键Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会失效。 举例来说,帮忙命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮忙信息。 而后,按下 ESC 键或q键,就能够退出帮忙。 会话治理新建会话第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。 应用编号辨别会话,不太直观,更好的办法是为会话起名。 $ tmux new -s <session-name>下面命令新建一个指定名称的会话。 拆散会话在 Tmux 窗口中,按下Ctrl+b d或者输出tmux detach命令,就会将以后会话与窗口拆散。 与Ctrl+d的区别:Ctrl+d是完结以后会话,相当于kill;拆散是切换到非tmux窗口,会话仍然存活。$ tmux detach下面命令执行后,就会退出以后 Tmux 窗口,然而会话和外面的过程依然在后盾运行。 列出会话tmux ls命令能够查看以后所有的 Tmux 会话(仅在非tmux窗口失效) ...

September 2, 2022 · 2 min · jiezi

关于linux运维:Linux面试最高频的5个基本问题

CPU利用率和CPU负载的区别是什么 提到CPU利用率,就必须了解工夫片。什么是CPU工夫片?咱们当初所应用的Windows、Linux、Mac OS都是“多任务操作系统”,就是说他们能够“同时”运行多个程序,比方一边关上Chrome浏览器浏览网页还能一边听音乐。 然而,实际上一个CPU内核在同一时刻只能干一件事,那操作系统是如何实现“多任务”的呢?大略的办法是让多个过程轮流应用CPU一小段时间,因为这个“一小段时间”很短(在linux上为5ms-800ms之间),用户感觉不到,就如同是几个程序同时在运行了。下面提到的“一小段时间”就是咱们所说的CPU工夫片,CPU的古代分时多任务操作系统对CPU都是分工夫片应用的。 CPU使用率,就是程序对CPU工夫片的占用状况,即CPU使用率 = CPU工夫片被程序应用的工夫 / 总工夫。比方A过程占用10ms,而后B过程占用30ms,而后闲暇60ms,再又是A过程占10ms,B过程占30ms,闲暇60ms,如果在一段时间内都是如此,那么这段时间内的CPU占用率为40%。CPU利用率显示的是程序在运行期间实时占用的CPU百分比。 大多数操作系统的CPU占用率分为用户态CPU使用率和零碎态CPU使用率。用户态CPU使用率是指执行利用程序代码的工夫占总CPU工夫的百分比。相比而言,零碎态CPU使用率是指利用执行操作系统调用的工夫占总CPU工夫的百分比。零碎态的CPU使用率高意味着共享资源有竞争或者I/O设施之间有大量的交互。 而CPU负载显示的是一段时间内正在应用和期待应用CPU的均匀工作数。 简略了解,一个是CPU的实时应用状况,一个是CPU的以后以及将来一段时间的应用状况。举例来说:如果我有一个程序它须要始终应用CPU的运算性能,那么此时CPU的使用率可能达到100%,然而CPU的工作负载则是趋近于“1”,因为CPU仅负责一个工作嘛!如果同时执行这样的程序两个呢?CPU的使用率还是100%,然而工作负载则变成2了。所以也就是说,CPU的工作负载越大,代表CPU必须要在不同的工作之间进行频繁的工作切换。无论CPU的利用率是高是低,跟前面有多少工作在排队(CPU负载)没有必然关系。 如果单核CPU的话,负载达到1就代表CPU曾经达到满负荷的状态了,超过1,前面的进行就须要排队期待解决了。如果是是多核多CPU,假如当初服务器是2个CPU,每个CPU有2个核,那么总负载不超过4都没什么问题。 能够通过uptime、w命令查看CPU均匀负载,应用top命令还能看到CPU负载总体使用率以及各个过程占用CPU的比例。 查看物理CPU个数 cat /proc/cpuinfo| grep “physical id”| sort | uniq| wc -l 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep “cpu cores” | uniq 查看逻辑CPU的个数 cat /proc/cpuinfo| grep “processor”| wc -l 如果CPU负载很高,利用率却很低该怎么办  CPU负载很高,利用率却很低,阐明处于期待状态的工作很多,负载越高,代表可能很多僵死的过程。通常这种状况是IO密集型的工作,大量工作在申请雷同的IO,导致工作队列沉积。 生产环境造成CPU利用率低负载高的具体场景常见的有如下几种。 场景一:磁盘读写申请过多就会导致大量I/O期待 过程在cpu下面运行须要拜访磁盘文件,这个时候cpu会向内核发动调用文件的申请,让内核去磁盘取文件,这个时候cpu会切换到其余过程或者闲暇,这个工作就会转换为不可中断睡眠状态。当这种读写申请过多就会导致不可中断睡眠状态的过程过多,从而导致负载高,cpu低的状况。 场景二:MySQL中存在没有索引的语句或存在死锁等状况 咱们都晓得MySQL的数据是存储在硬盘中,如果须要进行sql查问,须要先把数据从磁盘加载到内存中。当在数据特地大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠过程过多,导致负载过大。 同样,能够先通过top命令察看,假如发现当初的确是高负载低使用率。 而后,再通过命令ps -aux查看是否存在状态为D的过程,这个状态指的就是不可中断的睡眠状态的过程。处于这个状态的过程无奈终止,也无奈自行退出,只能通过复原其依赖的资源或者重启零碎来解决。以下图中没有D状态的过程。 Linux上过程的五种状态 R (TASK_RUNNING):可执行状态,只有在该状态的过程才可能在CPU上运行。而同一时刻可能有多个过程处于可执行状态。 S (TASK_INTERRUPTIBLE):可中断的睡眠状态,处于这个状态的过程因为期待某某事件的产生(比方期待socket连贯、期待信号量),而被挂起。 D (TASK_UNINTERRUPTIBLE):不可中断的睡眠状态,过程处于睡眠状态,然而此刻过程是不可中断的。TASK_UNINTERRUPTIBLE状态存在的意义就在于,内核的某些解决流程是不能被打断的。 T (TASK_STOPPED or TASK_TRACED):暂停状态或跟踪状态。Z (TASK_DEAD - EXIT_ZOMBIE):退出状态,过程成为僵尸过程。过程已终止,但过程形容还在,直到父过程调用wait4()零碎调用后开释。 如果CPU负载很低,利用率却很高该怎么办 这示意CPU的工作并不多,然而工作执行的工夫很长,大概率就是你写的代码自身有问题,通常是计算密集型工作,生成了大量耗时短的计算工作。 怎么排查?间接top命令找到CPU使用率最高的过程,定位到去看看就行了。如果代码没有问题,那么过段时间CPU使用率就会降落的。往期面试题汇总:250期面试材料 CPU利用率达到100%怎么排查问题 1、通过top找到CPU占用率高的过程 2、通过top -Hp pid命令查看CPU占比靠前的线程ID 3、再把线程ID转化为16进制,printf “0x%x\n” 74317,失去0x1224d 4、通过命令jstack 72700 | grep ‘0x1224d’ -C5 --color找到有问题的代码 ...

September 1, 2022 · 1 min · jiezi

关于linux运维:Linux文本编辑器vim详解

零.前言本篇次要介绍Linux下文本编辑器vim的应用办法,以及sudo命令的实现。我应用3A服务器近程连贯的centos71.什么是vim在windows零碎下,咱们应用VS来编写代码,编译代码,调试代码,运行代码等,甚至还能够进行公布代码并进行代码关系的保护。这是因为微软曾经将实现这些性能的工具全副都打包放入VS编译器中了。而在Linux零碎中,并没有这种集万般武艺于一身的货色,咱们编写代码,编译代码,调试代码等性能的实现是由不同的程序来实现的。其中,vim就属于文本编辑器,是能够编写代码的,然而不能调试代码,也不能执行代码。晚期的Linux编辑器应用的是vi进行文本的编辑,vi与vim的关系相似C于C++的关系。2.配置vim环境(1)手动配置要进行手动配置咱们还须要学一些vim指令的常识,这里先作为理解,看文章前面局部就能够了解了。首先在咱们本人的文件夹下建设一个名为.vimrc的文件。建设之后咱们能够vim进入这个文件,而后以插入模式向其中输出配置vim格局的命令即可。(2)白嫖配置这里给大家举荐一个配置程序:gitforcpp这是一个在gitee上收费的开源我的项目,只须要在gitee上搜寻gitforcpp进入后下拉页面,找到这段安装程序: 将其复制后,在以后用户的文件夹下粘贴,而后间接回车即可,零碎会主动装置配置。留神,以后用户对vim的配置只对以后用户失效,对其余用户是不失效的。3.vim的三种模式以及切换留神,本文中shift示意常按。vim一共有四种模式,别离是命令模式,插入模式,底行模式以及替换模式,替换模式咱们尽量当成一种性能去应用,因而这里次要介绍三种模式,曾经足够。当咱们间接输出vim时,显示的是以后vim的版本信息: 咱们须要建设一个文件能力关上文件,比方建设一个test.txt文件,而后用vim关上它:touch test.txtvim test.txt 关上后咱们会进入一个空白的文本界面。目前咱们所处的模式叫做命令模式。如果咱们想退出vim就须要先进入底行模式:shift+:。而后再输出q而后回车,即可退出vim。从底行模式进入命令模式能够通过Esc键。咱们发现咱们当初是不能写入内容的,须要进入插入模式能力书写内容,此时须要输出i,即进入插入模式。当输出i时,咱们发现上面呈现了INSERT的字样。同时咱们也能够通过Esc键退出插入模式进入命令模式。留神:只有当进入底行模式的时候能力退出vim,如果以后处于插入模式,那么就须要先进入命令模式,再进入底行模式,能力退出vim。插入模式和底行模式必须通过命令模式进行互相转换。上面用一张图来示意三者的关系:4.命令模式(1)光标地位上下左右挪动光标咱们能够应用键盘上的上下左右键来挪动光标,然而不倡议这样做,因为在最后的键盘是没有上下左右键的,咱们应用HJKL来代替上下左右键。上面给出记忆办法。H:左,四个键中最左侧。J:下,联想jump是向下跳。K:上,联想king是居高临下的。L:右,四个键中最右侧。光标锚点地位shift+^:跳转到光标所在行行首。shift+$:跳转到光标所在行行尾。gg:跳转到起始行。shift+g:跳转到完结行。n+shift+g:跳转到第n行。b:以单词为单位,光标向前挪动。w:以单词为单位,光标向后挪动。有人说,间接用鼠标不香吗,小我的项目还好,如果遇到大我的项目好几千行代码,间接命令操作会更加容易一些,因而vim就是为解决大我的项目而生的。进入插入模式i:光标地位不变。a:光标向前移动一位。o:光标新开启一行。(2)文本操作yy:复制以后行。nyy:复制以后行以及以后行后的n-1行。p:光标所在行后所有行后退一行,粘贴到光标所在行的下一行。np:一次反复粘贴n行。u:撤销(相似ctrl z)。ctrl+r:撤销最近的撤销。dd:删除并复制以后行(dd与p连用就是剪切操作)。ndd:删除并复制以后行即后n-1行。shift(按住)+一直按~:逐个扭转大小写。shift(按住)+~(按住):扭转一行的大小写。x:删除光标后的一个字符,反对nx(从左向右删)。shift+x:删除光标前的一个字符,反对n(shift+x)(从右向左删)。r:字符替换,eg.r+b的意思是将一个字符替换成b,反对nr即5r+x示意的是将5个字符替换成x。shift+r:进入替换模式,输出内容后笼罩之后的内容,按Esc退出。5.底行模式在命令模式下输出shift+:进入底行模式。进入底行模式后咱们会发现咱们输出的指令都会显示在最底行。留神,每一次输出指令后回车后须要从新输出shift+:能力持续输出指令。set nu:调出行号。set nonu:敞开行号。vs 文件名:分屏操作ctrl+ww:光标多屏跳转,光标在哪个文件指令对哪个文件失效。(留神要在命令模式下应用该命令)w:保留,w!示意强制保留。q:退出,q!示意强制退出。wq:保留并退出。wq!示意强制保留并退出。6.vim增加sudo指令在root用户下vim在 /etc/sudoers地位处。上面就能够解决如何增加sudo命令了。vim /etc/sudoers 关上后在100行,模拟root增加本人的用户名即可,这里我增加的是lhb。示意信赖lhb这个用户。咱们就能够应用sudo指令了。

September 1, 2022 · 1 min · jiezi

关于linux运维:Linux基础系统管理

二、系统管理1.零碎信息、硬件资源(1).CPUCPU是操作系统稳固运行的基本,CPU的速度与性能在很大水平上决定了零碎整体的性能,因而,CPU数量越多、主频越高,服务器性能也就绝对越好 # 1,查看物理CPU个数$ cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l# 2,查看逻辑cpu个数$ cat /proc/cpuinfo |grep "processor"|wc -l# 3,查看CPU多少核$ cat /proc/cpuinfo # 4,动静查看cpu等信息(输出 top 命令之后再按数字 1 )$ top(2).内存Linux零碎采纳了物理内存和虚拟内存(SWAP内存)两种形式,虚拟内存尽管能够缓解物理内存的有余,然而占用过多的虚拟内存,应用程序的性能将显著降落,要保障应用程序的高性能运行,物理内存肯定要足够大;所以咱们在搭建大数据集群的时候个别会禁用SWAP内存分区。 (3).磁盘1).磁盘信息和网络信息的查看# 检测磁盘空间(通过-h参数转成带单位的显示方式:): $ df -h# 显示所有文件系统的磁盘应用状况:$ df -a# 显示各指定文件系统的磁盘空间应用状况:$ df -t# du命令用于统计目录或文件所占磁盘空间的大小:$ du -h /root# 查看以后网络信息: $ ifconfig# 测试近程主机的连通性: $ ping 10.30.59.130# 查问指定目录中文件大小超过500M的find / -type f -size +500M 2).磁盘I/O性能磁盘的I/O性能会间接影响应用程序的性能,尤其是在一个频繁读写的利用中,如磁盘I/O得不到满足,就会导致利用停滞。常见的进步磁盘I/O的形式是应用磁盘RAID技术(便宜磁盘冗余阵列): RAID 0 : 通过把多块硬盘粘合成一个容量更大的硬盘组,进步了磁盘的性能和吞吐量。这种形式成本低,要求至多两个磁盘,然而没有容错和数据修复性能,因此只能用在对数据安全性要求不高的环境中。RAID 1 : 也就是磁盘镜像,通过把一个磁盘的数据镜像到另一个磁盘上,最大限度地保障磁盘数据的可靠性和可修复性,具备很高的数据冗余能力,但磁盘利用率只有50%,因此,老本最高,多用在保留重要数据的场合。RAID 5 : 采纳了磁盘分段加奇偶校验技术,从而进步了系统可靠性,RAID 5读出效率很高,写入效率个别,至多须要3块盘。容许一块磁盘故障,而不影响数据的可用性。(4),查看GPU的版本# 实用于英伟达的gpu显卡nvidia-smi(5),查看Linux的版本信息# 办法1:登陆Linux,在终端输出 cat /etc/redhat-release # 办法2:登陆Linux,在终端输出 cat /etc/issue# 办法3:登陆Linux,在终端输出## 此时须要yum装置yum install redhat-lsb -y## 查看版本等信息lsb_release -a2.过程信息、主机治理1.查看过程信息(3种): (1),查看过程的具体情况:ps (2),显示终端上所有的过程,包含其余用户的过程:ps -a (3),显示过程的具体状态:ps -u (4),查看过程(查看redis的过程):ps -ef | grep redis (5),动态显示过程(top命令用来动态显示运行中的过程。top命令可能在运行后,在指定的工夫距离更新显示信息。能够在应用top命令时加上-d 来指定显示信息更新的工夫距离。):top (6),在kali中没有体现,然而也能够查看过程的详细信息:ntop (7).netstat -anp | grep 过程号 # 查看该过程网络信息 (8).netstat -nlp | grep 端口号 # 查看网络端口号占用状况2.杀死过程(依据查看的过程信息中的pid号(数字)进行删除): 一般杀:kill 232 强制杀:kill -9 2323.关机: 立即关机:shutdown -h now 指定在某个工夫(20:20)点关机:shutdown -h 20:204.重启: rebootps 选项含意-a显示终端上的所有过程,包含其余用户的过程-u显示过程的具体状态-x显示没有管制终端的过程-w显示加宽,以便显示更多的信息-r只显示正在运行的过程 ...

August 3, 2022 · 5 min · jiezi

关于linux运维:Linux基础文件管理

一、文件治理目前服务器端的支流文件系统是:ext4与xfs; df -T 查看磁盘的格式化的格局,支流个别是 xfs 和ext4,系统盘默认是xfs,后续增加数据盘尽量也是xfs格局这样对立比拟好,也不便写脚本批量挂盘。 1.文件操作(1.1),查看文件列表:ls# 1.查看文件的详细信息: $ ls -l# 2.查看文件的详细信息并以人性化的形式展示(k/M/G): $ ls -lh# 3.查看所有的文件(包含暗藏文件): $ ls -a# 4.查看所有文件的详细信息: $ ls -al# 5.查看所有文件的详细信息并以人性化的形式展示(k/M/G): $ ls -alh# 6.帮忙查问命令: $ ls --help# 7.分屏显示文件列表: $ more ls 图详解(1).第1个字母代表文件的类型:“d” 代表文件夹、“-” 代表一般文件、“c” 代表硬件字符设施、“b” 代表硬件块设施、“s”示意管道文件、“l” 代表软链接文件。 (2).后 9 个字母别离代表三组权限:文件所有者、用户组、其余用户领有的权限。(3).文件的硬链接数(4).文件的拥有者(5).文件的领有组(6).文件的大小(7).文件的批改工夫(8).文件名 (1.2).通配符命令(含通配符)含意*文件代表文件名中所有字符ls am*查找以am结尾的文件ls *html查找结尾为html的文件?代表文件名中任意一个字符ls ?.c只找第一个字符任意,后缀为.c的文件ls a.?只找只有3个字符,前2字符为a.,最初一个字符任意的文件[][”和“]”将字符组括起来,示意能够匹配字符组中的任意一个。“-”用于示意字符范畴。[abc]匹配a、b、c中的任意一个[a-f]匹配从a到f范畴内的的任意一个字符(2),输入重定向:# 1.将查问进去的目录名输入到指定文件中(从新并笼罩之前的,如果不存在则创立):$ ls > xxx.txt# 2.将查问进去的目录名输入到指定文件中(在之前的根底上追加,如果不存在则创立):$ ls >> xxx.txt(3),文件的创立、查看、删除# 1.创立一个空文件: $ touch xxx.txt# 2.查看文件的内容: $ cat xxx.txt# 3.查看文件的内容并显示行号: $ cat -b xxx.txt# 4.合并文件内容到一个新的文件中(源文件不删除): $ cat xxx1.txt xxx2.txt > xxx.txt# 5.删除一个文件: $ rm xxx.txtrm 参数含意-i以进行交互式形式执行-f强制删除,疏忽不存在的文件,无需提醒-r递归地删除目录下的内容,删除文件夹时必须加此参数(4),管道(一个命令的输入能够作为管道作为另一个命令的输出):$ ls -alh | more(5),为两个文件建设连贯(须要指明源文件名和连贯文件名):# 1.软连贯: 当原始文件被删除,以后软连贯文件则不能被拜访$ ln -s xxx.txt soft_xxx.txt# 2.硬链接: 即便原始的文件被删除,以后硬链接文件依然能够拜访$ ln xxx.txt hard_xxx.txt(6),文件的查找# find命令性能十分弱小,通常用来在特定的目录下搜寻符合条件(应用正则表达式)的文件,也能够用来搜寻特定用户属主的文件。# 1.查找/etc目录下的所有文件中含有"root"的:$ find /etc -name "root"# 2.查找/etc目录下的所有文件中"root"结尾的:$ find /etc -name "^root"# 3.查找/etc目录下的所有文件中"root"结尾的:$ find /etc -name "root$"命令含意find ./ -name test.sh查找当前目录下所有名为test.sh的文件find ./ -name '*.sh'查找当前目录下所有后缀为.sh的文件find ./ -name "[A-Z]*"查找当前目录下所有以大写字母结尾的文件find /tmp -size 2M查找在/tmp 目录下等于2M的文件find /tmp -size +2M查找在/tmp 目录下大于2M的文件find /tmp -size -2M查找在/tmp 目录下小于2M的文件find ./ -size +4k -size -5M查找当前目录下大于4k,小于5M的文件find ./ -perm 777查找当前目录下权限为 777 的文件或目录(7),文本文件的内容搜寻,也能够在通道之后搜寻:grep选项含意-v显示不蕴含匹配文本的所有行(相当于求反)-n显示匹配行及行号-i疏忽大小写# grep命令是文本搜寻工具,grep容许对文本文件进行模式(通过指定正则表达式)查找。如果找到匹配模式,grep打印蕴含模式的所有行。# grep [-选项] ‘搜寻内容串’文件名# 1.搜寻以a结尾的行: $ grep "^a" 1.txt# 2.搜寻以a结尾的行: $ grep "a$" 1.txt3.匹配[]里中一系列字符中的任意一个: $ grep "[a-g]kk" 1.txt(8),文件的拷贝和挪动# cp命令的性能是将给出的文件或目录复制到另一个文件或目录中1.拷贝文件到a门路下: 1)间接复制不提醒: $ cp 1.txt a 2)显示拷贝进度:cp 1.txt a -v 3)曾经存在的指标文件不提醒:cp 1.txt a -f2.拷贝文件夹a到文件夹b中(不存在则创立): cp a b -r# 用户能够应用mv命令来挪动文件或目录,也能够给文件或目录重命名。3.挪动文件到a门路下: mv 1.txt /a -v4.挪动文件夹a到文件夹b中(不存在则创立): mv a b -v5.批改文件名: mv 1.txt 2.txt选 项含意-a该选项通常在复制目录时应用,它保留链接、文件属性,并递归地复制目录,简略而言,放弃文件原有属性。-f曾经存在的指标文件而不提醒-i交互式复制,在笼罩指标文件之前将给出提醒要求用户确认-r若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,指标文件必须为一个目录名。-v显示拷贝进度(9),文件的压缩与解压缩# tar应用格局 tar [参数] 打包文件名 文件1.打包文件:tar -cvf xxx.tar *.txt解压文件:tar -xvf xxx.tar2.打包并压缩文件(.tar.gz):tar -zcvf xxx.tar.gz *.txt解压缩文件(.tar.gz):tar -zxvf xxx.tar.gz3.打包并压缩文件(.tar.bz2):tar -jcvf xxx.tar.bz2 *.txt解压缩文件(.tar.bz2):tar -jxvf xxx.tar.bz24.打包并压缩文件(.tar.zip):zip xxx.zip *.txt解压缩文件(.tar.zip):unzip xxx.zip5.解压到指定门路:tar -zxvf xxx.tar.gz -C /a参数含意-c生成档案文件,创立打包文件-v列出归档解档的具体过程,显示进度-f指定档案文件名称,f前面肯定是.tar文件,所以必须放选项最初-t列出档案中蕴含的文件-x解开档案文件(10),文件的权限治理1,批改文件的所有者: 应用办法:chown 用户名 文件或目录名 sudo chown demo xxx.txt2,批改文件的所在组: 应用办法:chgrp 用户组名 文件或者目录名 chgrp demo xxx.txt3,批改文件的权限: (1).字母法:chmod u/g/o/a +/-/= rwx 文件 u:user 示意该文件的所有者 g:group 示意与该文件的所有者属于同一组( group )者,即用户组 o:other 示意其余以外的人 a:all 示意这三者皆是 r:读取; w:写入; x:可执行 +:减少权限; -:撤销权限; =:设定权限 批改文件所有者的权限:chmod u+w XXX.txt 批改文件所有者的属于同一组的权限:chmod g+w XXX.txt 批改其他人的权限:chmod o+w XXX.txt 批改三者的权限:chmod a+w XXX.txt (2).数字法(读、写、执行<--->4、2、1;不具备任何权限是0): 例0:chmod u=rwx,g=rx,o=r filename <=======>chmod u=7,g=5,o=4 filename 例1: chmod 751 file 文件所有者:读、写、执行权限(7=4+2+1) 同组用户:读、执行的权限(5=4+1) 其它用户:执行的权限(1=1) 例2: chmod 777 file:所有用户领有读、写、执行权限 例3: 如果想递归所有目录加上雷同权限,须要加上参数"-R" chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限 ...

August 3, 2022 · 3 min · jiezi

关于linux运维:Linux系统增加内网ip

零碎版本:centos71.cd到网卡门路下2.复制原有的网卡文件,并批改成本人须要的3.重启网卡4.ping测试

July 22, 2022 · 1 min · jiezi

关于linux运维:linux培训笔记

单双引号反引号阐明:test=`date` ### 反引号里能够写命令 "$test dddddd" ### 变量在双引号里能够应用"${test}ssssss" ### 变量与字符相连要应用{}'"sssss" "sssss"' ### 单引号里只能写双引号"'sssss' "sssssdfsdf" 'dfdsfdf'" ### 双引号里只能写单引号 "'ssssss' \"sdfsdfsdf\" " ### 如果想那啥请\ 转译[root@elk-filebeat ~]# sh +x /tmp/ll.sh 2022年 07月 08日 星期五 18:05:49 CST dddddd2022年 07月 08日 星期五 18:05:49 CSTssssss 这个谬误示范"sssss" "sssss"'sssss' sssssdfsdf 'dfdsfdf''ssssss' "sdfsdfsdf" [root@elk-filebeat ~]# cat /tmp/ll.sh #!/bin/bashtest=`date`echo "$test dddddd" ###echo "${test}ssssss"echo "$testssssss 这个谬误示范"echo '"sssss" "sssss"'echo "'sssss' "sssssdfsdf" 'dfdsfdf'"echo "'ssssss' \"sdfsdfsdf\" "

July 8, 2022 · 1 min · jiezi

关于linux运维:7z压缩时排除指定文件或目录

场景:有时打包压缩目录,想要排除疏忽某些子文件和子目录,防止一些文件多体积大的不重要文件目录占用长期备份空间,且能够缩小压缩工时。\# 举例目录: tmp #想要打包的目录├─ aaa #目录├─ bbb #目录├─ ccc.txt #文件└─ ddd.txt #文件\# 7z排除/疏忽指定目录和文件的命令示范: 7z a -t7z tmp.7z ./tmp '-xr!aaa/' '-xr!ccc.txt' #压缩包里的内容胜利排除了aaa目录和ccc.txt文件,只剩下bbb目录和ddd.txt文件:tmp.7z├─ bbb└─ ddd.txt\# 7z参数解释 tmp.7z 是压缩包的文件名./tmp 是想要压缩的目录a 代表增加文件/文件夹到压缩包-t 是指定压缩类型 个别咱们定为7z-xr! 是排除文件夹和文件,*留神:'!'感叹号在Linux中是零碎非凡事件符号,在Shell命令中应用时需加''单引号本义成一般字符串。\# 7z门路规定: 门路规定:7z语法中的门路规定,是以压缩指标为根目录,比方“7z a tmp.7z ./tmp”中,“tmp/”就是7z语法中所有门路的最顶层,因而应用主机绝对路径就不能正确匹配,“tmp/aaa/”在主机中的绝对路径是“root/tmp/aaa/”,如果在7z语法中是应用“root/tmp/aaa/”,7z程序里理论解读的是“tmp/root/tmp/aaa/”。举例:咱们要压缩tmp/目录和排除tmp/下的aaa/目录:7z a -t7z tmp.7z ./tmp '-xr!aaa' '-xr!ccc.txt' #√ aaa无效7z a -t7z tmp.7z ./tmp '-xr!aaa/' '-xr!ccc.txt' #√ aaa/无效7z a -t7z tmp.7z ./tmp '-xr!/aaa/' '-xr!ccc.txt' #× 不匹配 /aaa/二次运行会提醒外部文件名抵触7z a -t7z tmp.7z ./tmp '-xr!/aaa' '-xr!ccc.txt' #×不匹配 /aaa二次运行会提醒外部文件名抵触7z a -t7z tmp.7z ./tmp '-xr!*tmp/aaa' '-xr!ccc.txt' #√ *tmp/aaa通配符无效7z a -t7z tmp.7z ./tmp '-xr!*tmp/aaa/' '-xr!ccc.txt' #√ *tmp/aaa/通配符无效7z a -t7z tmp.7z ./tmp '-xr!./aaa/' '-xr!ccc.txt' #√ ./aaa/相对路径语法无效7z a -t7z tmp.7z ./tmp '-xr!tmp/aaa/' '-xr!ccc.txt' #√ 以tmp作为根目录的绝对路径语法无效7z a -t7z tmp.7z ./tmp '-xr!/tmp/aaa' '-xr!ccc.txt' #× 不匹配 /tmp/aaa不应超出tmp/根目录7z a -t7z tmp.7z ./tmp '-xr!./tmp/aaa/' '-xr!ccc.txt' #× 不匹配 ./tmp/aaa/不应超出tmp/根目录7z a -t7z tmp.7z ./tmp '-xr!/root/tmp/aaa/' '-xr!ccc.txt' #× /root/tmp/aaa主机绝对路径被7z解读成以tmp为根目录的门路因此匹配失败

March 26, 2022 · 1 min · jiezi

关于linux运维:clearos安装clearos系统

一、参考链接阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 clearos镜像-clearos下载地址-clearos装置教程-阿里巴巴开源镜像站 ClearOS – OS for your Server, Network, and Gateway Systems 二、clearos介绍ClearOS是一个基于CentOS和Red Hat Enterprise Linux的简略,开源,价格合理的Linux操作系统。 它设计用于中小型企业作为服务器或网络网关。三、clearos装置<font color=blue>Install ClearOS 7.9.1.342252</font> <font color=blue>抉择装置过程中的语言</font> <font color=blue>磁盘分区</font> <font color=blue>开始装置</font> <font color=blue>设置ROOT明码。期待装置实现。</font> <font color=blue>装置实现,重启零碎。</font> <font color=blue>登录账号</font> <font color=blue>配置网络信息参数。</font> # 测试网络连通性[root@localhost ~]# ping baidu.com -c 5PING baidu.com (220.181.38.148) 56(84) bytes of data.64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=32.2 ms64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=32.1 ms64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=48.8 ms64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=128 time=28.9 ms64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=5 ttl=128 time=30.3 ms--- baidu.com ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 13052msrtt min/avg/max/mdev = 28.977/34.512/48.819/7.255 ms[root@localhost ~]#<font color=blue>查看零碎版本信息</font>[root@localhost ~]# hostnamectl Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: 3e9cbb095bec4c4d934fa531f7a8df04 Boot ID: d9bf2a054f6b402683f6e14147c4f0fa Virtualization: vmware Operating System: ClearOS 7 (Final) CPE OS Name: cpe:/o:clearos:clearos:7 Kernel: Linux 3.10.0-1160.42.2.el7.x86_64 Architecture: x86-64[root@localhost ~]#<font color=red>装置步骤与装置CentOS等Linux零碎差不多,能够按ALT+F1~F6切换图形或者命令行界面。</font>进行配置。至此,ClearOS装置实现。 ...

February 28, 2022 · 1 min · jiezi

关于linux运维:比较两个节点对应目录数据一致性校验

跨节点文件目录数据一致性校验-Shell组件校验工具阐明# cksumPrint CRC checksum and byte counts of each FILE# md5sumPrint or check MD5 (128-bit) checksums# sha1sumPrint or check SHA1 (160-bit) checksums# sha256sumPrint or check SHA256 (256-bit) checksums应用成果演示$ cksum md5_b.txt2325705422 16392970 md5_b.txt$ md5sum md5_b.txt 05eb026baaeecd0cf17c5c3d991bdde4 md5_b.txt$ sha1sum md5_b.txt 443d40550fa3be62a9a8c614088ef53309280657 md5_b.txt$ sha256sum md5_b.txt 2b691daf9e0f9193448322689812839102d00c7e0e4dada2cb465157ec120f58 md5_b.txt步骤遍历目录中的文件并计算其哈希码,将哈希码和文件名一行行记录至一个文本中在A、B节点别离跑步骤一,失去两个数据文本以文件名作为遍历对象遍历A节点数据文本,每一A节点遍历内从B节点数据文本中找同名文件名,找不到则证实B节点此目录下无此文件;找到则进一步比照文件名对应的哈希码,雷同则证明文件内容统一,不同则证明文件不统一代码data_consistency.sh#!/bin/bash# name:data_consistency.sh# auth:cyrus_chen# func:calsum_dir2txt compare_txt# version:v1.0# sys:centos7# usage: bash data_consistency.sh cksum /test 127.0.0.1set -esum_method=$1sum_dir=$2remote_ip=$3local_txt="a.txt"remote_txt="b.txt"calsum_dir2txt() { sum_method=$1 sum_dir=$2 remote_ip=$3 local_txt=$4 remote_txt=$5 if [ ! -d $sum_dir ];then echo "目录$sum_dir不存在" exit 1 fi if [ $sum_method == "cksum" ];then # echo "这是${sum_method}" sudo find $sum_dir -type f|xargs cksum|awk '{print $1 "\t" $3}' > ./$local_txt echo "请输出$remote_ip的ssh明码" ssh apps@$remote_ip "bash ./cksum.sh $sum_dir ./$remote_txt" echo "请再次输出$remote_ip的ssh明码" scp $remote_ip:./$remote_txt . elif [ $sum_method == "md5sum" -o $sum_method == "sha1sum" -o $sum_method == "sha256sum" ];then # echo "这是${sum_method}" sudo find $sum_dir -type f|xargs $sum_method > ./$local_txt echo "请输出$remote_ip的ssh明码" ssh apps@$remote_ip "bash ./hashsum.sh $sum_method $sum_dir ./$remote_txt" echo "请再次输出$remote_ip的ssh明码" scp $remote_ip:./$remote_txt . else echo "目前只反对[cksum md5sum sha1sum sha256sum]" fi}compare_txt() { local_txt=$1 remote_txt=$2 if [ ! -f "./${local_txt}" ];then echo "./${local_txt}不存在" exit 1 fi if [ ! -f "./${remote_txt}" ];then echo "./${remote_txt}不存在" exit 1 fi for f in `awk '{print $2}' ./${local_txt}` do if grep -qw "$f" ./${remote_txt} then md5_a=`grep -w "$f" ./${local_txt}|awk '{print 1}'` md5_b=`grep -w "$f" ./${remote_txt}|awk '{print 1}'` if [ "X${md5_a}" != "X${md5_b}" ] then echo "$f changed." fi else echo "$f deleted." fi done}main() { #calsum_dir2txt $sum_method $sum_dir $remote_ip $local_txt $remote_txt compare_txt $local_txt $remote_txt}maincksum.sh(扔到remote_ip上)#!/bin/bash# name:cksum.sh# auth:cyrus_chen# version:v1.0# sys:centos7# usage: bash cksum.sh /test 127.0.0.1 ./b.txtset -esum_dir=$1remote_txt=$2sudo find $sum_dir -type f|xargs cksum|awk '{print $1 "\t" $3}' > $remote_txthashsum.sh(扔到remote_ip上)#!/bin/bash# name:hashsum.sh# auth:cyrus_chen# version:v1.0# sys:centos7# usage: bash hashsum.sh md5sum /test 127.0.0.1 ./b.txtset -esum_method=$1sum_dir=$2remote_txt=$3sudo find $sum_dir -type f|xargs $sum_method > $remote_txt

February 17, 2022 · 2 min · jiezi

关于linux运维:linux时间管理

Linux工夫设置 date、hwclock、timedatectldate 查看及设置零碎工夫: [root@localhost ~]# dateThu Jan 13 16:30:27 CST 2022[root@localhost ~]# date -s "20220113 16:33:00"Thu Jan 13 16:33:00 CST 2022hwclock设置零碎工夫: [root@localhost ~]# hwclock2022-01-13 16:37:35.195393+08:00//同步硬件工夫到零碎工夫[root@localhost ~]# hwclock -s[root@localhost ~]# hwclock --hctosys//同步零碎工夫到硬件工夫[root@localhost ~]# hwclock -w[root@localhost ~]# hwclock --systohctimedatectl工夫治理: //查问工夫及时区[root@localhost ~]# timedatectl Local time: Thu 2022-01-13 16:53:10 CST Universal time: Thu 2022-01-13 08:53:10 UTC RTC time: Thu 2022-01-13 16:53:09 Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: yes NTP service: active RTC in local TZ: yes//查问并设置时区[root@localhost ~]# timedatectl list-timezones[root@localhost ~]# timedatectl set-timezone "Asia/Shanghai"//设置日期和工夫[root@localhost ~]# timedatectl set-time '16:10:40 2015-11-20'[root@localhost ~]# timedatectl set-time UTC//设置硬件工夫为本地工夫[root@localhost ~]# timedatectl set-local-rtc 1[root@localhost ~]# timedatectl set-local-rtc 0//Linux工夫同步 ntpdate、ntpd、chronydntpdate工夫同步: ...

January 13, 2022 · 4 min · jiezi

关于linux运维:12月发布两大特别专区一图了解龙蜥社区大事件

2021年已过,小龙带大家从经营看板、龙蜥看点、特地专区推送、生态亮点、龙蜥流动、精彩内容举荐六个方面回顾龙蜥社区 12 月都产生了哪些大事件。欢送更多的开发者退出,与咱们一起共建龙蜥社区,打造一个面向未来的开源操作系统!

January 12, 2022 · 1 min · jiezi

关于linux运维:centos74安装python39环境

本次针对于centos零碎和python3.9,其余版本操作类似补充知识点:centos自身环境里是有python默认版本的,我这里是Python 2.7.5,同时Linux下源码的装置个别由3个步骤组成:配置(configure)、编译(make)、装置(make install),装置python开发环境也是这个步骤 1、yum装置依赖环境yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel2、python官网下载Python3.9.0其余版本也是一样的1.官网地址https://www.python.org/点击downloads2.应用wget命令下载 yum -y install wgetwget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz3、创立装置目录mkdir /usr/local/python3 tar -zxvf Python-3.9.0.tarcd Python-3.9.0./configure --prefix=/usr/local/python3make && make install4、创立软链接ln -s /usr/local/python3/bin/python3 /usr/bin/python3ln -s /usr/local/python3/bin/pip3 /usr/bin/pip35、测试输出python 进入python2 输出python3 进入python3的解释器

January 5, 2022 · 1 min · jiezi

关于linux运维:Rocky-LinuxRocky-Linux-85版本全新图文安装教程并更换阿里镜像源等配置信息

一、参考链接阐明文章波及镜像下载和参考资料如下: Rocky Linux官网:https://rockylinux.org/ Rocky Linux官网装置手册文档:https://docs.rockylinux.org/zh/guides/installation/ Rcoky Linux 8.5版本镜像下载链接:https://www.rockylinux.org/download/ 阿里巴巴开源镜像站:https://developer.aliyun.com/mirror/ 阿里巴巴Rocky Linux镜像源链接:https://developer.aliyun.com/mirror/rockylinux?spm=a2c6h.13651102.0.0.46951b11x4Qj3N 二、什么是Rocky Linux?Rocky Linux是一个社区企业操作系统,旨在100%兼容美国顶级企业Linux发行版,因为其上游合作伙伴曾经扭转了方向。它正在由社区密集开发。Rocky Linux由CentOS我的项目的创始人Gregory Kurtzer领导。请贡献者应用此站点上提供的通信选项进行分割。 Rocky Linux 是 CentOS 的一个分支,它位于 Red Hat Enterprise Linux(RHEL) 的上游。与 CentOS 一样,它提供了非常适合服务器的稳定版 Linux。它旨在作为 CentOS 的齐全兼容替代品。 三、Rocky Linux零碎装置步骤1、下载Rocky Linux官网镜像Rocky-8.5-x86_64-dvd1.iso依据须要抉择对应的版本进行下载安装即可。 本试验应用Rocky-8.5-x86_64-dvd1.iso镜像进行安装操作。(此镜像大小约为9.98 GB ,可提前下载筹备至本地。) 2、进入Rocky Linux的初始装置界面抉择install Rocky Linux 8后,按下回车键enter,开始装置Rocky Linux。 3、抉择装置过程中的 语言本试验采纳中文装置。单击“持续”。 4、设置相干装置信息摘要本界面分为以下四个局部:本地化(键盘、语言反对以及工夫和日期)软件(装置源和软件抉择)零碎(装置目的地以及网络和主机名)用户设置(设置root明码和创立普通用户) (1)批改本地化中的工夫和日期设置地区为亚洲,城市为上海。 (2)设置软件中软件抉择。这里应用带GUI的服务器。点击“实现”。 (3)设置零碎中的磁盘分区抉择“自定义”进行分区。单击“实现”。进入下一个界面。这里抉择==LVM==磁盘分区计划,点击“点击这里主动创立它们”实现磁盘分区。磁盘分区实现,点击“实现”。确认磁盘分区,点击“承受更改”。 (4)在用户设置中设置ROOT明码若设置的ROOT明码太简略,须要按两次 实现 按钮能力容许设置。 5、装置信息设置实现后,开始装置期待装置实现。 6、装置实现,重启零碎 7、重启零碎后,进行初始化操作 (1)勾选✔许可条款 (2)完结配置 (3)设置用户名 (4)设置用户名明码 8、初始化实现,开始应用 三、Rocky Linux系统配置步骤1、批改主机名hostnamectl set-hostname rockstar 2、配置网络信息(1)批改ifcfg-ens160网络配置文件[root@rockstar ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens160 [root@rockstar ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noNAME=ens160UUID=f0ef2848-1724-475a-9187-31960c3e500aDEVICE=ens160ONBOOT=yesIPADDR=192.168.1.150PREFIX=24GATEWAY=192.168.1.1DNS1=8.8.8.8DNS2=114.114.114.114 ...

December 8, 2021 · 2 min · jiezi

关于linux运维:每周一个linux命令ping

根底环境 ping命令介绍 ping命令次要用来做IPv4、IPv6主机或网关是否可达、是否丢包、网络提早的测试命令,windows、linux、mac均具备此命令,各个平台应用相似,本教程以centos为根底。以下为官网定义翻译: ping 应用 ICMP 协定的强制 ECHO_REQUEST 数据报从主机或网关引出 ICMP ECHO_RESPONSE。 ECHO_REQUEST 数据报(``pings'')有一个 IP 和 ICMP 标头,后跟一个struct timeval 而后是任意数量的“pad”字节用于填充数据包。 ping 实用于 IPv4 和 IPv6。能够通过指定 -4 或 -6 来强制仅显式应用其中之一。 ping 还能够发送 IPv6 节点信息查问 (RFC4620)。可能不容许两头跃点,因为不举荐应用 IPv6 源路由 (RFC5095)。以下为官网定义原文: ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to elicit an ICMP ECHO_RESPONSE from a host or gateway. ECHO_REQUEST datagrams (``pings'') have an IP and ICMP header, followed by a struct timeval and then an arbitrary number of ``pad'' bytes used to fill out the packet. ping works with both IPv4 and IPv6. Using only one of them explicitly can be enforced by specifying -4 or -6. ping can also send IPv6 Node Information Queries (RFC4620). Intermediate hops may not be allowed, because IPv6 source routing was deprecated (RFC5095).ping常用命令参数 ping [参数] 主机或网关、域名-4 ping ipv4 地址,默认IPv4-6 ping ipv6 地址-c 发送ping包的数量ping 主机IP或网关ping 192.168.100.100网络可达状态 ...

November 20, 2021 · 1 min · jiezi

关于linux运维:每周一个linux命令ip

根底环境 Ip命令介绍ip命令是一个可能给linux零碎设置网络相干信息的命令,通过ip命令能够设置ip地址、子网掩码、网关、路由信息,本节次要解说ip地址的查看、长期ip地址、子网掩码、网关的设置。 查看所有网卡的ip地址ip a 留神: inet后边紧跟的是IP地址 查看单个网卡的IP地址ip addr show eth0 设置网卡的长期ip地址设置长期ipip addr add 192.168.100.18/24 dev eth0 查看更改后的成果 原文地址

November 6, 2021 · 1 min · jiezi

关于linux运维:SElinux给各种设置带来的困扰

#sestatusSELinux status: enabledSELinuxfs mount: /sys/fs/selinuxSELinux root directory: /etc/selinuxLoaded policy name: targetedCurrent mode: enforcingMode from config file: enforcingPolicy MLS status: enabledPolicy deny_unknown status: allowedMemory protection checking: actual (secure)Max kernel policy version: 31这表明SELinux已启动并正在运行。 要临时禁用SELinux,请运行命令。 # setenforce 0另外,您能够运行命令。 # setenforce Permissive这些命令中的任何一个都将临时禁用SELinux,直到下次重启为止。 如何在CentOS 8上永恒禁用SELinux# vi /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of these three values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected.# mls - Multi Level Security protection.SELINUXTYPE=targeted

October 11, 2021 · 1 min · jiezi

关于linux运维:Linux常用命令

一、根本命令1.1 关机和重启关机 shutdown -h now 立即关机shutdown -h 5 5分钟后关机poweroff 立即关机重启 shutdown -r now 立即重启shutdown -r 5 5分钟后重启reboot 立即重启1.2 帮忙命令--help命令 shutdown --help: ifconfig --help:查看网卡信息 man命令(命令说明书) man shutdown 留神:man shutdown关上命令说明书之后,应用按键q退出 二、目录操作命令2.1 目录切换 cd命令:cd 目录 cd / 切换到根目录cd /usr 切换到根目录下的usr目录cd ../ 切换到上一级目录 或者 cd ..cd ~ 切换到home目录cd - 切换到上次访问的目录 2.2 目录查看 ls [-al]命令:ls [-al] ls 查看当前目录下的所有目录和文件ls -a 查看当前目录下的所有目录和文件(包含暗藏的文件)ls -l 或 ll 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)ls /dir 查看指定目录下的所有目录和文件 如:ls /usr 2.3 目录操作【增,删,改,查】2.3.1 创立目录【增】 mkdir命令:mkdir 目录 ...

September 15, 2021 · 9 min · jiezi

关于linux运维:linux-环境配置相关命令

查看依赖须要如何装置 yum whatprovides libc.so.6参考:https://v5.net/CentOSApp/cent...

July 26, 2021 · 1 min · jiezi

关于linux运维:玩转Linux介绍一个强大的Linux服务器管理面板比宝塔更强

介绍之前大多数时候听到或者看到的Linux服务器的治理面板都是宝塔面板,的确宝塔面板十分不便而且好用,装置也简略,复制粘贴几句命令即可装置实现,且提供免费版,本文向大家介绍另一个Linux的服务器面板——AppNode,功能丰富,也提供免费版,且是永恒收费! 零碎要求操作系统: CentOS 6.x 32/64位CentOS 7.x 64位(暂不反对 Ubuntu、Debian)。内存要求: 倡议可用内存在 512MB 以上。装置教程官网提供了收费教程,且装置非常简单,能够通过配置的形式主动生成装置命令: 以上前提是你对Linux服务器有肯定的理解,至多你得会应用SSH客户端连贯你的服务器,这里向大家举荐收费的远程管理工具mRemoteNG或者应用FinalShell,上面是mRemoteNG的Github地址: https://github.com/mRemoteNG/...1、应用官网提供了命令配置生成配置脚本 2、通过SSH客户端连贯服务器(留神零碎要求) 3、查看装置演示: 装置至最初一步时,会顺次提醒您输出端口、用户名、明码,请依据提醒输出后按下回车键进入下一步,如果想应用中括号中的默认值,可间接按回车键。(动图不清晰,间接查看官网) 后盾治理介绍集中式设计,疾速切换治理 装置一个控制中心即可治理你的所有服务器,其它服务器只须要装置受控端。再也不必别离登录到每台服务器去治理了。 不限度服务器数量集中显示运行状况在线 SSH 终端连贯分组治理自定义节点名称反对通过 SSH 隧道连贯受控端多用户服务器权限治理(开发中) 弱小的网站治理性能 通过整合 Nginx、PHP、MySQL 等组件,帮忙您疾速创立和配置网站。 多种架构:PHP、纯动态、反向代理组件可选择性装置,PHP多版本并存创立网站时主动创立数据库和FTPRewrite、SSI、Gzip、跳转、缓存等丰盛的配置并发限度、申请限度、下载限速目录大小限度和写入防护HTTP/2.0、Let's Encrypt收费证书批量备份和导入,定时备份建站市场一键下载安装网站源码更多架构反对:Node.js、Java、Python(开发中) 疾速装置降级,丰盛的软件市场 仅需执行一条命令即可全自动装置,装置耗时不到 1 分钟。版本升级无需重装,一键点击即可在线降级。丰盛的软件市场,满足您多样化的服务器软件需要,您的服务器不再仅仅是 Web 服务器。 自定义装置命令基于零碎默认软件管理体系采纳 Go 语言开发,自带 HTTP 服务,环境无依赖软件批量装置、批量降级、主动降级超过 40+ 个应用软件性能超过 100+ 个 PHP 扩大超过 10+ 个 Nginx 模块软件还在一直继续减少和保护 多重平安加固,资源实时监控 从操作系统层面和利用层面,提供多项加固措施保障您的服务器和利用平安。弱小的系统监控性能,让您对服务器的资源耗费状况了如执掌。 SSH 登录告诉面板登录告诉防火墙疾速端口开关、IP 黑名单所有过程的端口凋谢状态集中查看和治理网站目录防护,禁止上传后门文件受控端反对走 SSH 隧道,不裸露新端口对系统资源应用状况的采集、监控和警报网站防 CC 攻打 全面凋谢的 API 全面凋谢的 API 机制,便于您将 AppNode 已有的性能整合到您的零碎中。 基于 HTTP/HTTPS 的 API 调用基于 HMAC-MD5 签名的 API 验证机制面板所有性能均基于 API 实现,开放度为 100%迷信的模块划分,每个模块领有本人的独立的 API 文档良好的 API 路由机制,从控制中心到受控端利用的 API 均可轻松调用 ...

May 9, 2021 · 1 min · jiezi

关于linux运维:解决mysqldbc2919-致命错误mysqlh没有那个文件或目录

问题形容 mysqldb.c:29:19: 致命谬误:mysql.h:没有那个文件或目录 #include <mysql.h> ^编译中断。make[2]: *** [mysqldb.o] 谬误 1解决centos7yum install gcc libffi-devel python-devel openssl-devel mysql-devel -ymysql-devel 次要是装置这个ubantusudo apt-get install libmysqlclient-dev

April 29, 2021 · 1 min · jiezi

关于linux运维:tmux用法介绍

tmux是什么?tmux(Terminal MultipleXer)终端复用器。tmux的构造包含会话(session)、窗口(window)、窗格(pane)三局部。 为什么要用tmux?如果要进行耗时操作,呈现断电或断网等状况,会话就会终止,会话中的过程也会随之终止。理论场景: 1.大数据传输2.大型项目编译3.多窗口切换到晕tmux作用1.容许在单个窗口中,同时拜访多个会话;2.能够让新窗口接入已存在的会话;3.容许每个会话有多个连贯窗口,可实现多人共享;4.反对窗口的任意垂直和程度拆分;根本用法1.装置# centosyum install -y tmux# ubuntu 或 Debiansudo apt-get install tmux# macbrew install tmux2.会话治理创立会话tmux new -s <session-name>创立一个新会话后,终端界面如下图所示:其中,左侧为会话信息,右侧为零碎信息。会话信息简介: [0] 0:testuser@scarlett:~*会话编号/名称 窗格号拆散会话tmux detach或者ctrl+b d通过上述命令能够退出以后tmux窗口,然而会话和里边的过程仍会在后盾进行; 查看会话tmux ls# 输入test_01: 1 windows (created Mon Mar 15 09:46:59 2021) [92x23]接入会话# 应用会话编号接入tmux attach -t 0# 应用名称接入tmux attach -t <session-name>kill会话tmux kill-session -t 0tmux kill-session -t <session-name>切换会话tmux switch -t 0tmux switch -t <session-name>重命名会话tmux rename-session -t 0 <new-name>tmux rename-session -t <session-name> <new-name>3.快捷键在tmux会话中进行快捷键操作唤起快捷键的前缀键: ctrl+b一些罕用的快捷键 ctrl+b d # 剥离以后会话ctrl+b s # 列出所有会话ctrl+b $ # 重命名以后会话3.窗格(pane)操作在tmux创立的会话中进行窗口宰割操作 ...

March 15, 2021 · 1 min · jiezi

关于linux运维:使用nodeexporter监控服务器状态

1 装置node_exporter指标监控主机操作系统:Ubuntu Server 20.04 一键装置脚本: sudo useradd --no-create-home --shell /bin/false node_exporter \&& cd /opt && wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz \&& tar xvf node_exporter-0.18.1.linux-amd64.tar.gz \&& sudo mv node_exporter-0.18.1.linux-amd64 /opt/node_exporter \&& sudo chown node_exporter:node_exporter /opt/node_exporter -R \&& sudo touch /etc/systemd/system/node_exporter.service \&& sudo echo '[Unit]Description=Node ExporterWants=network-online.targetAfter=network-online.target[Service]User=node_exporterGroup=node_exporterType=simpleExecStart=/opt/node_exporter/node_exporter --collector.systemd[Install]WantedBy=multi-user.target' > /etc/systemd/system/node_exporter.service \&& sudo systemctl daemon-reload \&& sudo systemctl enable node_exporter \&& sudo systemctl start node_exporter \&& sudo journalctl -f --unit node_exporter装置实现后拜访:http://${host}:9100/,确认服务失常启动,如下图所示: 2 装置Prometheus工夫序列数据库Prometheus通过基于HTTP的pull形式采集时序数据,能够通过服务发现或者动态配置去获取要采集的指标服务器,反对单主节点工作,反对多种可视化图表及仪表盘。 在中控节点装置Prometheus,一键装置脚本: sudo mkdir -p /opt/promethes \&& touch /opt/promethes/promethes.yml \&& sudo echo 'global: scrape_interval: 15s external_labels: monitor: 'codelab-monitor'scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090'] - job_name: 'node' scrape_interval: 5s static_configs: - targets: ['${host1}:9100','${host2}:9100', ...]' > /opt/promethes/promethes.yml \&& docker run -d --restart=always \ -p 9090:9090 \ -v /opt/promethes/promethes.yml:/etc/prometheus/prometheus.yml \ prom/prometheus加粗的targets的值是待监控的主机列表装置实现后拜访:http://${host}:9090/,确认服务失常启动,如下图所示: ...

February 23, 2021 · 1 min · jiezi

关于linux运维:01NSD云计算系统管理

什么是服务器?名词解释:可能为其余计算机提供服务的更高级的电脑!1.机架式2.塔式3.机柜式4.刀片机典型的服务模式C/S, Client/Server 架构有服务器提供资源或某种性能客户机应用资源或性能TCP/IP 协定TCP/IP 是最宽泛的通信协议包含大量的Internet利用中的标准协议反对跨网络架构、苦啊操作系统平台通信主机和主机之间的通信三要素 IP地址 子网掩码 IP路由 IP地址 作用:用来示意一个节点(连贯互联网设施)的网络地址 地址组成(点分十进制) 一共32个二进制数字 示意伟4个十进制数字,以 . 隔开 用于个别计算机网络 A类:1---127 网 主 主 主 B类:128---191 网 网 主 主C类:192---223 网 网 网 主子网掩码 为计算机标识IP地段的网络地位与主机位,利用二进制的1标识网络地位,利用二进制的0标识主机位 子网划分(理解) 网关概念与DNS服务器网关:解决不同网络的通信问题,一个网络到另一个网络的关口地址,波及到网络设备路由器一个网络的进口地址一个网络的进口地址

February 19, 2021 · 1 min · jiezi

关于linux运维:不定期找不到Intel-N-2230无线网卡

机器: Lenovo ThinkPad S440 (2014年出厂),也叫ThinkPad S3。操作系统:原装Windows 7,改装成Linux Mint 19、Manjaro,内核5.x相干硬件:Intel Wireless-N 2230无线网卡问题:在每次冷启动后,network manager会有1/3的概率显示没有无线网卡。用lspci也看不到该无线网卡。dmesg里看不到有error音讯。如果冷启动后显示有无线网卡,则无线网卡应用一切正常。在改装成Linux之前,Windows 7下应用齐全失常,从没呈现过无线网卡以概率失踪的状况。 PHP code? 1 2 $ uname -a Linux ThinkPad-S3 5.0.0-32-generic #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux PHP code? 1 2 $lspci 03:00.0 Network controller: Intel Corporation Centrino Wireless-N 2230 (rev c4) PHP code? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ...

February 18, 2021 · 1 min · jiezi

关于linux运维:服务器测试脚本集合

局部脚本来自Mr.KevinH综合测试原始版本Benchwget freevps.us/downloads/bench.sh -O - -o /dev/null|bash秋水逸冰的Bench.sh脚本特点:显示以后测试的各种零碎信息取自世界多处的出名数据中心的测试点,下载测试比拟全面反对 IPv6 下载测速;IO 测试三次,并显示平均值。应用:wget -qO- bench.sh | bash或者 curl -Lso- bench.sh | bash或者 wget -qO- 86.re/bench.sh | bash或者 curl -so- 86.re/bench.sh | bashGithub地址https://github.com/teddysun/across/blob/master/bench.sh 老鬼的SuperBench测试脚本这个脚本是在基于秋水大佬脚本的根底上,退出了独服通电工夫,服务器虚拟化架构等内容 特点:改良了显示的模式,基本参数增加了色彩,方面辨别与查找。I/O测试,更改了原来默认的测试的内容,采纳小文件,中等文件,大文件,别离测试IO性能,而后取平均值。速度测试替换成了 Superspeed 外面的测试,第一个默认节点是,Speedtest 默认,其余别离测试到中国电信,联通,挪动,各三个不同地区的速度。 应用办法wget -qO- --no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash或者 curl -Lso- -no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bashGithub https://github.com/oooldking/script/blob/master/superbench.sh 91yuntest在线脚本生成地址 https://www.91yuntest.com/ 一般模式wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh && bash test_91yun.sh一般模式就是之前的测试惯例内容。测试输入后果请参考:一般模式后果款式参考 简略模式wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh && bash test_91yun.sh s简略模式的测试蕴含:惯例零碎参数检测,带宽测试,IO测试和全国ping测试。测试输入后果请参考:简略模式后果款式参考次要因为一般模式的下载测试和路由测试有些耗时,有时大家可能只须要疾速取得这台服务器的参数,带宽,io和提早是多少。那么简略模式能够节俭大量的工夫。如果须要进一步的信息则能够应用一般模式。相比一般模式,就是在命令最初加个s参数: bash test_91yun.sh s 齐全模式wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh && bash test_91yun.sh a齐全模式相比一般模式多了unixbench的测试,测试输入后果请参考:齐全模式后果款式参考相比一般模式,就是在命令最初加个a参数: bash test_91yun.sh a因为unixbench的测试极其耗资源(cpu和io会长工夫处于占满状态),有些IDC禁用,会杀过程或者判断滥用。请审慎测试。另外unixbench的测试也极其耗时间,倡议大家在screen下运行。 ...

December 13, 2020 · 1 min · jiezi

关于linux运维:详解MySQL两阶段加锁协议

前言此篇博客次要是讲述MySql(仅限innodb)的两阶段加锁(2PL)协定,而非两阶段提交(2PC)协定,区别如下: 2PL,两阶段加锁协定:次要用于单机事务中的一致性与隔离性。 2PC,两阶段提交协定:次要用于分布式事务。 MySql自身针对性能,还有一个MVCC(多版本控制)管制,本文不思考此种技术,仅仅思考MySql自身的加锁协定。 什么时候会加锁在对记录更新操作或者(select for update、lock in share model)时,会对记录加锁(有共享锁、排它锁、意向锁、gap锁、nextkey锁等等),本文为了简略思考,不思考锁的品种。 什么是两阶段加锁在一个事务外面,分为加锁(lock)阶段和解锁(unlock)阶段,也即所有的lock操作都在unlock操作之前,如下图所示: 为什么须要两阶段加锁引入2PL是为了保障事务的隔离性,即多个事务在并发的状况下等同于串行的执行。 在数学上证实了如下的封闭定理: 如果事务是良构的且是两阶段的,那么任何一个非法的调度都是隔离的。 具体的数学推到过程能够参照<<事务处理:概念与技术>>这本书的7.5.8.2节.此书乃是对于数据库事务的圣经,无需解释(中文翻译尽管艰涩,也能保持读上来,强烈推荐) 工程实际中的两阶段加锁-S2PL在理论状况下,SQL是变幻无穷、条数不定的,数据库很难在事务中断定什么是加锁阶段,什么是解锁阶段。于是引入了S2PL(Strict-2PL),即: 在事务中只有提交(commit)或者回滚(rollback)时才是解锁阶段,其余工夫为加锁阶段。 如下图所示:这样的话,在理论的数据库中就很容易实现了。 两阶段加锁对性能的影响下面很好的解释了两阶段加锁,当初咱们剖析下其对性能的影响。思考上面两种不同的扣减库存的计划: 计划1:begin;// 扣减库存update t_inventory set count=count-5 where id=${id} and count >= 5;// 锁住用户账户表select * from t_user_account where user_id=123 for update;// 插入订单记录insert into t_trans;commit; 计划2:begin;// 锁住用户账户表select * from t_user_account where user_id=123 for update;// 插入订单记录insert into t_trans;// 扣减库存update t_inventory set count=count-5 where id=${id} and count >= 5;commit; 因为在同一个事务之内,这几条对数据库的操作应该是等价的。但在两阶段加锁下的性能确是有比拟大的差距。两者计划的时序如下图所示: 因为库存往往是最重要的热点,是整个零碎的瓶颈。那么如果采纳第二种计划的话,tps应该实践上可能晋升3rt/rt=3倍。这还仅仅是业务就只有三条SQL的状况下,多一条sql就多一次rt,就多一倍的工夫。 值得注意的是: ...

November 13, 2020 · 1 min · jiezi

关于linux运维:Linux运维工程师常用命令收藏

1、删除0字节文件 find -type f -size 0 -exec rm -rf {} ;2、查看过程 按内存从大到小排列 PS -e -o "%C : %p : %z : %a"|sort -k5 -nr3、按 CPU 利用率从大到小排列 ps -e -o "%C : %p : %z : %a"|sort -nr4、打印 cache 里的URL grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'5、查看 http 的并发申请数及其 TCP 连贯状态: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'6、sed 在这个文里 Root 的一行,匹配 Root 一行,将 no 替换成 yes ...

November 12, 2020 · 3 min · jiezi

关于linux运维:Linux系统性能监控命令系列之-lsof

大家好!我是Sean! 持续咱们的Linux零碎中的性能监控命令,明天要分享的是lsof。 lsof (list open files) (一个列出以后零碎关上文件的工具)在linux环境下,万物皆文件,通过文件不仅仅能够拜访惯例数据,还能够拜访网络连接和硬件,所以如传输控制协议 (TCP) 和用户数据报协定 (UDP) 套接字等,零碎在后盾都为该应用程序调配了一个文件描述符,无论这个文件的实质如何,该文件描述符为应用程序与根底操作系统之间的交互提供了通用接口。因为应用程序关上文件的描述符列表提供了大量对于这个应用程序自身的信息,因而通过lsof工具可能查看这个列表对系统监测以及排错将是很有帮忙的。lsof如许弱小! 命令参数-a:列出关上文件存在的过程;-c<过程名>:列出指定过程所关上的文件;-g:列出GID号过程详情;-d<文件号>:列出占用该文件号的过程;+d<目录>:列出目录下被关上的文件;+D<目录>:递归列出目录下被关上的文件;-n<目录>:列出应用NFS的文件;-i<条件>:列出符合条件的过程。(4、6、协定、:端口、 @ip )-p<过程号>:列出指定过程号所关上的文件;-u:列出UID号过程详情;-h:显示帮忙信息;-v:显示版本信息。lsof输入各列的意义COMMAND:过程的名称PID:过程标识符PPID:父过程标识符(须要指定-R参数)USER:过程所有者PGID:过程所属组FD:文件描述符,应用程序通过文件描述符辨认该文件DEVICE:指定磁盘的名称SIZE:文件的大小NODE:索引节点(文件在磁盘上的标识)NAME:关上文件的确切名称FD列显示内容含意1. cwd:示意current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它自身对这个目录进行更改2. txt:该类型的文件是程序代码,如应用程序二进制文件自身或共享库,如上列表中显示的 /sbin/init 程序3. lnn:library references (AIX);4. er:FD information error (see NAME column);5. jld:jail directory (FreeBSD);6. ltx:shared library text (code and data);7. mxx :hex memory-mapped type number xx.8. m86:DOS Merge mapped file;9. mem:memory-mapped file;10. mmap:memory-mapped device;11. pd:parent directory;12. rtd:root directory;13. tr:kernel trace file (OpenBSD);14. v86 VP/ix mapped file;15. 0:示意规范输入16. 1:示意规范输出17. 2:示意规范谬误个别在规范输入、规范谬误、规范输出后还跟着文件状态模式:1. u:示意该文件被关上并处于读取/写入模式。2. r:示意该文件被关上并处于只读模式。3. w:示意该文件被关上并处于。4. 空格:示意该文件的状态模式为unknow,且没有锁定。5. -:示意该文件的状态模式为unknow,且被锁定。同时在文件状态模式前面,还跟着相干的锁:1. N:for a Solaris NFS lock of unknown type;2. r:for read lock on part of the file;3. R:for a read lock on the entire file;4. w:for a write lock on part of the file;(文件的局部写锁)5. W:for a write lock on the entire file;(整个文件的写锁)6. u:for a read and write lock of any length;7. U:for a lock of unknown type;8. x:for an SCO OpenServer Xenix lock on part of the file;9. X:for an SCO OpenServer Xenix lock on the entire file;10. space:if there is no lock.TYPE列显示内容含意1. DIR:示意目录。2. CHR:示意字符类型。3. BLK:块设施类型。4. UNIX: UNIX 域套接字。5. FIFO:先进先出 (FIFO) 队列。6. IPv4:网际协议 (IP) 套接字。7. REG:一般文件常用命令查看所有曾经关上的文件,不须要跟参数即可,不过输入的内容比拟多lsof ...

November 5, 2020 · 2 min · jiezi

关于linux运维:Linux系统性能监控命令系列之-sar

大家好,我是Sean 在应用咱们碰到问题堪称是形形色色,零碎卡顿、死机、宕机、I/O呈现瓶颈等等,这时,咱们应该思考应用零碎给咱们提供的sar命令来对系统作一个理解,该命令是系统维护的重要工具,次要帮忙咱们把握系统资源的应用状况,特地是内存和CPU 的应用状况。 sar(零碎运行状态统计工具)在应用咱们碰到问题堪称是形形色色,零碎卡顿、死机、宕机、I/O呈现瓶颈等等,这时,咱们应该思考应用零碎给咱们提供的sar命令来对系统作一个理解,该命令是系统维护的重要工具,次要帮忙咱们把握系统资源的应用状况,特地是内存和CPU 的应用状况。 sar命令 是Linux下零碎运行状态统计工具,它将指定的操作系统状态计数器显示到规范输出设备。sar工具将对系统以后的状态进行取样,而后通过计算数据和比例来表白零碎的以后运行状态。它的特点是能够间断对系统取样,取得大量的取样数据。取样数据和剖析的后果都能够存入文件,应用它时耗费的系统资源很小。 启动命令参数-A:显示所有的报告信息;-b:显示I/O速率;-B:显示换页状态;-c:显示过程创建活动;-d:显示每个块设施的状态;-e:设置显示报告的完结工夫;-f:从指定文件提取报告;-i:设状态信息刷新的间隔时间;-P:报告每个CPU的状态;-R:显示内存状态;-u:显示CPU利用率;-v:显示索引节点,文件和其余内核表的状态;-w:显示替换分区状态;-x:显示给定过程的状态。常用命令查看CPU应用状况sar 1 3 或 sar -u 1 3 每1秒打印一次cpu情况,打印3次后退出将cpu统计后果保留到文件sar -o test 1 3每1秒打印一次cpu情况,打印3次后退出,并保留到文件testsar -f test查看保留到test文件的cpu记录查看均匀负载sar -q 1 3查看零碎swap分区统计状况sar -W 1 3查看IO和传递速率sar -b 1 3查看磁盘应用状况sar -d 统计网络信息 sar -n DEVsar -n EDEV统计socket连贯信息 sar -n SOCKTCP连贯的统计 sar -n TCP查看内存应用状况sar -r 1 3命令详解查看CPU应用状况sar 1 3 或 sar -u 1 3 %user 用户空间的CPU应用%nice 扭转过优先级的过程的CPU使用率%system 内核空间的CPU使用率%iowait CPU期待IO的百分比 %steal 虚拟机的虚拟机CPU应用的CPU%idle 闲暇的CPU在以上的显示当中,次要看%iowait和%idle,%iowait过高示意存在I/O瓶颈,即磁盘IO无奈满足业务需要,如果%idle过低示意CPU使用率比较严重,须要联合内存应用等状况判断CPU是否瓶颈 sar还能够把CPU应用状况记录成二进制文件,并能够从新读取: 生成文件:sar -o test 1 3查看文件:sar -f test查看均匀负载sar -q 1 3 ...

November 5, 2020 · 1 min · jiezi

关于linux运维:在linux上部署项目

在linux上部署我的项目linux的配置1.查看网络ping www.baidu.com 1.2装置数据库mariadbsudo yum install mariadb-server 1.3连贯数据库配置1.启动数据库systemctl start mariadb 2.批改数据库明码mysql_secure_installation 3.进入数据库批改权限mysql -uroot -proot;use mysql; select host,user from user; update user set host='%' where host='localhost';flush privileges; 4.防火墙策略firewall-cmd --state // 查看防火墙开闭状态 firewall-cmd --list-ports // 查看防火墙凋谢端口 firewall-cmd --query-port=80/tcp // 查看端口是否凋谢 firewall-cmd --add-port=80/tcp --permanent // 增加端口firewall-cmd --reload // 重启防火墙 systemctl disable firewalld.service // 设置当前默认敞开防火墙 5.连贯数据库ip addr // 查看本机ip地址 1.4连贯数据库 连贯后的界面 插入数据库2.反向代理Nginx的装置和应用2.1批改hosts文件 在文件中增加如下代码192.168.126.128 image.jt.com 192.168.126.128 manage.jt.com127.0.0.1 www.jt.com127.0.0.1 sso.jt.com127.0.0.1 localhost2.2装置nginx 应用MobaXterm软件,连贯虚拟机 进入工作目录cd /usr/local/src/ ...

October 12, 2020 · 1 min · jiezi

关于linux运维:oeasy教您玩转linux010110内容回顾

咱们来回顾一下????咱们都讲了什么????? linux的历史⌨️各种发行版的生生灭灭零碎运作的过程????程序运行的过程各种命令⌨️命令行技巧????命令Command????unamecdlscatpwdman灵魂三问whatiswhereiswhich命令行快捷方式????记忆命令⬆️ 上一条命令⬇️️ 下一条命令ctrl+r 搜寻历史命令疾速挪动⬅️ 向左一格➡️️ 向右一格ctrl + ⬅️ 向左一个单词ctrl + ➡ 向右一个单词ctrl + a 间接到头ctrl + e 间接到尾疾速删除ctrl + c 疏忽以后行ctrl + u 全副删除ctrl + k 从光标地位删除到结尾登出零碎ctrl + d 登出零碎log out这就是咱们最开始接触到的linux很乏味,筹备进入更好玩的游乐场吧!!!????

September 1, 2020 · 1 min · jiezi

关于linux运维:oeasy教您玩转linux010108到底哪个which

回顾上次内容????咱们上次讲了查找命令地位whereis 我想找到whereis的地位怎么办????? whereis whereis 命令有三种地位二进制代码binary源代码source帮忙手册manual咱们找到了ls对应的源代码的地位,然而咱们有的时候会面对这样的问题,一个命令有多条二进制代码和他对应.咱们到应用的是哪个????? 到底哪个?which????比方咱们想晓得咱们应用的java在哪里????? whereis java 我只想查java的二进制文件 whereis -b java 也有好多,到底哪个????? 比方咱们想晓得咱们应用的java在哪里? which java 这样咱们就失去了二进制外面的第一个,也就是咱们执行命令时候对应硬盘的地位.咱们来玩吧????各种命令都来当which的参数 which pwdwhich unamewhich whatiswhich whereis当初咱们有了三个灵魂之问了✊ whatis 你是谁whereis 你在哪which 到底在哪通过这三个命令咱们能够晓得,任何命令的作用、地位,咱们给这三个问号起名叫灵魂三问 !???? 灵魂三问咱们来对cat命令,试试这个灵魂三问 `whatis cat whereis cat which cat ` 有了这三个命令咱们就能够理解任何命令的根本信息了!咱们再去问问什么命令呢?????下次再说!????上一章010107whereis 参加制作 去做试验 下一章010109clear

August 30, 2020 · 1 min · jiezi

关于linux运维:oeasy教您玩转linux010107那啥在哪-whereis

回顾上次内容 ????上次讲了 ls 的参数 (arguement) 和选项 (option) 的设置。当初咱们要制作这样一个列表:????对于 /proc 门路进行列表对子门路递归列表显示暗藏文件显示详细信息其中容量应用人们熟知的单位大家遗记了吗?!!???? 没关系,咱们能够查手册,???? 那么做完了之后能够思考,ls 到底在哪????? ls 在哪?????想要晓得 ls 在哪就得用新命令 whereis,命令的参数是 ls,综合起来就是: whereis ls咱们能够失去 ls 两个硬盘地位: /bin/ls /usr/share/man/man1/ls.1.gz为什么 ls 在硬盘里?????ls 文件最开始在 /bin 这个地位当我在命令行敲击之后 ls 回车之后操作系统要求运行 ls 程序操作系统分配内存空间给 ls操作系统把 ls 从硬盘加载到内存中操作系统调配 cpu 资源去执行程序最终把 ls 的后果输入到规范输入流(屏幕)上为什么 ls 命令对应两个地位呢 ????咱们能够对 whereis 收回询问: whatis whereiswhereis 能够帮咱们定位命令的地位然而 whereis 形容太简略了,咱们能够查问 whereis 的手册 man:???? man whereis咱们能够查问到 whereis 的具体内容:???? 试试选项的性能whereis -b lsb 的意思是 binary 二进制查找 whereis 二进制二进制文件在/bin 里whereis -mm 的意思是 manual 文档查找 whereis 的文档文档在/usr/share/man 外面总结来说:whereis -b ls 是二进制命令,whereis -m 另一个是帮忙手册。 ...

August 29, 2020 · 1 min · jiezi