关于linux:Linux之lsof命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 lsof(list open files)是一个查看以后系统文件的工具。在linux环境下,任何事物都以文件的模式存在,通过文件不仅仅能够拜访惯例数据,还能够拜访网络连接和硬件。如传输控制协议 (TCP) 和用户数据报协定 (UDP) 套接字等,零碎在后盾都为该应用程序调配了一个文件描述符,该文件描述符提供了大量对于这个应用程序自身的信息。 装置lsofCentos > yum install lsof -yUbuntu > sudo apt-get install lsof -y命令格局lsof [参数][文件] 命令性能用于查看你过程开打的文件,关上文件的过程,过程关上的端口(TCP、UDP)。找回/复原删除的文件。是非常不便的零碎监督工具,因为lsof须要拜访外围内存和各种文件,所以须要root用户执行。lsof关上的文件能够是:1.一般文件2.目录3.网络文件系统的文件4.字符或设施文件5.(函数)共享库6.管道,命名管道7.符号链接8.网络文件(例如:NFS file、网络socket,unix域名socket)9.还有其它类型的文件,等等命令参数-a 列出关上文件存在的过程-c<过程名> 列出指定过程所关上的文件-g 列出GID号过程详情-d<文件号> 列出占用该文件号的过程+d<目录> 列出目录下被关上的文件+D<目录> 递归列出目录下被关上的文件-n<目录> 列出应用NFS的文件-i<条件> 列出符合条件的过程。(4、6、协定、:端口、 @ip )-p<过程号> 列出指定过程号所关上的文件-u 列出UID号过程详情-h 显示帮忙信息-v 显示版本信息列出零碎所有关上的文件> lsof | more 会有很多数据, 下面只截取了一部分字段阐明COMMAND:过程的名称PID:过程标识符PPID:父过程标识符(须要指定-R参数)USER:过程所有者PGID:过程所属组FD:文件描述符,应用程序通过文件描述符辨认该文件。如cwd、txt等TYPE:文件类型,如DIR、REG等,常见的文件类型 (1)DIR:示意目录(2)CHR:示意字符类型(3)BLK:块设施类型(4)UNIX: UNIX 域套接字(5)FIFO:先进先出 (FIFO) 队列(6)IPv4:网际协议 (IP) 套接字DEVICE:指定磁盘的名称SIZE:文件的大小NODE:索引节点(文件在磁盘上的标识)NAME:关上文件的确切名称FD 阐明 查看/bin/bash被谁占用> lsof /bin/bashCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEbash 14443 root txt REG 253,1 960392 140072 /usr/bin/bash递归查看当前目录文件信息> lsof .COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEbash 14443 root cwd DIR 253,1 4096 131073 .lsof 16522 root cwd DIR 253,1 4096 131073 .lsof 16523 root cwd DIR 253,1 4096 131073 .子目录文件占用状况也显示进去> lsof +D .COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEbash 14443 root cwd DIR 253,1 4096 131073 .lsof 16426 root cwd DIR 253,1 4096 131073 .lsof 16427 root cwd DIR 253,1 4096 131073 .YDService 17532 root 27r REG 253,1 79613 131087 ./.bash_history不应用+D选项,遍历查看某个目录的所有文件信息的办法> lsof | grep "rumenz/temp"列出某个用户关上的文件信息> lsof -u root | more ...

February 22, 2022 · 2 min · jiezi

关于linux:Linux-开发者赢了研究称-Linux-的漏洞修复速度比苹果微软和谷歌都快

始终以来,业界对于“Linux 发行版到底是不是比 Windows 或 macOS 更平安”这个话题的争执就没断过。近日,谷歌 Project Zero 通过钻研,在修补安全漏洞方面得出了一些乏味发现:Linux 开发者修复安全漏洞的速度比其余任何平台都快。 谷歌 Project Zero 是一支由谷歌平安分析师组成的团队,用于查找开源我的项目中的零日破绽。 据谷歌平安钻研我的项目(security research program)近两年来在软件中发现的安全漏洞相干信息显示:自 2019 年 1 月至 2021 年 12 月,Project Zero 团队发现 Linux 开发人员解决问题的速度远远快于苹果、微软及谷歌(甚至比谷歌本人的外部团队在 Chrome、Chrome OS 和 Android 上做得更好)。 在报告中,谷歌 Project Zero 分享了一组数据:其中苹果软件被发现有 84 个安全漏洞,微软 80个、谷歌 56 个,而 Linux 只有 25 个。要害在破绽解决速度上,Linux 开发者修复破绽的速度比任何人都快。 只管苹果可能在问题报告后 90 天内修复 87% 的破绽,但微软仅修复了 76%。谷歌则在 90 天“窗口工夫”内修复了 95% 的安全漏洞,体现良好;而 Linux 开发者则修复了 96% 的破绽,属于是稳赢了。 该报告数据显示,苹果、谷歌、Linux 和 微软这四大平台外面,“Windows 制造商”解决问题的速度最慢 —— 微软均匀花了 83 天来修复破绽;苹果则以 69 天的工夫排在第二位。谷歌的破绽修复均匀须要 44 天,但 Linux 软件的问题以极快的速度失去解决:均匀只需 25 天。 ...

February 22, 2022 · 1 min · jiezi

关于linux:知名服务器运维软件厂商堡塔加入龙蜥社区并完成与-Anolis-OS-兼容适配

近日,广东堡塔平安技术有限公司(以下简称“堡塔”)签订了 CLA(Contribution License Agreement,贡献者许可协定),正式退出龙蜥社区(OpenAnolis)。 堡塔成立于 2017 年,是国内出名服务器运维软件企业,专一于服务器运维效率及运维平安畛域,次要为中小型企业、政企单位以及须要应用服务器的团队提供新一代的服务器运维产品和服务。凭借继续的研发投入及一直的翻新迭代,堡塔已倒退为产品体系比拟残缺的服务器运维软件供应商。至今,其产品已在国内 600 万台服务器上安装部署,被上千个中大型企业及政企抉择应用。 目前,堡塔运维团队曾经深刻测试龙蜥操作系统(Anolis OS),实现与龙蜥操作系统的兼容适配,如有用户在应用堡塔面板的过程中遇到问题,能够到堡塔官方论坛进行反馈,运维团队会继续跟进龙蜥操作系统的更新,放弃适配。 堡塔联结创始人陈旭桥示意:“很快乐能退出龙蜥社区,期待将来与龙蜥社区的进一步单干,欠缺生态适配,推动利用生态凋敝倒退。” —— 完 —— 退出龙蜥社群 退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态! 对于龙蜥社区 龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

February 22, 2022 · 1 min · jiezi

关于linux:Linux下使用supervisor实现进程管理

最近在linux下写了一个脚本须要在linux后盾始终运行,这里我应用了supervisor来实现脚本过程治理 一:supervisor装置1:yum装置yum install supervisor 2:pip装置pip install supervisor 二:supervisor常用命令supervisorctl status //查看所有过程的状态supervisorctl stop xx //进行指定过程(all为所有过程)supervisorctl start xx //启动指定过程(all为所有过程)supervisorctl restart //重启supervisorctl update //配置文件批改后应用该命令加载新的配置supervisorctl reload //重新启动配置中的所有程序systemctl start supervisord.service //启动supervisor并加载默认配置文件systemctl enable supervisord.service //将supervisor退出开机启动项三:将指定命令退出过程治理实例1:supervisor配置supervisor配置文件:/etc/supervisord.conf子过程配置文件门路:/etc/supervisord.d/ (子过程的配置文件为ini格局)咱们减少一个命令到过程中只须要在子过程配置文件目录下创立一个ini过程文件进行配置即可例:vim /etc/supervisord.d/test.ini在test.ini文件中退出如下命令: [program:test] #我的项目过程名称dircetory=/XXX #过程目录command=XXX #过程命令autostart = true #在supervisord启动的时候是否主动启动autorestart=false #程序退出后是否主动重启#日志输入 stderr_logfile=/tmp/client_stderr.logstdout_logfile=/tmp/client_stdout.loguser=www #脚本运行的用户身份 2:将test过程退出过程治理systemctl start supervisord.servicesupervisorctl updatesupervisorctl reloadsupervisorctl start test依据如上安排就能够实现将指定脚本退出过程治理

February 22, 2022 · 1 min · jiezi

关于linux:树莓派-Raspberry-Pi-bullseye更换阿里云源方法

一、装置树莓派零碎首先下载树莓派的零碎,镜像官网(https://www.raspberrypi.com/)速度下载比较慢,举荐应用阿里云镜像站下载。阿里云镜像站官网:https://developer.aliyun.com/...阿里云树莓派零碎镜像地址:https://mirrors.aliyun.com/ra...而后咱们找到下载地址下载:https://mirrors.aliyun.com/ra...基于Debian11,以后日期是2022-02-16,目前最新的零碎。下载结束后解压,而后应用Win32DiskImager刷入内存卡,烧录零碎这里就不多说了。把内存卡插入树莓派,通电开机,而后通过hdmi线接入显示器。就能够进入零碎了。二、Raspberry Pi 更换阿里云源办法自带的源在海内,访问速度比较慢,更换成阿里云的源后装置软件速度会晋升很大。阿里云raspberrypi 镜像源地址:https://developer.aliyun.com/...其余源:http://www.raspbian.org/Raspb... 编辑 /etc/apt/sources.list 文件,这里举荐就用零碎自带的 nano 命令编辑,命令如下:sudo nano /etc/apt/sources.list进入编辑界面,删除原有的内容,粘贴如下内容:deb http://mirrors.aliyun.com/ras... bullseye main non-free contrib rpideb-src http://mirrors.aliyun.com/ras... bullseye main non-free contrib rpi更新软件索引清单sudo apt-get update比拟索引清单更新依赖关系sudo apt-get upgrade -y

February 21, 2022 · 1 min · jiezi

关于linux:福昕鲲鹏加入龙蜥社区迎来版式文档技术服务新伙伴

近日,福昕鲲鹏(北京)信息科技有限公司(简称“福昕鲲鹏”)正式退出龙蜥社区(OpenAnolis),与社区生态搭档共建龙蜥社区。 福昕鲲鹏成立于 2014 年,是国家版式文档规范 OFD 的开创成员和核心成员之一,参加制订了国家系列电子文档规范和标准。福昕鲲鹏秉承自主研发、利用翻新、市场引领的理念,专一于 OFD/PDF 版式技术在电子公文、电子证照、电子档案、电子票据等行业的利用,致力于成为国内乃至寰球范畴内当先的 OFD 版式电子文档技术提供商。 福昕 OFD 版式办公套件软件实现了对国家 OFD 版式规范与国内 PDF 规范的双格局反对,也率先实现对多民族语言的反对,荣获第 20 届国内软件博览会上金奖等多个奖项,并于 2019 年成为网信事业(数字政府)翻新驱动示范产品。福昕 OFD 版式办公套件软件及系列产品自推出以来,为政务、司法、航空航天、能源、金融、医疗、教育、物流等泛滥行业提供宽泛的版式办公应用服务,推动了数字化办公过程,广受用户好评。 福昕鲲鹏策略倒退核心总经理肖乐示意:“当先的技术、产品离不开产业生态搭档的严密协同,福昕鲲鹏继续深入产业生态厂商的横向单干。福昕鲲鹏退出龙蜥社区后,将积极参与社区单干,致力为产业构建更欠缺的生态体系添砖加瓦。秉承‘凋谢、单干’的社区主旨,与社区搭档们一起,促成公司产品与相干畛域的各类产品、解决方案交融及翻新倒退,鼎力推动根底软件产品的生态布局,为开源社区奉献技术力量。”—— 完 —— 退出龙蜥社群 退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态!对于龙蜥社区 龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

February 21, 2022 · 1 min · jiezi

关于linux:从一道面试题来聊聊linux的df和du命令

作为面试官,面试候选人时,常常会考linux的根底命令,毕竟招来的人基本功要好,要能干活,通常linux命令是我必考候选人的一关,这也是老板要求的,如果很罕用的命令都不会,我感觉候选人可能linux服务器接触的少(因为从面试人的反馈来说,有的人会通知我,平时这些都是运维来操作的,我作为一个业务开发没怎么关注过),那基本上这样的面试者可能给我的面试印象就大打折扣了。 记得之前我出过一道这样的面试题,旨在考linux 基本功,题目粗心是:在运维过程中,如果收到服务器磁盘告警,该如何解决?(如何找到哪个目录占用磁盘空间大,或者如何找出占用磁盘空间大的前几个目录或文件?) 其实这道题答复的比拟完满的候选人比拟少,有答df的,有答不晓得的,也有答du的,然而持续诘问的话,答复的不置可否。对本人答案又不自信了。 上面我来大略的说一下作为面试官(或者我本人),个别想听到什么样的答案? 首先第一层,我想听到df命令的答案,个别我会先用df -h查看linux服务器的文件系统的磁盘空间(分区/设施文件门路)占用总体的状况,不便晓得哪个设施目录磁盘有余了。 [root@xxx /tmp]# df -h文件系统 容量 已用 可用 已用% 挂载点devxxx 16G 0 16G 0% /devxxx 16G 24K 16G 1% /dev/shmxxx 16G 266M 16G 2% /runxxx 16G 0 16G 0% /sys/fs/xxxx/dev/vda1 99G 28G 67G 30% //dev/vdb1 493G 393G 75G 85% /dataxxx 3.1G 0 3.1G 0% /run/user/0ip:/eee x.0P xT x.xP 6% /mnt/yyy/ddd从上图看(已用%)列,能够看到,/data目录占用了85%,是已应用占比最大的,当磁盘告警时,有些公司的告警策略会通知运维人员,哪个文件系统超了多少percent(80%或90%,具体看告警阈值的设定是多少),须要去解决,如果没有通知是哪个文件系统门路的话,首先得用df -h 查看。 其次第二层,我想听到的是du命令这个答案,当我晓得哪个文件系统占比高须要解决(删除)文件之后,我得晓得要去哪个目录删哪些文件,此时必定是要找到此文件系统目录中,哪个目录占比大?这样删除大文件后能很快解除磁盘告警。 [root@job1 /data]# du -sh ./* | sort -hr | head -n 10183G ./tmp93G ./tmp_ddd71G ./logs35G ./aaa14G ./home51M ./bbb3.1M ./ccc20K ./ddd16K ./eee8.0K ./fff下面是我平时喜爱用的一个du命令,兴许他无奈一把找出具体哪个文件大,然而胜在够快和直观,可能不同开发所用的命令会略有不同,但大体罕用的参数差不多,有-ah的,有-sh的,有加max-depth的,大同小异,鄙人习惯了上述代码中的命令,速度快,不需递归上来,如果要持续找,能够继续应用该命令。 ...

February 20, 2022 · 1 min · jiezi

关于linux:Linus-在-1994-年被丢失的演讲录音公开

Linux Professional Institute 董事会主席 Jon Maddog Hall 在 Archive.org 上公开了 Linus Torvalds 在 1994 年发表的主题演讲录音。Linus 在 1994 年被失落的演讲录音公开Linus 在 1994 年被失落的演讲录音公开 Linux Professional Institute 董事会主席 Jon Maddog Hall 在 Archive.org 上公开了 Linus Torvalds 在 1994 年发表的主题演讲录音。 依据 Jon Maddog Hall 的介绍,在 1994 年 DECUS 大会期间,过后他看到还没意识的 Linus 帮忙 DECUS UNISIG 主席 Kurt Reisler 在英特尔电脑上装置好了 GNU/Linux,并在当天晚些时候看到 Linus 发表了两场演讲。Jon 示意本人在应用 Linux 后的感触是非常诧异,还给出了十分好的评估。 Linus 在 1994 年被失落的演讲录音公开Linus 在 1994 年被失落的演讲录音公开 过后 Linus 年仅 24 岁,发表的两场演讲主题别离为:"An Introduction to Linux" 和 "Implementation Issues in Linux"。Jon 介绍称,这是 Linus 第一次在大型会议上探讨 Linux(共有 1.9 万人加入了 DECUS'94 大会),并应用英语给母语为英语的听众做演讲,不过只有 40 人前来听他的演讲。尽管 Linus 在这次演讲中体现得有点缓和,但还是播种了热烈一直的掌声。 ...

February 20, 2022 · 1 min · jiezi

关于linux:lrzsz安装lrzsz工具实现Linux和Windows系统之间文件便捷上传与下载

一、参考链接阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 centos镜像-centos下载地址-centos装置教程-阿里巴巴开源镜像站 lrzsz | Sail 二、lrzsz性能介绍<font color=red>lrzsz</font>是一款在linux里可代替ftp上传和下载的程序。应用这个软件程序只须要一个命令就能够疾速解决Windows端和Linux端的文件上传和下载问题。非常不便。<font color=red>注意事项:该软件适宜传输小文件,超过4GB的大文件无奈进行传输。</font> 三、装置操作步骤1、Linux端阐明:本实验室基于CentOS 7.9零碎装置应用的。 [root@centos ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)查找lrzsz包# yum provides lrzsz[root@centos ~]# yum provides lrzszLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * epel: ftp-stud.hs-esslingen.delrzsz-0.12.20-36.el7.x86_64 : The lrz and lsz modem communications programsRepo : baselrzsz-0.12.20-36.el7.x86_64 : The lrz and lsz modem communications programsRepo : @base[root@centos ~]# 装置lrzsz包# yum install -y lrzsz[root@centos ~]# yum install -y lrzszLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * epel: ftp-stud.hs-esslingen.dePackage lrzsz-0.12.20-36.el7.x86_64 already installed and latest versionNothing to do2、Windows端留神:应用Xshel、SecureCRT近程连贯软件,通过ssh/telnet连贯Linux端服务器能够反对应用。3、测试应用参数阐明 ...

February 19, 2022 · 1 min · jiezi

关于linux:calculateCalculate-Linux安装步骤操作

一、参考链接阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 calculate-linux镜像-calculate-linux下载地址-calculate-linux装置教程 https://mirrors.aliyun.com/ca... 二、Calculate简介Calculate Linux 是一个基于 Gentoo的发行版本。 Calculate 目录服务器 (CDS) 是一个通过LDAP+SAMBA反对Windows和Linux客户端的解决方案,提供包含代理,邮件和 Jabber 的精简用户服务。 Calculate Linux Desktop (CLD) 是一个带有 KDE, GNOME 或 Xfce桌面环境的工作站和客户端发行版,通过一个向导配置连贯到Calculate 目录服务器。 Calculate Linux Scratch (CLS) 是为发明定制发行版筹备的已编译的框架。三、Calculate装置步骤1、下载cld镜像源https://mirrors.aliyun.com/ca... 2、装置Calculate抉择地理位置 抉择装置源 抉择"Calculate Linux-Install" 抉择装置的语言和地位 抉择装置的镜像源 调配磁盘空间 确认磁盘装置地位 设置网络信息 设置root用户和明码 设置音频系统。默认即可。 设置视频配置信息。默认即可。 定期更新零碎 开始装置 期待装置实现 零碎装置实现,重启零碎 进入开机界面,输出用户名和明码<font color="red">留神:若启用了guest来宾账号登录时,须要应用guest账号和明码进行登录,进入零碎后,若须要应用ROOT管理员身份再进行切换。</font> 进入零碎,装置完结。 至此,Calculate Linux零碎装置实现。

February 18, 2022 · 1 min · jiezi

关于linux:Find-命令如何使用

用处 find命令用于在指定目录下查找文件。 全称 无 参数 -name :后跟须要匹配的文件名模式,须要应用引号引起来上面是一些简略的示例查找:(~示意$HOME目录) 1.查找以后$HOME下'.log'结尾的文件 find ~ –name "*.log" –print 2.当前目录与子目录下查找所有'.log'结尾的文件 find . –name "*.log" –print 3.当前目录与子目录下查找文件名以一个大写字母结尾的文件 find . –name "A-Z" –print 4.在/etc目录下查找文件名以host结尾的文件 find /etc –name "host*" –print 5.在当前目录查找文件名以一个小写字母结尾,最初是4到9加上.txt完结的文件 find . –name "a-z*4-9.txt" –print find file by name -iname :依据文件名查找文件,不辨别大小写1.查找文件名为.log结尾的文件,不辨别大小写 find . –iname "*.log" –print -perm :后跟文件权限,按文件权限模式来查找文件 1.查找当前目录下文件权限为777的文件 find . –perm 777 –print how to Find file in Linux -prune :疏忽某个目录1.心愿在tmp下查找,但不心愿在/tmp/tmp1下查找 find test –path "/tmp/tmp1" –prune –o –print ...

February 18, 2022 · 1 min · jiezi

关于linux:Linux之at命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 当应用shell脚本时,你可能想在某个特定的工夫运行shell脚本,Linux零碎中提供了多个在特定工夫运行shell脚本的办法,其中一种办法就是应用at命令。 at命令容许指定Linux零碎何时运行脚本,at命令会将作业提交到队列中,指定shell何时运行该作业。at的守护过程atd会当前台模式运行,查看作业队列来运行作业。atd守护过程会查看零碎上的一个非凡目录来获取at命令的提交的作业。默认状况下,atd守护过程每60秒查看一次目录。有作业时,会查看作业运行工夫,如果工夫与以后工夫匹配,则运行此作业。 at容许应用一套相当简单的指定工夫的办法。它可能承受在当天的hh:mm(小时:分钟)式的工夫指定。如果该工夫已过来,那么就放在第二天执行。当然也可能应用midnight(深夜),noon(中午),teatime(饮茶工夫,个别是下午4点)等比拟含糊的 词语来指定工夫。用户还可能采纳12小时计时制,即在工夫前面加上AM(上午)或PM(下午)来阐明是上午还是下午。 也可能指定命令执行的具体日期,指定格局为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定工夫的前面。 下面介绍的都是相对计时法,其实还可能应用绝对计时法,这对于安顿不久就要执行的命令是很有益处的。指定格局为:now + count time-units,now就是以后工夫,time-units是工夫单位,这里可能是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是工夫的数量,到底是几天,还是几小时,等等。 更有一种计时办法就是间接应用today(明天)、tomorrow(今天)来指定实现命令的工夫。 须要装置此命令Centos > yum -y install at> systemctl start atd> systemctl enable atdUbuntu > sudo apt-get install at -y命令格局at [参数] [工夫] 命令性能在一个指定的工夫执行一个指定工作,只能执行一次命令参数-m 当指定的工作被实现之后,将给用户发送邮件,即便没有规范输入-I atq的别名-d atrm的别名-v 显示工作将被执行的工夫-c 打印工作的内容到规范输入-V 显示版本信息-q<列队> 应用指定的列队-f<文件> 从指定文件读入工作而不是从规范输出读入-t<工夫参数> 以工夫参数的模式提交要运行的工作其它命令atq 查看所有工作atrm 删除一个工作at容许应用一套相当简单的指定工夫的办法。他可能承受在当天的hh:mm(小时:分钟)式的工夫指定。如果该工夫已过来,那么就放在第二天执行。当然也可能应用midnight(深夜),noon(中午),teatime(饮茶工夫,个别是下午4点)等比拟含糊的 词语来指定工夫。用户还可能采纳12小时计时制,即在工夫前面加上AM(上午)或PM(下午)来阐明是上午还是下午。 也可能指定命令执行的具体日期,指定格局为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定工夫的前面。 下面介绍的都是相对计时法,其实还可能应用绝对计时法,这对于安顿不久就要执行的命令是很有益处的。指定格局为:now + count time-units ,now就是以后工夫,time-units是工夫单位,这里可能是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是工夫的数量,到底是几天,还是几小时,等等。 更有一种计时办法就是间接应用today(明天)、tomorrow(今天)来指定实现命令的工夫。三天后的下午 4 点执行 /bin/lsat 4pm+ 3daysat> /bin/lsat> <EOT>job 5 at Tue Mar 16 16:00:00 2021<EOT>按按ctrl+d今天10点钟,输入工夫到指定文件内> at 10:00 tomorrowat> date > /tmp/a.logat> <EOT>job 6 at Sun Mar 14 10:00:00 2021<EOT>按按ctrl+d查看at的工作列表> atq5 Tue Mar 16 16:00:00 2021 a root6 Sun Mar 14 10:00:00 2021 a root显示曾经设置的工作内容> at -c 5#!/bin/sh/bin/ls删除曾经设置的工作> atrm 5原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

February 17, 2022 · 1 min · jiezi

关于linux:安全创新厂商长亭科技加入牵手龙蜥共建网络安全新生态

近日,北京长亭科技有限公司(以下简称“长亭科技”)签订了CLA(Contribution License Agreement,贡献者许可协定),正式退出龙蜥社区(OpenAnolis)。 长亭科技成立于 2014 年,是国内顶尖的网络信息安全公司之一,现已造成以攻(平安评估零碎)、防(下一代 Web 利用防火墙)、知(平安剖析与治理平台)、查(主机平安治理平台)、抓(假装坑骗零碎)为外围的下一代平安防护体系,并提供优质的平安测试及咨询服务,为企业级客户带来智能的全新平安防护思路。目前,长亭科技重点产品已与河汉麒麟、中标麒麟、海光、华为鲲鹏、统信 UOS 等生态合作伙伴实现兼容认证。 长亭科技CEO朱文雷示意:“长亭科技非常重视开源生态工作,是多个开源我的项目的参与者和贡献者,同时从本身业务视角登程,继续关注和跟踪开源我的项目的平安危险。很快乐能退出龙蜥社区,将来,长亭科技将在龙蜥社区的平安利用我的项目和生态我的项目的平安危险监测等方面增强、加深单干,为开源操作系统的平安倒退奉献技术力量,促成开源操作系统的继续衰弱倒退和广泛应用,全力保障信息时代国家平安策略的倒退,独特打造一个更加平安的开源生态环境。” 龙蜥社区理事长马涛示意:“长亭科技是国内当先的网络安全解决方案提供商,始终十分重视本身平安产品与国产化零碎的适配,他们将从技术创新与场景利用等方面减速社区的倒退,独特推动开源产业的降级倒退,为企业的数字化转型和技术升级提供重要撑持。” —— 完 —— 退出龙蜥社群 退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态! 对于龙蜥社区 龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

February 17, 2022 · 1 min · jiezi

关于linux:Linux实现MySQL数据库凌晨自动备份

Linux实现MySQL数据库凌晨主动备份。 备份多数据库,每天凌晨两点执行,应用以后年月日作为文件夹,不存在该文件夹就创立,删除七天前备份过的文件。 定时调度应用crontab 1 login_user="root" 2 3 login_passwd="" 4 5 vDate=`date +%Y%m%d` 6 7 backup_dir="/home/data/backups/"$vDate"/" 8 9 echo $backup_dir 10 11 if [ ! -d $backup_dir ];then 12 mkdir -p $backup_dir 13 fi 14 15 # 将须要备份的数据放入 16 db_array=("dbName1" "dbName1" "dbName1") #配置要备份的数据库 17 18 19 for db_name in ${db_array[*]} 20 do 21 22 mysqldump -u root -p$login_passwd $db_name > $backup_dir$db_name.sql 23 24 done 25 26 # 删除7天前备份的文件 27 find backup_dir -atime +7 -name "*.sql" -exec rm -rf {} \ 28 29 echo "备份完结"没有装置crontab的小伙伴须要装置crontab,装置过程网上很多在此就不做赘述了。 ...

February 17, 2022 · 1 min · jiezi

关于linux:知名信息安全厂商渔翁信息加入龙蜥社区共建开源生态

近日,渔翁信息技术股份有限公司(以下简称“渔翁信息”)正式退出龙蜥社区(OpenAnolis),与行业生态搭档共建龙蜥社区。 渔翁信息成立于 1998 年,是领有自主知识产权的明码产品及计划的头部供应商,是国家明码行业标准化技术委员会成员单位、国家级专精特新“小伟人”企业。在 20 余年倒退中,渔翁信息搭建了从底层利用到下层运管平台的残缺明码产品体系,涵盖根底明码产品、PKI 明码撑持零碎、通用平安产品、工控平安产品、明码利用计划等。 渔翁信息总裁郭刚示意:“渔翁信息退出龙蜥社区后,将积极参与社区的建设,并为开源操作系统的生态建设奉献智慧明码,与社区搭档们独特推动开源操作系统的平安建设、衰弱倒退和广泛应用,助力国家明码产业常态化发展,全力保障我国网络强国建设,助推数字经济转型。”—— 完 —— 退出龙蜥社群 退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态! 对于龙蜥社区 龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

February 16, 2022 · 1 min · jiezi

关于linux:Linux下删除Mysql

1、查看mysql服务并敞开相应的过程[root@bp18425116f0cojd1vnz ~]# ps -ef |grep mysqlroot 1492 1 0 10:23 ? 00:00:00 /bin/sh /www/server/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/www/server/data --pid-file=/www/server/data/bp18425116f0cojd1vnz.pidmysql 2759 1492 0 10:23 ? 00:00:00 /www/server/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/www/server/mysql --datadir=/www/server/data --plugin-dir=/www/server/mysql/lib/plugin --user=mysql --log-error=bp18425116f0cojd1vnz.err --open-files-limit=65535 --pid-file=/www/server/data/bp18425116f0cojd1vnz.pid --socket=/tmp/mysql.sock --port=3306root 3117 3072 0 10:34 pts/0 00:00:00 grep --color=auto mysql[root@bp18425116f0cojd1vnz ~]# systemctl status mysql● mysql.service - LSB: start and stop MySQLLoaded: loaded (/etc/rc.d/init.d/mysql; generated)Active: active (exited) since Wed 2022-02-09 10:23:35 CST; 10min agoDocs: man:systemd-sysv-generator(8)Process: 1416 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS)Feb 09 10:23:30 bp18425116f0cojd1vnz systemd[1]: Starting LSB: start and stop MySQL...Feb 09 10:23:33 bp18425116f0cojd1vnz mysql[1416]: Starting MySQL...Logging to '/www/server/data/bp18425116f0cojd1vnz.err'.Feb 09 10:23:35 bp18425116f0cojd1vnz mysql[1416]: .[ OK ]Feb 09 10:23:35 bp18425116f0cojd1vnz systemd[1]: Started LSB: start and stop MySQL.Feb 09 10:25:15 bp18425116f0cojd1vnz mysql[1416]: 2022-02-09T02:25:15.316976Z mysqld_safe A mysqld process with pid=2759 is already running. Aborting!![root@bp18425116f0cojd1vnz ~]# systemctl stop mysql2、再次查看Mysql服务的状态[root@bp18425116f0cojd1vnz ~]# systemctl status mysql● mysql.service - LSB: start and stop MySQLLoaded: loaded (/etc/rc.d/init.d/mysql; generated)Active: inactive (dead) since Wed 2022-02-09 10:35:42 CST; 4sagoDocs: man:systemd-sysv-generator(8)Process: 3126 ExecStop=/etc/rc.d/init.d/mysql stop (code=exited, status=0/SUCCESS)Process: 1416 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS)Feb 09 10:23:30 bp18425116f0cojd1vnz systemd[1]: Starting LSB: start and stop MySQL...Feb 09 10:23:33 bp18425116f0cojd1vnz mysql[1416]: Starting MySQL...Logging to '/www/server/data/bp18425116f0cojd1vnz.err'.Feb 09 10:23:35 bp18425116f0cojd1vnz mysql[1416]: .[ OK ]Feb 09 10:23:35 bp18425116f0cojd1vnz systemd[1]: Started LSB: start and stop MySQL.Feb 09 10:25:15 bp18425116f0cojd1vnz mysql[1416]: 2022-02-09T02:25:15.316976Z mysqld_safe A mysqld process with pid=2759 is already running. Aborting!!Feb 09 10:35:40 bp18425116f0cojd1vnz systemd[1]: Stopping LSB: start and stop MySQL...Feb 09 10:35:42 bp18425116f0cojd1vnz mysql[3126]: Shutting down MySQL..[ OK ]Feb 09 10:35:42 bp18425116f0cojd1vnz systemd[1]: mysql.service: Succeeded.Feb 09 10:35:42 bp18425116f0cojd1vnz systemd[1]: Stopped LSB: start and stop MySQL.3、查找Mysql的装置目录并彻底删除[root@bp18425116f0cojd1vnz ~]# find / -name mysql/usr/include/mysql/usr/bin/mysql/usr/lib/mysql/etc/rc.d/init.d/mysql/www/server/panel/install/mysql/www/server/mysql/www/server/mysql/include/mysql/www/server/mysql/bin/mysql/www/server/data/mysql4、删除Mysql的装置目录[root@bp18425116f0cojd1vnz ~]# rm -rf /usr/local/mysql /usr/include/mysql /usr/bin/mysql /usr/lib/mysql /www/server/panel/install/mysql[root@bp18425116f0cojd1vnz ~]# rm -rf /www/server/mysql /www/server/mysql/include/mysql /www/server/mysql/bin/mysql /www/server/data/mysql5、删除Mysql的配置文件[root@bp18425116f0cojd1vnz ~]# rm -rf /etc/rc.d/init.d/mysql6、删除Mysql的用户组[root@bp18425116f0cojd1vnz ~]# id mysqluid=1001(mysql) gid=1001(mysql) groups=1001(mysql)[root@bp18425116f0cojd1vnz ~]# userdel mysql

February 16, 2022 · 2 min · jiezi

关于linux:Linux之watch命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 能够将命令的输入后果输入到规范输出设备,多用于周期性执行命令/定时执行命令,watch命令 以周期性的形式执行给定的指令,指令输入以全屏形式显示。watch是一个十分实用的命令,根本所有的Linux发行版都带有这个小工具,如同名字一样,watch能够帮你监测一个命令的运行后果,防止反复手动执行命令 命令格局watch [参数] [命令] 命令性能能够将命令的输入后果输入到规范输出设备,多用于周期性执行命令/定时执行命令命令参数-n或--interval watch缺省每2秒运行一下程序,能够用-n或-interval来指定距离的工夫。-d或--differences 用-d或--differences 选项watch 会高亮显示变动的区域。 而-d=cumulative选项会把变动过的中央(不论最近的那次有没有变动)都高亮显示进去。-t 或-no-title 会敞开watch命令在顶部的工夫距离,命令,以后工夫的输入。-h, --help 查看帮忙文档每隔1秒查看零碎网络连接状况> watch -n 1 -d netstat -tunlp 变动局部会着色退出watch:Ctrl+c每隔一秒高亮显示http链接数的变动状况> watch -n 1 -d 'pstree|grep http'隔一秒高亮显示http链接数的变动状况。 前面接的命令若带有管道符,须要加''将命令区域归整。实时查看模仿攻打客户机建设起来的连接数> watch 'netstat -an | grep:21 | \ grep<模仿攻打客户机的IP>| wc -l'监测当前目录变动> watch -d 'ls -l|grep tmp' 5秒一次输入零碎的均匀负载> watch -n 5 'cat /proc/loadavg'实现tail -f实时刷新文件> watch -n 1 tail /var/log/error.log实现一个简略的时钟> watch -n 1 " " 工夫1秒1秒的在刷新监督服务器以后用户登录的情况> watch -n 1 -d who原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

February 15, 2022 · 1 min · jiezi

关于linux:龙蜥社区一周动态-207213

各位龙蜥社区的盆友们好,社区一周动静与大家准时见面,欢送继续关注公众号不迷路。当初, 让咱们一起来回顾下社区「2.07-2.13」都有哪些「上新」干货吧。图片 —— 完 ——退出龙蜥社群 退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态! 对于龙蜥社区 龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

February 15, 2022 · 1 min · jiezi

关于linux:重大升级英特尔-CPU-内购功能-SDSI已添加至-Linux-518-内核中

近日,Phoronix 报道称,一位来自红帽的 Linux 开发员工 Hans de Goede 走漏:如果没有意外,英特尔为 Xeon CPU 增加的神秘“软件定义芯片(SDSi)”机制将在行将到来的 Linux 5.18 内核中失去正式反对。 据悉,英特尔软件自定义芯片(SDSi)是一种领有 Pay-As-You-Go CPU Feature 属性的机制,可用于激活应用该软件生产和部署的服务器芯片的其余附加性能(如果购买了降级的许可证,在这些性能就可通过许可证激活后启用)。 同时,SDSi 驱动程序也为应用程序提供了可执行次要配置性能的对应插座的 ioctl 接口: 提供验证密钥证书(AKC),这是一个写入外部 NVRAM 的密钥,用于验证特定性能的激活特定负载。提供激活无效负载能力(CAP),这是一个应用 AKC 认证的令牌,利用于 CPU 配置以激活新性能。读取 SDSi 状态证书,蕴含 CPU 配置状态。其实,早在去年 9 月份,英特尔就走漏了对于 SDSi 的音讯,其特点是可能通过软件激活被锁定的芯片性能,可能给在 Xeon 至强 CPU 上运行的 Linux 零碎带来较大优化。 此次,Linux 5.18 版本正式反对 SDSi 性能,也意味着行将公布的英特尔第四代 Xeon 至强可扩大处理器 Sapphire Rapids 将成为首款反对 SDSi 的 CPU。 对于英特尔这样的行动,很多人示意“不解”。但对于英特尔而言,这个决策的确十分“理智”的。 报道称,每一代 Intel Xeon 至强 CPU 都会减少很多性能,为的就是能让 Intel 的服务器平台更加通用。 例如,除了微体系结构改良和新指令外,Intel 的 Xeon 至强可扩大CPU(各代)还减少了对每个插槽最多 4.5TB 内存的反对、网络性能虚拟化、速度抉择技术及大型 SGX enclave 型号等。此外,还有针对搜寻、虚拟机密度、基础设施即服务(IaaS)、软件即服务(SaaS)、液体冷却、媒体解决等的优化模型。 ...

February 15, 2022 · 1 min · jiezi

关于linux:DBoS-系统说明-未完成更新中

https://www.bilibili.com/vide... 写在后面DBoS 源于狄泰软件学院和百问网,所用到常识也次要来源于对应的唐佐林老师(C/C++ Qt) 和韦东山老师(Linux)。眼有星辰大海,归来仍是少年,感激两位前辈的辛苦付出。 开发目标我是以单片机开发入门,后续又做了了Qt相干工作,有工夫精力后开始进行linux相干的学习,凑巧在二一年十一月份,韦东山老师进行了三个月的linux驱动直播,于是有了开始 DBoS 的念头,从上至下波及到界面利用和底层驱动,借此进行学习。 参考资料【波及的技术栈】视频 零根底 C 语言入门课程C 语言进阶课程C++ 入门到进阶全过程C++ 新规范 C++11/14Qt 试验剖析教程Linux 系列教程(第一篇) - 开发板根底操作Linux 系列教程(第五篇) - 嵌入式Linux驱动开发基础知识70天30节Linux驱动开发疾速入门系列课程文档 《嵌入式Linux利用开发齐全手册V4.0_韦东山全系列视频文档-IMX6ULL开发板》Qss 根底材料整顿100ASK_IMX6ULL_PRO开发板QT移植过程阐明Imx6ull开发板配置复制以下文件到开发板 / 目录:DBoS : 可执行文件video : mp4 视频文件music : mp3 音乐文件 替换文件 /etc/profile 替换文件 /etc/init.d/S99myirhmi2, 替换 /etc/init.d/S09modload 注意事项开发板反对鼠标,但须要批改 /etc/profile/S99myirhmi2 文件(查看提供的 profile 中正文即可),同时须要留神在 Qt 启动前插入天气、录音机、地图应用程序应用的百度API,请申请本人的KEY和ID在Qt工程中进行替换(查看对应的 .h 文件中正文即可)

February 14, 2022 · 1 min · jiezi

关于linux:Linux文件系统

linux所有皆文件 linux根目录下的文件: 1、bin: 蕴含罕用的Linux用户命令,例如,ls、sort、date和chmod。 2、/boot: 蕴含可疏导的Linux内核和疏导装载(boot loader)配置文件(GRUB)。 3、/dev: 蕴含代表零碎设施拜访点的文件。这包含终端设备(tty)、软盘(fd)、硬盘(hd)、RAM(ram)和CD-ROM(cd*)(用户通常通过设施文件间接拜访这些设施)。 4、/etc:蕴含治理配置文件。 5、/home: 蕴含调配给每个领有登陆帐号用户的目录。 6、/media:提供挂载(mounting)和主动挂载设施的规范地位,如近程文件系统和可挪动介质(目录名为cdrecorder、floppy等)。 7、/mnt: 在被规范的/media目录代替前,这是很多设施罕用的挂载点。某些可疏导的Linux零碎仍旧应用该目录来挂载硬盘分区和近程文件系统。 8、/proc:蕴含无关系统资源的信息。 9、/root:示意根用户的主目录。 10、/sbin:蕴含治理命令和守护过程。 11、/sys:一个相似与/proc的文件系统,在Linux2.6内核中最新呈现的,蕴含的文件用于取得硬件状态并反映内核看到的零碎设施树。它应用了/proc中的很多帮忙。 12、/tmp:蕴含应用程序应用的临时文件。 13、/usr:蕴含用户文档、游戏、图形文件(X11)、库(lib),以及各种其余用户和治理命令及文件 14、/var:蕴含不同应用程序应用的数据目录。特地要留神的是,这里搁置作为FTP服务器(/var/ftp)成Web服务器(/var/www)共享文件。它还蕴含所有系统日志文件(/var/log)。 上班了。今天持续......

February 14, 2022 · 1 min · jiezi

关于linux:系统信息

#!/bin/bash#!/bin/bash#参数定义date=`date +"%Y-%m-%d-%H:%M:%S"`centosVersion=$(awk '{print $(NF-1)}' /etc/redhat-release)VERSION=`date +%F`#日志相干LOGPATH="/tmp/awr"[ -e $LOGPATH ] || mkdir -p $LOGPATHRESULTFILE="$LOGPATH/HostCheck-`hostname`-`date +%Y%m%d`.txt"#调用函数库[ -f /etc/init.d/functions ] && source /etc/init.d/functionsexport PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binsource /etc/profile#root用户执行脚本[ $(id -u) -gt 0 ] && echo "请用root用户执行此脚本!" && exit 1 function version(){ echo "" echo "" echo "[${date}] >>> `hostname -s` 主机巡检"}function getSystemStatus(){ echo "" echo -e "\033[33m****************************************************零碎查看****************************************************\033[0m" if [ -e /etc/sysconfig/i18n ];then default_LANG="$(grep "LANG=" /etc/sysconfig/i18n | grep -v "^#" | awk -F '"' '{print $2}')" else default_LANG=$LANG fi export LANG="en_US.UTF-8" Release=$(cat /etc/redhat-release 2>/dev/null) Kernel=$(uname -r) OS=$(uname -o) Hostname=$(uname -n) SELinux=$(/usr/sbin/sestatus | grep "SELinux status: " | awk '{print $3}') LastReboot=$(who -b | awk '{print $3,$4}') uptime=$(uptime | sed 's/.*up \([^,]*\), .*/\1/') echo " 零碎:$OS" echo " 发行版本:$Release" echo " 内核:$Kernel" echo " 主机名:$Hostname" echo " SELinux:$SELinux" echo "语言/编码:$default_LANG" echo " 以后工夫:$(date +'%F %T')" echo " 最初启动:$LastReboot" echo " 运行工夫:$uptime" export LANG="$default_LANG"}function getCpuStatus(){ echo "" echo -e "\033[33m****************************************************CPU查看*****************************************************\033[0m" Physical_CPUs=$(grep "physical id" /proc/cpuinfo| sort | uniq | wc -l) Virt_CPUs=$(grep "processor" /proc/cpuinfo | wc -l) CPU_Kernels=$(grep "cores" /proc/cpuinfo|uniq| awk -F ': ' '{print $2}') CPU_Type=$(grep "model name" /proc/cpuinfo | awk -F ': ' '{print $2}' | sort | uniq) CPU_Arch=$(uname -m) echo "物理CPU个数:$Physical_CPUs" echo "逻辑CPU个数:$Virt_CPUs" echo "每CPU外围数:$CPU_Kernels" echo " CPU型号:$CPU_Type" echo " CPU架构:$CPU_Arch"}function getMemStatus(){ echo "" echo -e "\033[33m**************************************************内存查看*****************************************************\033[0m" if [[ $centosVersion < 7 ]];then free -mo else free -h fi #报表信息 MemTotal=$(grep MemTotal /proc/meminfo| awk '{print $2}') #KB MemFree=$(grep MemFree /proc/meminfo| awk '{print $2}') #KB let MemUsed=MemTotal-MemFree MemPercent=$(awk "BEGIN {if($MemTotal==0){printf 100}else{printf \"%.2f\",$MemUsed*100/$MemTotal}}") }function getDiskStatus(){ echo "" echo -e "\033[33m**************************************************磁盘查看******************************************************\033[0m" df -hiP | sed 's/Mounted on/Mounted/'> /tmp/inode df -hTP | sed 's/Mounted on/Mounted/'> /tmp/disk join /tmp/disk /tmp/inode | awk '{print $1,$2,"|",$3,$4,$5,$6,"|",$8,$9,$10,$11,"|",$12}'| column -t #报表信息 diskdata=$(df -TP | sed '1d' | awk '$2!="tmpfs"{print}') #KB disktotal=$(echo "$diskdata" | awk '{total+=$3}END{print total}') #KB diskused=$(echo "$diskdata" | awk '{total+=$4}END{print total}') #KB diskfree=$((disktotal-diskused)) #KB diskusedpercent=$(echo $disktotal $diskused | awk '{if($1==0){printf 100}else{printf "%.2f",$2*100/$1}}') inodedata=$(df -iTP | sed '1d' | awk '$2!="tmpfs"{print}') inodetotal=$(echo "$inodedata" | awk '{total+=$3}END{print total}') inodeused=$(echo "$inodedata" | awk '{total+=$4}END{print total}') inodefree=$((inodetotal-inodeused)) inodeusedpercent=$(echo $inodetotal $inodeused | awk '{if($1==0){printf 100}else{printf "%.2f",$2*100/$1}}')}function get_resource(){ echo "" echo -e "\033[33m**************************************************资源耗费统计**************************************************\033[0m" echo -e "\033[36m*************带宽资源耗费统计*************\033[0m" #用数组寄存网卡名 nic=(`ifconfig | grep ^[a-z] | grep -vE 'lo|docker0'| awk -F: '{print $1}'`) time=`date "+%Y-%m-%d %k:%M"` num=0 for ((i=0;i<${#nic[@]};i++)) do #循环五次,防止看到的是偶尔的数据 while (( $num<5 )) do rx_before=$(cat /proc/net/dev | grep '${nic[$i]}' | tr : " " | awk '{print $2}') tx_before=$(cat /proc/net/dev | grep '${nic[$i]}' | tr : " " | awk '{print $10}') sleep 2 #用sed先获取第7列,再用awk获取第2列,再cut切割,从第7个到最初,即只切割网卡流量数字局部 rx_after=$(cat /proc/net/dev | grep '${nic[$i]}' | tr : " " | awk '{print $2}') tx_after=$(cat /proc/net/dev | grep '${nic[$i]}' | tr : " " | awk '{print $10}') #留神上面截取的相差2秒的两个时刻的累计和发送的bytes(即累计传送和接管的位) rx_result=$[(rx_after-rx_before)/1024/1024/2*8] tx_result=$[(tx_after-tx_before)/1024/1024/2*8] echo "$time Now_In_Speed: $rx_result Mbps Now_OUt_Speed: $tx_result Mbps" >> /tmp/network.txt let "num++" done #留神上面grep前面的$time变量要用双引号括起来 rx_result=$(cat /tmp/network.txt|grep "$time"|awk '{In+=$4}END{print In}') tx_result=$(cat /tmp/network.txt|grep "$time"|awk '{Out+=$7}END{print Out}') In_Speed=$(echo "scale=2;$rx_result/5"|bc) Out_Speed=$(echo "scale=2;$tx_result/5"|bc) echo -e "\033[32m In_Speed_average: $In_Speed Mbps Out_Speed_average: $Out_Speed Mbps! \033[0m" done echo -e "\033[36m*************CPU资源耗费统计*************\033[0m" #应用vmstat 1 5命令统计5秒内的应用状况,再计算每秒应用状况 total=`vmstat 1 5|awk '{x+=$13;y+=$14}END{print x+y}'` cpu_average=$(echo "scale=2;$total/5"|bc) #判断CPU使用率(浮点数与整数比拟) if [ `echo "${cpu_average} > 70" | bc` -eq 1 ];then echo -e "\033[31m Total CPU is already use: ${cpu_average}%,请及时处理!\033[0m" else echo -e "\033[32m Total CPU is already use: ${cpu_average}%! \033[0m" fi echo -e "\033[36m*************磁盘资源耗费统计*************\033[0m" #磁盘应用状况(留神:须要用sed先进行格式化能力进行累加解决) disk_used=$(df -m | sed '1d;/ /!N;s/\n//;s/ \+/ /;' | awk '{used+=$3} END{print used}') disk_totalSpace=$(df -m | sed '1d;/ /!N;s/\n//;s/ \+/ /;' | awk '{totalSpace+=$2} END{print totalSpace}') disk_all=$(echo "scale=4;$disk_used/$disk_totalSpace" | bc) disk_percent1=$(echo $disk_all | cut -c 2-3) disk_percent2=$(echo $disk_all | cut -c 4-5) disk_warning=`df -m | sed '1d;/ /!N;s/\n//;s/ \+/ /;' | awk '{if ($5>85) print $6 "目录使用率:" $5;} '` echo -e "\033[32m Total disk has used: $disk_percent1.$disk_percent2% \033[0m" #echo -e "\t\t.." 示意换行 if [ -n "$disk_warning" ];then echo -e "\033[31m${disk_warning} \n [Error]以上目录使用率超过85%,请及时处理!\033[0m" fi echo -e "\033[36m*************内存资源耗费统计*************\033[0m" #取得零碎总内存 memery_all=$(free -m | awk 'NR==2' | awk '{print $2}') #取得占用内存(操作系统 角度) system_memery_used=$(free -m | awk 'NR==2' | awk '{print $3}') #取得buffer、cache占用内存,当内存不够时会及时回收,所以这两局部可用于可用内存的计算 buffer_used=$(free -m | awk 'NR==2' | awk '{print $6}') cache_used=$(free -m | awk 'NR==2' | awk '{print $7}') #取得被应用内存,所以这部分可用于可用内存的计算,留神计算方法 actual_used_all=$[memery_all-(free+buffer_used+cache_used)] #取得理论占用的内存 actual_used_all=`expr $memery_all - $free + $buffer_used + $cache_used ` memery_percent=$(echo "scale=4;$system_memery_used / $memery_all" | bc) memery_percent2=$(echo "scale=4; $actual_used_all / $memery_all" | bc) percent_part1=$(echo $memery_percent | cut -c 2-3) percent_part2=$(echo $memery_percent | cut -c 4-5) percent_part11=$(echo $memery_percent2 | cut -c 2-3) percent_part22=$(echo $memery_percent2 | cut -c 4-5) #取得占用内存(操作系统角度) echo -e "\033[32m system memery is already use: $percent_part1.$percent_part2% \033[0m" #取得理论内存占用率 echo -e "\033[32m actual memery is already use: $percent_part11.$percent_part22% \033[0m" echo -e "\033[32m buffer is already used : $buffer_used M \033[0m" echo -e "\033[32m cache is already used : $cache_used M \033[0m"}function getServiceStatus(){ echo "" echo -e "\033[33m*************************************************服务查看*******************************************************\033[0m" echo "" if [[ $centosVersion > 7 ]];then conf=$(systemctl list-unit-files --type=service --state=enabled --no-pager | grep "enabled") process=$(systemctl list-units --type=service --state=running --no-pager | grep ".service") else conf=$(/sbin/chkconfig | grep -E ":on|:启用") process=$(/sbin/service --status-all 2>/dev/null | grep -E "is running|正在运行") fi echo -e "\033[36m******************服务配置******************\033[0m" echo "$conf" | column -t echo "" echo -e "\033[36m**************正在运行的服务****************\033[0m" echo "$process"}function getAutoStartStatus(){ echo "" echo -e "\033[33m***********************************************自启动查看*******************************************************\033[0m" echo -e "\033[36m****************自启动命令*****************\033[0m" conf=$(grep -v "^#" /etc/rc.d/rc.local| sed '/^$/d') echo "$conf" }function getLoginStatus(){ echo "" echo -e "\033[33m************************************************登录查看********************************************************\033[0m" last | head }function getNetworkStatus(){ echo "" echo -e "\033[33m************************************************网络查看********************************************************\033[0m" if [[ $centosVersion < 7 ]];then /sbin/ifconfig -a | grep -v packets | grep -v collisions | grep -v i net6 else #ip a for i in $(ip link | grep BROADCAST | awk -F: '{print $2}');do ip add show $i | grep -E "BROADCAST|global"| awk '{print $2}' | tr '\n' ' ' ;echo "" ;done fi GATEWAY=$(ip route | grep default | awk '{print $3}') DNS=$(grep nameserver /etc/resolv.conf| grep -v "#" | awk '{print $2}' | tr '\n' ',' | sed 's/,$//') echo "" echo "网关:$GATEWAY " echo "DNS:$DNS" #报表信息 IP=$(ip -f inet addr | grep -v 127.0.0.1 | grep inet | awk '{print $NF,$2}' | tr '\n' ',' | sed 's/,$//') MAC=$(ip link | grep -v "LOOPBACK\|loopback" | awk '{print $2}' | sed 'N;s/\n//' | tr '\n' ',' | sed 's/,$//') echo ""ping -c 4 www.baidu.com >/dev/null 2>&1if [ $? -eq 0 ];then echo "" echo -e "\033[32m网络连接:失常!\033[0m" else echo "" echo -e "\033[31m网络连接:异样!\033[0m" fi }function getListenStatus(){ echo "" echo -e "\033[33m***********************************************监听查看********************************************************\033[0m" TCPListen=$(ss -ntul | column -t) echo "$TCPListen"}function getCronStatus(){ echo "" echo -e "\033[33m**********************************************打算工作查看******************************************************\033[0m" Crontab=0 for shell in $(grep -v "/sbin/nologin" /etc/shells);do for user in $(grep "$shell" /etc/passwd| awk -F: '{print $1}');do crontab -l -u $user >/dev/null 2>&1 status=$? if [ $status -eq 0 ];then echo -e "\033[36m************$user用户的定时工作**************\033[0m" crontab -l -u $user let Crontab=Crontab+$(crontab -l -u $user | wc -l) echo "" fi done done #打算工作 #find /etc/cron* -type f | xargs -i ls -l {} | column -t #let Crontab=Crontab+$(find /etc/cron* -type f | wc -l) }function getHowLongAgo(){ # 计算一个工夫戳离当初有多久了 datetime="$*" [ -z "$datetime" ] && echo `stat /etc/passwd|awk "NR==6"` Timestamp=$(date +%s -d "$datetime") Now_Timestamp=$(date +%s) Difference_Timestamp=$(($Now_Timestamp-$Timestamp)) days=0;hours=0;minutes=0; sec_in_day=$((60*60*24)); sec_in_hour=$((60*60)); sec_in_minute=60 while (( $(($Difference_Timestamp-$sec_in_day)) > 1 )) do let Difference_Timestamp=Difference_Timestamp-sec_in_day let days++ done while (( $(($Difference_Timestamp-$sec_in_hour)) > 1 )) do let Difference_Timestamp=Difference_Timestamp-sec_in_hour let hours++ done echo "$days 天 $hours 小时前"}function getUserLastLogin(){ # 获取用户最近一次登录的工夫,含年份 # 很遗憾last命令不反对显示年份,只有"last -t YYYYMMDDHHMMSS"示意某个工夫之间的登录,我 # 们只能用最笨的办法了,比照明天之前和往年除夕之前(或者去年之前和前年之前……)某个用户 # 登录次数,如果登录统计次数有变动,则阐明最近一次登录是往年。 username=$1 : ${username:="`whoami`"} thisYear=$(date +%Y) oldesYear=$(last | tail -n1 | awk '{print $NF}') while(( $thisYear >= $oldesYear));do loginBeforeToday=$(last $username | grep $username | wc -l) loginBeforeNewYearsDayOfThisYear=$(last $username -t $thisYear"0101000000" | grep $username | wc -l) if [ $loginBeforeToday -eq 0 ];then echo "从未登录过" break elif [ $loginBeforeToday -gt $loginBeforeNewYearsDayOfThisYear ];then lastDateTime=$(last -i $username | head -n1 | awk '{for(i=4;i<(NF-2);i++)printf"%s ",$i}')" $thisYear" lastDateTime=$(date "+%Y-%m-%d %H:%M:%S" -d "$lastDateTime") echo "$lastDateTime" break else thisYear=$((thisYear-1)) fi done}function getUserStatus(){ echo "" echo -e "\033[33m*************************************************用户查看*******************************************************\033[0m" #/etc/passwd 最初批改工夫 pwdfile="$(cat /etc/passwd)" Modify=$(stat /etc/passwd | grep Modify | tr '.' ' ' | awk '{print $2,$3}') echo "/etc/passwd: $Modify ($(getHowLongAgo $Modify))" echo "" echo -e "\033[36m******************特权用户******************\033[0m" RootUser="" for user in $(echo "$pwdfile" | awk -F: '{print $1}');do if [ $(id -u $user) -eq 0 ];then echo "$user" RootUser="$RootUser,$user" fi done echo "" echo -e "\033[36m******************用户列表******************\033[0m" USERs=0 echo "$( echo "用户名 UID GID HOME SHELL 最初一次登录" for shell in $(grep -v "/sbin/nologin" /etc/shells);do for username in $(grep "$shell" /etc/passwd| awk -F: '{print $1}');do userLastLogin="$(getUserLastLogin $username)" echo "$pwdfile" | grep -w "$username" |grep -w "$shell"| awk -F: -v lastlogin="$(echo "$userLastLogin" | tr ' ' '_')" '{print $1,$3,$4,$6,$7,lastlogin}' done let USERs=USERs+$(echo "$pwdfile" | grep "$shell"| wc -l) done )" | column -t echo "" echo -e "\033[36m******************空明码用户****************\033[0m" USEREmptyPassword="" for shell in $(grep -v "/sbin/nologin" /etc/shells);do for user in $(echo "$pwdfile" | grep "$shell" | cut -d: -f1);do r=$(awk -F: '$2=="!!"{print $1}' /etc/shadow | grep -w $user) if [ ! -z $r ];then echo $r USEREmptyPassword="$USEREmptyPassword,"$r fi done done echo "" echo -e "\033[36m*****************雷同ID用户*****************\033[0m" USERTheSameUID="" UIDs=$(cut -d: -f3 /etc/passwd | sort | uniq -c | awk '$1>1{print $2}') for uid in $UIDs;do echo -n "$uid"; USERTheSameUID="$uid" r=$(awk -F: 'ORS="";$3=='"$uid"'{print ":",$1}' /etc/passwd) echo "$r" echo "" USERTheSameUID="$USERTheSameUID $r," done }function getPasswordStatus { echo "" echo -e "\033[33m*************************************************明码查看*******************************************************\033[0m" pwdfile="$(cat /etc/passwd)" echo "" echo -e "\033[36m****************明码过期查看****************\033[0m" result="" for shell in $(grep -v "/sbin/nologin" /etc/shells);do for user in $(echo "$pwdfile" | grep "$shell" | cut -d: -f1);do get_expiry_date=$(/usr/bin/chage -l $user | grep 'Password expires' | cut -d: -f2) if [[ $get_expiry_date = ' never' || $get_expiry_date = 'never' ]];then printf "%-15s 永不过期\n" $user result="$result,$user:never" else password_expiry_date=$(date -d "$get_expiry_date" "+%s") current_date=$(date "+%s") diff=$(($password_expiry_date-$current_date)) let DAYS=$(($diff/(60*60*24))) printf "%-15s %s天后过期\n" $user $DAYS result="$result,$user:$DAYS days" fi done done report_PasswordExpiry=$(echo $result | sed 's/^,//') echo "" echo -e "\033[36m****************明码策略查看****************\033[0m" grep -v "#" /etc/login.defs | grep -E "PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_MIN_LEN|PASS_WARN_AGE"}function getSudoersStatus(){ echo "" echo -e "\033[33m**********************************************Sudoers查看*******************************************************\033[0m" conf=$(grep -v "^#" /etc/sudoers| grep -v "^Defaults" | sed '/^$/d') echo "$conf" echo ""}function getInstalledStatus(){ echo "" echo -e "\033[33m*************************************************软件查看*******************************************************\033[0m" rpm -qa --last | head | column -t }function getProcessStatus(){ echo "" echo -e "\033[33m*************************************************过程查看*******************************************************\033[0m" if [ $(ps -ef | grep defunct | grep -v grep | wc -l) -ge 1 ];then echo "" echo -e "\033[36m***************僵尸过程***************\033[0m" ps -ef | head -n1 ps -ef | grep defunct | grep -v grep fi echo "" echo -e "\033[36m************CPU占用TOP 10过程*************\033[0m" echo -e "用户 过程ID %CPU 命令 $(ps aux | awk '{print $1, $2, $3, $11}' | sort -k3rn | head -n 10 )"| column -t echo "" echo -e "\033[36m************内存占用TOP 10过程*************\033[0m" echo -e "用户 过程ID %MEM 虚拟内存 常驻内存 命令 $(ps aux | awk '{print $1, $2, $4, $5, $6, $11}' | sort -k3rn | head -n 10 )"| column -t #echo "" #echo -e "\033[36m************SWAP占用TOP 10过程*************\033[0m" #awk: fatal: cannot open file `/proc/18713/smaps' for reading (No such file or directory) #for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'`;do awk '{if (-f /proc/$i/smaps) print "$i file is not exist"; else print "$i"}';done # for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr > /tmp/swap.txt #echo -e "过程ID SWAP应用 $(cat /tmp/swap.txt|grep -v awk | head -n 10)"| column -t}function getSyslogStatus(){ echo "" echo -e "\033[33m***********************************************syslog查看*******************************************************\033[0m" echo "SYSLOG服务状态:$(getState rsyslog)" echo "" echo -e "\033[36m***************rsyslog配置******************\033[0m" cat /etc/rsyslog.conf 2>/dev/null | grep -v "^#" | grep -v "^\\$" | sed '/^$/d' | column -t}function getFirewallStatus(){ echo "" echo -e "\033[33m***********************************************防火墙查看*******************************************************\033[0m" echo -e "\033[36m****************防火墙状态******************\033[0m" if [[ $centosVersion = 7 ]];then systemctl status firewalld >/dev/null 2>&1 status=$? if [ $status -eq 0 ];then s="active" elif [ $status -eq 3 ];then s="inactive" elif [ $status -eq 4 ];then s="permission denied" else s="unknown" fi else s="$(getState iptables)" fi echo "firewalld: $s" echo "" echo -e "\033[36m****************防火墙配置******************\033[0m" cat /etc/sysconfig/firewalld 2>/dev/null}function getSNMPStatus(){ #SNMP服务状态,配置等 echo "" echo -e "\033[33m***********************************************SNMP查看*********************************************************\033[0m" status="$(getState snmpd)" echo "SNMP服务状态:$status" echo "" if [ -e /etc/snmp/snmpd.conf ];then echo "/etc/snmp/snmpd.conf" echo "--------------------" cat /etc/snmp/snmpd.conf 2>/dev/null | grep -v "^#" | sed '/^$/d' fi}function getState(){ if [[ $centosVersion < 7 ]];then if [ -e "/etc/init.d/$1" ];then if [ `/etc/init.d/$1 status 2>/dev/null | grep -E "is running|正在运行" | wc -l` -ge 1 ];then r="active" else r="inactive" fi else r="unknown" fi else #CentOS 7+ r="$(systemctl is-active $1 2>&1)" fi echo "$r"}function getSSHStatus(){ #SSHD服务状态,配置,受信赖主机等 echo "" echo -e "\033[33m************************************************SSH查看*********************************************************\033[0m" #查看受信赖主机 pwdfile="$(cat /etc/passwd)" echo "SSH服务状态:$(getState sshd)" Protocol_Version=$(cat /etc/ssh/sshd_config | grep Protocol | awk '{print $2}') echo "SSH协定版本:$Protocol_Version" echo "" echo -e "\033[36m****************信赖主机******************\033[0m" authorized=0 for user in $(echo "$pwdfile" | grep /bin/bash | awk -F: '{print $1}');do authorize_file=$(echo "$pwdfile" | grep -w $user | awk -F: '{printf $6"/.ssh/authorized_keys"}') authorized_host=$(cat $authorize_file 2>/dev/null | awk '{print $3}' | tr '\n' ',' | sed 's/,$//') if [ ! -z $authorized_host ];then echo "$user 受权 \"$authorized_host\" 无明码拜访" fi let authorized=authorized+$(cat $authorize_file 2>/dev/null | awk '{print $3}'|wc -l) done echo "" echo -e "\033[36m*******是否容许ROOT近程登录***************\033[0m" config=$(cat /etc/ssh/sshd_config | grep PermitRootLogin) firstChar=${config:0:1} if [ $firstChar == "#" ];then PermitRootLogin="yes" else PermitRootLogin=$(echo $config | awk '{print $2}') fi echo "PermitRootLogin $PermitRootLogin" echo "" echo -e "\033[36m*************ssh服务配置******************\033[0m" cat /etc/ssh/sshd_config | grep -v "^#" | sed '/^$/d'}function getNTPStatus(){ #NTP服务状态,以后工夫,配置等 echo "" echo -e "\033[33m***********************************************NTP查看**********************************************************\033[0m" if [ -e /etc/ntp.conf ];then echo "NTP服务状态:$(getState ntpd)" echo "" echo -e "\033[36m*************NTP服务配置******************\033[0m" cat /etc/ntp.conf 2>/dev/null | grep -v "^#" | sed '/^$/d' fi}function check(){ version getSystemStatus get_resource getCpuStatus getMemStatus getDiskStatus getNetworkStatus getListenStatus getProcessStatus getServiceStatus getAutoStartStatus getLoginStatus getCronStatus getUserStatus getPasswordStatus getSudoersStatus getFirewallStatus getSSHStatus getSyslogStatus getSNMPStatus getNTPStatus getInstalledStatus}#执行查看并保留查看后果check > $RESULTFILEecho -e "\033[44;37m 主机巡检后果寄存在:$RESULTFILE \033[0m"#上传查看后果的文件#curl -F "filename=@$RESULTFILE" "$uploadHostDailyCheckApi" 2>/dev/nullcat $RESULTFILE

February 14, 2022 · 10 min · jiezi

关于linux:大数据存储领导厂商创新科加入携手龙蜥社区共建开源生态

近日,深圳翻新科技术有限公司(以下简称“UIT 翻新科”)签订了 CLA(ContributionLicense Agreement,贡献者许可协定),正式退出龙蜥社区(OpenAnolis)。 UIT 翻新科是一家以大数据存储系统为根底,集数据中心、服务器、云服务和大数据服务为一体的高新技术企业,致力成为中国云计算和大数据解决方案领导厂商。其产品及服务广泛应用于通信、金融和互联网等行业,博得了中国移动、霍尼韦尔、CCTV、人民银行等泛滥大客户的信赖,也服务了北京奥运会和上海世博会,并为中国多个云计算基地提供大数据服务。 自主翻新,云领将来。UIT 翻新科始终走在技术创新的前沿,把握大数据的核心技术,领有两百多项国内外专利和著作权,入选了国家级专精特新“小伟人”企业名单,并间断 6 年取得中国国内软件博览会金奖。 翻新科智能计算产品线总经理孟庆伟示意:“UIT 翻新科将来将积极参与龙蜥社区单干建设,与社区一起推动龙蜥开源操作系统在公有云计算、业余存储系统及 AI 应用领域的宽泛应用,助力各行业数字化转型疾速推动。” —— 完 —— 退出龙蜥社群 退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态!对于龙蜥社区 龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

February 14, 2022 · 1 min · jiezi

关于linux:如何获取列表长度

In this article, we will be unveiling techniques to find the length of a Python list. Finding the length actually means fetching the count of data elements in an iterable. how to get list length in python 在本文中,咱们将揭示找到Python列表长度的技术。 找到长度实际上意味着以可迭代的形式获取数据元素的数量。 技术1:len()办法在Python中查找列表的长度 (Technique 1: The len() method to find the length of a list in Python)Python has got in-built method — len() to find the size of the list i.e. the length of the list. ...

February 13, 2022 · 2 min · jiezi

关于linux:Linux之iostat命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 Linux零碎中的 iostat是I/O statistics(输出/输入统计)的缩写,iostat工具将对系统的磁盘操作流动进行监督。它的特点是汇报磁盘流动统计状况,同时也会汇报出CPU应用状况。同vmstat一样,iostat也有一个弱点,就是它不能对某个过程进行深入分析,仅对系统的整体状况进行剖析。iostat属于sysstat软件包。能够用yum install sysstat 间接装置。 命令格局iostat[参数][工夫][次数] 命令性能通过iostat不便查看CPU、网卡、tty设施、磁盘、CD-ROM 等等设施的流动状况, 负载信息。命令参数-C 显示CPU应用状况-d 显示磁盘应用状况-k 以 KB 为单位显示-m 以 M 为单位显示-N 显示磁盘阵列(LVM) 信息-n 显示NFS 应用状况-p[磁盘] 显示磁盘和分区的状况-t 显示终端和CPU的信息-x 显示详细信息-V 显示版本信息显示所有设施负载状况> iostat %user:CPU处在用户模式下的工夫百分比。%nice:CPU处在带NICE值的用户模式下的工夫百分比。%system:CPU处在零碎模式下的工夫百分比。%iowait:CPU期待输入输出实现工夫的百分比。%steal:管理程序保护另一个虚构处理器时,虚构CPU的有意识等待时间百分比。%idle:CPU闲暇工夫百分比。如果%iowait的值过高,示意硬盘存在I/O瓶颈,%idle值高,示意CPU较闲暇,如果%idle值高但零碎响应慢时,有可能是CPU期待分配内存,此时应加大内存容量。%idle值如果继续低于10,那么零碎的CPU解决能力绝对较低,表明零碎中最须要解决的资源是CPU。每隔2秒刷新显示,且显示3次> iostat 2 3 显示指定磁盘信息> df文件系统 1K-块 已用 可用 已用% 挂载点/dev/vda1 51474024 31149824 18018124 64% /devtmpfs 1931252 0 1931252 0% /devtmpfs 1941016 24 1940992 1% /dev/shmtmpfs 1941016 472 1940544 1% /runtmpfs 1941016 0 1941016 0% /sys/fs/cgrouptmpfs 388204 0 388204 0% /run/user/0> iostat -d /dev/vda1 ...

February 13, 2022 · 1 min · jiezi

关于linux:ansible-copy模块介绍

ansible copy模块backup : 在笼罩之前源文件备份,备份文件蕴含工夫信息,有两个选项 yes | nocontent :用于代替"src" ,能够间接指定文件的值dest:必选项,要将文件复制到的近程主机的绝对路径,如果源文件是一个目录,那么门路必须是个目录directory_mode:递归的设置目录的权限,默认为零碎默认权限force:如果指标主机蕴含该文件,但内容不同,如果设置成yes,则强制笼罩,如果no,则智邮当指标主机的指标地位不存在该文件时,才复制,默认yes others:所有的file模块里的必选项都能够在这里应用src:要复制到近程的主机文件在本地的地址,能够是绝对路径,也能够是相对路径,如果门路是一个目录,将递归复制,在这种状况下,如果门路应用/结尾,则复制门路里的内容,如果没有/ 则复制蕴含目录在内的整个内容全副复制,相似于rsync ansibe copy测试用例copy文件或者目录 ansible -i ansiblepy.py test22 -m copy -a "src=/root/ansibletest dest=/root/" 在目录下创立文件并写入内容dest 参数对应的值必须是一个文件,而不能是一个门路。 ansible -i ansiblepy.py test22 -m copy -a 'content="aaa\nbbb\n" dest=/testdir/testfile1' 将 ansible 主机中 /testdir/copytest 文件复制到近程主机的 /testdir 目录中时,如果近程主机中曾经存在 /testdir/copytest 文件,并且文件内容与 ansible 主机中的 copytest 文件的内容不统一,则不执行拷贝操作,近程主机中的 /testdir/copytest 文件内容不会被扭转。ansible -i ansiblepy.py test22 -m copy -a 'src=/root/testdir/ttt dest=/root/testdir/ force=no' 将 ansible 主机中 /testdir/copytest 文件复制到近程主机的 /testdir 目录中时,如果近程主机中曾经存在 /testdir/copytest 文件,并且文件内容与 ansible 主机中的 /testdir/copytest 文件的内容不统一,会执行拷贝操作,然而在执行拷贝操作之前,会将近程主机中的原文件重命名,以作备份,而后再进行拷贝操作ansible -i ansiblepy.py test22 -m copy -a 'src=/root/testdir/ttt dest=/root/testdir/ backup=yes' ...

February 13, 2022 · 1 min · jiezi

关于linux:Linux内存和磁盘管理

内存使用率查看free -b | -k | -m | -g 别离代表 以 BYTE KB MB GB 为单位显示使用率top 动静查看内存应用状况磁盘使用率查看fdisk 用于创立和保护分区fdisk -l 查看所有分区df查看磁盘应用统计状况.du 查看理论占用磁盘空间. du == disk usage (磁盘使用量,占用的磁盘空间)du 的根本应用du -s #s参数是能够统计占硬盘空间大小的如 du -skh b.txt-k或--kilobytes 以1024 bytes为单位。-h或--human-readable 以K,M,G为单位,进步信息的可读性-s或--summarize 统计目录或文件$$文件磁盘占用空间 ≠ 文件大小$$ linux的文件系统有 '块' (block)这个概念,个别默认块的大小是4k,即一个文件大小只有1byte,那么它仍会单独占用一个块,文件为6k它会占用两个块,所以在块大小为4k的linux零碎中,每个文件所占用的磁盘空间都会是n*4k,这样个别状况下一个文件的磁盘应用了会比文件理论大小高出(0k~4k).应用命令 ls -l 查看的就是文件的理论大小,应用du 查看的就是文件的磁盘占用.然而也有非凡状况,当文件有比拟大的 '黑洞' 时,磁盘的占用空间会比文件理论大小 小 黑洞产生的起因在向一个文件中写数据的时候,文件偏移量能够大于文件的以后长度,在这种状况下,对该文件的下一次写将加长该文件,并在文件中形成一个空洞,这肯定是容许的。位于文件中但没有写过的字节都被读为0.文件中的空洞并不要求在磁盘上占用存储区。具体解决形式与文件系统的实现无关,当定位超出文件尾端之后写时,对于新写的数据须要调配磁盘块,然而对于原文件尾端和新开始写地位之间的局部则不须要调配磁盘块。 例如:用dd if=/dev/zero of=a.out seek=1023 bs=1M count=1创立a.out文件后,用ls查看a.out的文件大小为1G,用du查看a.out文件大小为1M。

February 13, 2022 · 1 min · jiezi

关于linux:ubuntu-安装GUI

GUI Installation on Ubuntu Server 20.04 Update the apt package index and install tasksel. $ sudo apt update$ sudo apt install taskselList the GUI we have installed and we can install: $ sudo tasksel --list-tasksMain available Graphical User Interfaces (GUI) installations using tasksel's tasks Task Description kubuntu-desktop Kubuntu desktop ( KDE Desktop ) lubuntu-desktop Lubuntu Desktop ( LXQt desktop ) ubuntu-budgie-desktop Ubuntu Budgie desktop ubuntu-desktop Ubuntu desktop ( default GNOME ) ubuntu-desktop-minimal Ubuntu minimal desktop ( default GNOME ) ...

February 12, 2022 · 1 min · jiezi

关于linux:两个命令完成ssh免密登录

生成公钥和私钥ssh-keygen -b 4096 -t rsa生成的私钥保留在 .ssh/id_rsa , 公钥在.ssh/id_rsa.pub 上传公钥到近程服务器本地客户端输出 ssh-copy-id user@host就能够将公钥上传到近程服务器的.ssh/authorized_keys 批改server端/etc/ssh/sshd_config文件, 确保以下参数 RSAAuthentication yesPubkeyAuthentication yes这个时候应用ssh user@host就能够不必输出密ma间接登录近程服务器了。 更多:Setup SSH Keys to Login Linux Without Password generate SSH key pair with ssh keygen command understanding ssh key authentication

February 12, 2022 · 1 min · jiezi

关于linux:延长ssh-连接的时间

本文介绍下,linux中ssh连贯超时工夫的设置办法,以防止总是被强行退出。有须要的敌人,参考下吧。 无关批改ssh连贯超时工夫的办法,网上介绍的很多了。 比方上面这个: 能够缩小ssh连贯超时期待的工夫:办法:ssh -o ConnectTimeout=3 192.168.0.10 或批改sshd_config文件外面的UseDNS 选项,改为UseDNS no。 聪慧的读者,肯定会发现,下面这个批改,其实是缩小ssh的连接时间,就是让ssh的响应工夫快一些。 这点能够参考之前的一篇文章:ssh连贯超时(ssh的usedns选项)的解决办法 。 再来看,设置ssh超时工夫的办法。 批改本人 目录下的.bash_profile文件export TMOUT=1000000 (以秒为单位) 而后运行: source .bash_profile 在/etc/ssh/sshd_config中退出: ClientAliveInterval=60 每一分钟,sshd都和ssh client打个招呼,检测它是否存在,不存时即断开连接。 留神:设置实现后,要退出ssh近程连贯,再次登录后才能够失效。因为要再读取一次./bash_profile。 为了不便,将设置写成了如下脚本: echo export TMOUT=1000000 >> /root/.bash_profile cat /root/.bash_profile source .bash_profile cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak echo ClientAliveInterval=60 >> /etc/ssh/sshd_config service sshd restart cat /etc/ssh/sshd_config service sshd restart exit 总结:这个是server端的配置在ClientAliveInterval(/etc/ssh/sshd_config)、环境变量TMOUT(在/etc/profile或.bash_profile中设置)以及putty的"Seconds between keepalives“这些办法中,经 检测,只有TMOUT能够管制ssh连贯在闲暇工夫超时,主动断开连接的工夫,数字单位为“秒”。或者是批改client端的ServerAliveInterval 另外,特地揭示的是,设置好ssh的登录超时工夫当前,记得退出从新登录或重启零碎,以使配置失效。更加具体的办法能够查看原文:increase linux ssh connection timeout quick guide how to increase ssh timeout time

February 12, 2022 · 1 min · jiezi

关于linux:删除maildrop-目录下大量文件以及避免后续再次发生

这两天遇到一个问题:1、问题景象 一个linux主机上报存储过大的告警,/var/spool/postfix/maildrop 目录下的文件多大400万个,占用存储30G,ls、rm等命令执行就卡主,抽查一两个文件,文件名是相似095285C63AF6这样的12位16进制的数字程序组合,文件大小都是几K,文件内容没有实质性的意义。 2、问题起因:网上查了下,具体如下 该主机上有一些crontab,执行频率比拟高,每次执行都会默认将output和warning信息邮件发送给crontab的属主,linux没有配置邮件性能,会导致有你发送不进来,从而以文件的模式沉积在/var/spool/postfix/maildrop目录下。 3、问题解决方案3.1、长期计划:这些文件没有理论作用,手动删除。手动删除400多万个小文件,rm -f 删除执行不动,不晓得执行效率,如果始终放在那里执行,也不确定会不会因客户端会话过期导致执行失败。而且rm -f 如果文件过多,也会报错说传递的参数过大,导致无奈删除。 自动化脚本:通过 ls -f1 /var/spool/postfix/maildrop/* > ~/tmp.txt ,将文件名清单写入到临时文件中,而后通过shell脚本,读取文件清单,一个个文件删除,加上语句,也能够晓得以后删除的是哪个文件,脚本内容如下。 #!/bin/bashcd /var/spool/postfix/maildrop/ls -f1 /var/spool/postfix/maildrop/* > /root/tmp.txtfor i in `cat /root/tmp.txt`doecho $irm -f $idoneecho "complete!"3.2、彻底解决计划:禁用crontab的邮件发送 在每个用户的crontab下减少邮件配置的语句,如下示例: MAILTO="" */5 * * * * /bin/bash */2 * * * * /bin/sh4、总结 耗时最长的是手动删除400多个文件,毕竟积攒了好几年的货色, shell脚本不肯定是最快、最优的形式,比方是否能够间接删除maildrop文件夹,删除完后再创立一个maildrop文件夹,不确定是否可行,然而是做法上最简略的一种,能解决以后问题就行,看问题紧急、重要水平和影响。

February 11, 2022 · 1 min · jiezi

关于linux:天数智芯携手龙蜥社区以高性能算力助力开源发展

近日,上海天数智芯半导体有限公司(以下简称“天数智芯”)签订了 CLA(Contribution License Agreement,贡献者许可协定),正式退出龙蜥社区(OpenAnolis)。 作为中国第一家 GPGPU 高端芯片及超级算力提供商,天数智芯以“成为智能社会的赋能者”为使命,着力打造国内当先的通用、规范、高性能的 GPGPU 计算芯片,解决外围算力瓶颈问题,以高性能算力赋能各行业转型降级。 天数智芯已正式公布了中国第一款自主知识产权的高性能云端训练 7nm GPGPU 天垓芯片及天垓加速卡,实现了国内 GPGPU 芯片从 0 到 1 的冲破。天垓芯片及天垓加速卡具备高性能、通用性、灵活性等特点,反对多种精度数据类型规范及混合训练、国内外支流 AI 生态和深度学习框架,并通过标准化的软硬件生态接口为行业解决产品应用难、开发平台迁徙老本低等痛点,失去泛滥行业骨干企业的认可。 将来,天数智芯将与龙蜥社区发展深度单干,针对人工智能、高性能计算等市场需求,独特打造基于 GPGPU 的高端算力解决方案,着力推动各行业利用落地,一直凋敝开源生态,助力我国数字经济蓬勃发展。 龙蜥社区「龙腾打算」正在进行中,欢送更多企业退出。—— 完 —— 退出龙蜥社群退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态!对于龙蜥社区 龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

February 11, 2022 · 1 min · jiezi

关于linux:Linux中Shell重定向

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 在shell脚本中,默认状况下,总是有三个文件处于关上状态,规范输出(键盘输入)、规范输入(输入到屏幕)、规范谬误(也是输入到屏幕),它们别离对应的文件描述符是 0,1,2 。 & 是一个描述符,如果1或2前不加&,会被当成一个一般文件。> 默认为规范输入重定向,与 1> 雷同1>&2 意思是把规范输入重定向到规范谬误.2>&1 意思是把规范谬误输入重定向到规范输入。&>filename 意思是把规范输入和规范谬误输入都重定向到文件filename中.>&2即1>&2也就是把后果输入到和规范谬误一样/dev/null是一个文件,这个文件比拟非凡,所有传给它的货色它都抛弃掉规范输入和谬误输入> lsrumenz.txt> ls rumenz.txt 1.txtls: 1.txt: No such file or directoryrumenz.txt因为1.txt不存在,所以ls: 1.txt: No such file or directory就是谬误输入就是2。rumenz.txt文件是存在的,所以rumenz.txt就是规范输入。就是1。把上述的规范输入和谬误输入重定向到文件> ls rumenz.txt 1.txt 1>out.log 2>err.log> cat out.logrumenz.txt> rumenz cat err.logls: 1.txt: No such file or directoryout.log存的是规范输入err.log存的是谬误输入案例剖析> ls rumenz.txt 1.txt > out.txtls: 1.txt: No such file or directory> cat out.txtrumenz.txt因为只重定向了规范输入,所以out.txt文件只有规范输入> ls rumenz.txt 1.txt > out.log 1>&2ls: cannot access 1.txt: No such file or directoryrumenz.txt> cat out.log> out.log将规范输入重定向到文件,然而1>&2将规范输入重定向到了谬误输入,所以out.log外面什么也没有.> ls rumenz.txt 1.txt > out.txt 2>&1> cat out.txt ls: cannot access 1.txt: No such file or directoryrumenz.txt> out.log将规范输入重定向到文件,然而2>&1将谬误输入重定向到规范输入,所以out.log外面既有失常的输入也有谬误的输入./dev/null/dev/null:示意 的是一个黑洞,通常用于抛弃不须要的数据输入, 或者用于输出流的空文件> rm -f $(find / -name rumenz) &> /dev/null原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

February 11, 2022 · 1 min · jiezi

关于linux:巧用这几种文本检索工具节省80的时间

说到文本搜寻工具,大家肯定会想到 grep, 它是 Linux 最有用并最罕用的工具之一。grep 在咱们日常的学习和工作中是必不可少的,然而,当咱们须要在一个比拟大的工程项目中搜寻某个关键词时,grep 的效率是比拟低的。 对于所有的检索工具来说,最重要的步骤永远是找出要搜寻的内容。而grep 这个工具就比拟纯朴,它只是在咱们指定门路的所有文件上搜寻内容,针对 grep 这种状况,ack 就应运而生了。与 grep 不同,ack 默认状况下不会搜寻所有内容,而是尝试一种更加智能的形式来搜寻。咱们当初所用的大部分检索工具都是从这两个工具中派生进去的,比方 sift 就是由 grep 派生;ag、ucg 和 pt 由 ack 派生;而 ripgrep 混合了两大派别,它有点像 grep 善于用来搜寻大文件,又提供了像ack一样的智能搜寻。本文给大家介绍 grep、ag 和 rg 三款工具比照。 1. 装置形式· grep 优麒麟各版本操作系统预装了 grep 工具,不须要额定装置。 · ripgrep deb 包装置: curl -LO https://github.com/BurntSushi/ripgrep/releases/download/0.10.0/ripgrep_0.10.0_amd64.debsudo dpkg -i ripgrep_0.10.0_amd64.deb· silversearcher-ag sudo apt install silversearcher-ag2. 应用办法比照以上三款工具应用的命令形式存在比拟大的差异,然而在检索中文字符串时,默认都只反对 UTF-8 格局的文件。 这里就不列举选项参数了,如有须要可通过 [命令] --help 查看。 · grep grep [选项]... PATTERN [文件]...反对正则表达式;性能多样;能够更加准确、灵便地检索出单词;检索范畴为指定目录的所有类型的文件;不反对转换编码格局。 · silversearcher-ag ag [文件类型] [选项] PATTERN [门路]反对正则表达式;检索时会主动疏忽 .gitignore 文件和暗藏文件以放慢检索速度;默认当前工作目录;默认递归检索;默认显示检索字符串的地位;文件类型如果省略,ag 会检索它反对的所有文件类型,并且 ag 不反对转换编码格局。 ...

February 11, 2022 · 2 min · jiezi

关于linux:国内首个政务APP技术指标评价规范团体标准正式出台

近期,由中国电子工业标准化技术协会(简称“中电标协”)提出并归口,北京博睿宏远数据科技股份有限公司(以下简称:博睿数据)作为牵头单位,联结中国电子技术标准化研究院、中国电信集团有限公司、北京思源政通科技团体有限公司、北京中百信息技术股份有限公司、中电福富信息科技有限公司等各单位发动的《政务APP技术指标评估标准》个人规范正式公布。 作为《政务APP技术指标评估标准》个人规范的牵头单位,博睿数据为本次规范的研制,提供了根底数据、实际测试和技术指标等内容撑持,以助力政务APP行业的良性倒退。 《政务APP 技术指标评估标准》出台的必要性 智慧城市是个宏大的简单概念,其中诸如物联网、大数据和云计算等大大地进步了城市运行效率的技术手段,作为老百姓却是无奈感知的。目前,对大多数普通百姓来说,智慧城市最为直观的感触就是装置在手机中的APP,为每个人的衣食住行提供了便当。 随着政府服务职能的转变,电子政务成为各级政府转变职能形式,落实服务型政府的次要伎俩。新冠肺炎疫情期间,政府治理部门将大量线下办理的业务放到网上,在筑起疫情防线的同时,电子政务的作用失去充沛凸显。而在其背地,数字经济的力量也正在彰显。政务APP指的是由政府部门主导,提供政府治理与服务等性能的智能挪动终端应用程序。 其中,市民体验成为掂量政务APP的重要规范之一。公众在享受政务APP便当的同时,对政务APP提供的相干性能、拜访的便利性、操作的体验性方面也会提出更高的冀望。在理论的倒退中,各类政务APP还存在着重建设、轻经营,技术水平和服务质量参差不齐,造成政府资源节约、用户体验差等问题。 因而,有必要构建一个标准的APP技术指标评估模型,用于领导各地政府标准建设政务APP,通过明确制订相干规范,推动政务APP兼顾研发,集中管理,建设无效的经营、考评制度,避免政务APP“僵尸化”与“形式化”。同时通过政务APP的评估指标体系,实现对已有政务APP的技术参数进行精确评测,可能充沛找出目前政务APP建设、运行、应用、经营方面存在的问题,实现服务内容标准化、规范化,实现数据资源利用效率最大化,让政务服务回归服务为民的“初心”,实现政府治理现代化。 《政务APP技术指标评估标准》心愿以标准化疏导政务APP的建设经营和优化,并以后果为导向晋升政务APP服务质量,同时以迷信主观的技术手段疏导政务进行APP优化,从而保障政务APP投资建设成绩,为客户提供高效优质的APP服务。 用户体验是政务APP的外围建设要求 政务APP 技术指标评估标准包含用户体验(可用性、界面友好度、服务便捷性)、性能、性能(下载性能、启动性能、交互性能、网络性能、APP故障)及治理与服务(集约化、用户服务)四个方面。 其中,用户体验是政务APP 的外围建设要求。博睿数据作为APM 行业的领导者,自成立以来,始终将晋升用户体验作为博睿数据不变的使命。 2021年,博睿数据创新性的提出了“数据链DNA”概念,买通从代码到用户全门路的翻新理念。基于博睿数据已有的产品跟技术再降级,真正实现利用可用到服务可达的适度,建设以用户为核心的服务可达能力的监控和评估体系,晋升自动化、智能运维能力,全面提高用户体验,放慢数字化转型。 博睿数据数字体验治理(DEM),蕴含客户端APP体验监控、浏览器体验监控、小程序体验监控、浏览器拨测和手机拨测等一系列技术。 博睿数据提供DEM的相干数字体验治理能力次要分为两个类型: 一种为无侵入模式,或者说是模仿监测的模式。它次要以手机端或PC端构建模仿监测的能力,也称拨测。它是非嵌码模式的主动式模仿监测,以工作配置的形式,随时随地进行相干利用的测试。同时通过测试,理解业务的可能性,以及企业在整个行业当中,与竞品之间的一些差别。 另一种为代码注入的形式,以此理解用户的实在体验,与其在PC端页面、手机APP以及小程序间拜访的应用体验。它次要通过SDK、JS等形式,对相干程序进行注入,从而理解用户的实在数据。 而不论是何种技术,博睿数据的核心理念都是以用户为核心,做到服务可达的用户体验。 助力智慧城市,构建新兴智慧城市评估规范 此次,博睿数据作为《政务APP技术指标评估标准》个人规范的制订牵头人,不仅为评估和优化政务APP提供了参考;同时,该标准也是“新基建”建设的重要根基,只有引入更全面、更高要求的指标标准,才可能确保“新基建”等政务信息化我的项目的品质与利用成果,从而塑造出行业的利用标杆,推动各中央对应主管部门进行规范利用和自我评估,最终服务于民生和社会。 正如博睿数据客户胜利服务中心总经理杨雪松所说,博睿数据主导制订《政务APP技术指标评估标准》,不仅基于博睿数据在数字用户体验监控的深厚技术根底,更是基于博睿数据在银行、保险、证券、运营商、国企等畛域丰盛的数字体验治理教训,将技术与教训利用在政务APP畛域,用更加精准的客户数据帮忙政务APP更好的服务百姓,让百姓在智慧城市建设中更有取得感,促成政务数字化转型。 对于《政务APP技术指标评估标准》出台的意义,北京中百信信息技术股份有限公司高级工程师、副总裁卢学哲示意,智慧城市是建设数字中国、智慧社会的外围载体。在新型城镇化建设深刻推动、“数字中国”策略继续施行,“双碳”指标贯彻落实及数字技术与实体经济深度交融的背景下,我国智慧城市建设已进入以人为本、功效导向、兼顾粗放、协同翻新的新倒退阶段,倒退重心逐步从满足政府治理需要向营造优质营商环境、构建可继续长效倒退机制转变。 《政务APP技术指标评估标准》以政务APP利用场景为对象,紧扣“对内放慢政府系统性、协调性改革,对外晋升服务型政府的人民满意度”指标,聚焦在利用实效的技术指标,为评估政务服务绩效提供了牢靠计划。 谈及《政务APP技术指标评估标准》的将来走向,中电福富信息科技有限公司政务事业部高级副总监、社会治理产业研究院研发核心总经理孟祥辉示意,政务APP作为智慧城市中政府与公众沟通交流的渠道、作为政府提供服务的载体,要从数据共享、业务协同、界面丑化、体验敌对等维度做好晋升,填平不同地区、不同学历、不同年龄、不同职业之间的数字化鸿沟,更好的施展政府在智慧城市治理和智慧社会治理中的作用,更好的为宽广公众提供更加智慧化、人性化、继续欠缺和晋升的政务服务。 同时,政务APP技术指标评估标准的编制和欠缺将是一个长期的过程,随着标准的使用和波及评估的政务APP数量、范畴的减少,标准也势必要随之更新、补充、欠缺,下一步也能够将政务APP评估中积攒的实践、办法、教训,使用到商业APP的评估中去,在推动挪动APP更加良性倒退方面施展重要的作用。将来,博睿数据还将协同各方持续欠缺《政务APP技术指标评估标准》,力争将《政务APP技术指标评估标准》打造成国际标准的评估指标,继续助力数字化政务、智慧城市的建设和倒退。

February 10, 2022 · 1 min · jiezi

关于linux:linux命令行格式简介

linux命令行格局简介 linux命令行的个别格局为:命令 [选项] [参数][]示意可选,即能够有,也能够没有。选项能够有多个,参数也能够有多个。如ls -l /home/,ls是命令,-l是选项,/home是参数。 选项和参数站在程序开发的角度看,对于程序来说,程序名称前面的内容都是程序的参数,没有太大的不同,选项只是参数中比拟非凡的一类。但从程序使用者的角度看,选项和参数还是有一些不同的:选项是管制命令行为的开关。个别状况下,选项的名称是由程序提供的,名字是固定的,使用者不能更改。如ls程序提供了-l、-a等选项,使用者能够用这些参数名称,但不能应用-y选项,因为程序没有提供这种选项。参数是程序的执行对象。个别状况下,使用者能够提供任意内容。如ls /home中的/home,是ls程序作的执行对象,使用者能够提供任意的名称。既然从程序开发者的角度看,选项和参数都是程序的参数,但为了使用者可能辨别,那么就须要设置一些规定将选项和参数辨别开来。最古老的辨别形式就是以“-”结尾的字符被认为是选项,不带“-”开始的被认为是参数。也有以“--”结尾的字符被认为是选项。选项也能够有参数,请留神,选项的参数和程序的参数是不同的,要留神辨别。选项的参数是针对选项而言的,参数是针对整个程序而言的。如ls --sort time /home,time是--sort选项的参数,/home是程序ls的参数。 选项格局为了辨别选项和参数,人为地设置了若干辨别规定。但有人的中央就有江湖,每个人都想有本人的格调,都心愿本人的格调能一统江湖。于是有名气者、武艺高超者开始开宗立派。依据选项格调的不同,目前根本造成了几种不同的命令行格调,如POSIX/UNIX格调、GNU格调、BSD格调、X toolkit格调。POSIX/UNIX格调原始的Unix格调命令行选项,是以连字符“-”结尾的单个字符(留神是一个字符,而不是一个单词)。如果选项前面不带参数,则被称之为模式选项。模式选项是能够组合在一起应用的。例如,如果-a和-b是模式选项,那么-ab或-ba就都正确,而且会启用这两个选项。如ls -al、ls -la、ls -a -l的作用是一样的。如果选项须要带参数,这些参数要紧接在这个选项前面,能够以空格离开,也能够不以空格离开。如ls -w50 /home(留神:w和50之间没有空格)、ls -w 50 /home(留神:w和50之间有空格)的作用是一样的。最后的 Unix 格调是在迟缓的 ASR-33 电传打字机上演变而来的,这使得简洁成为一种美德。因而是单字母选项。按住shift键须要额定的精力,因而偏爱小写,并应用“-”(而不是可能更合乎逻辑的“+”)来启用选项。GNU格调选项应用“--”结尾的单词。如ls --all。如果选项须要带参数,则应用空格或者“=”将参数和选项离开。如ls --sort time(留神sort和time之间的空格) 、ls --sort=time。这种格调的呈现是因为仅仅26个字母(或者算上大小写52个)不够一些简单的GNU程序应用。另外一点是相比于单字符的POSIX/UNIX格调,其更容易了解,因为呈现的不再是缩写的字母。“--“结尾的GNU格调的选项格局又被称为“长选项”,与之对应的,之前以“-”结尾的单字符的选项格局也被成为“短选项。bsd格调和POSIX/UNIX格调相比,其选项应用单个字符,且不带任何前缀。如ps a(留神,只有单个a字符,没有-符号)。如果是多个不带参数的选项,也能够组合在一起,如ps aux。如果选项须要带参数,也同POSIX/UNIX格调一样,选项参数紧跟在这个选项前面,能够应用空格离开,也能够不必空格。如ps U root(留神:root和U之间有空格)、ps Uroot (留神:root和U之间没有空格)的作用是一样的。X toolkit格调但原始的X toolkit格调是由X toolkit进行解析,它首先过滤并解决某些选项(如-geometry和-display)而后再把过滤后的命令行传递给利用程序逻辑进行解析。以“-”结尾的单词(留神是单词,而不是单个字符)。如java -version,"-"前面跟着的是一个单词。如果选项须要带参数,则选项参数紧跟在这个选项前面,且应用空格离开。find -name *.txt.这种格调即不能和古典的POSIX/UNIX格调兼容,也不能和GNU格调兼容,所以不应该在新程序中应用,除非遵循老式的X约定看起来价值很高。备注:不确定将find、java命令归类为X toolkit格调是否正确?因为它们不属于X软件,但格调的确很象。java在某些高版本中,也反对了GUN格调的命令行。 当然,还有其它各种各样的格调,只是不是太常见,所以不再介绍,理论遇到的时候,须要依据手册或者帮忙文档查看其选项的格局和含意。须要留神的是,这些格调之间只是"格调"不同,理论应用中并不限度应用,比方上述 ps 命令,因为一些历史起因,就能够接管POSIX/UNIX格调、GNU格调、BSD格调的参数,相互并不抵触。就像武林中的高手一样,能够应用多个门派的文治。然而倡议退出到较风行的门派中,毕竟应用的人多的门派,相对来说,比拟容易和其它人交换。如GNU格调、POSIX/UNIX格调,且倡议同时反对这两种格调(即长命令选项、短命令选项)。如果已有的风行格调曾经能够满足应用需要了,不倡议再开宗立派了,门派多了,沟通和交换的老本就高了。毕竟咱们不是真正的“武林”,不须要分出一个输赢,须要的是更敌对地交换。 参考内容http://www.catb.org/esr/writi...unix编程艺术

February 10, 2022 · 1 min · jiezi

关于linux:linux服务器生产环境搭建

工具:Xshell,Xftp 文件目录:/usr/local/software/ JDK1. 下载jdk并上传至服务器中jdk下载地址 2. 解压tar -zxvf jdk-16 3. 配置环境变量编辑配置文件vim /etc/profile #Java Env JAVA_HOME=/usr/local/software/jdk-16CLASSPATH=.:$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/bin环境变量失效source /etc/profile4. 查看是否配置胜利java -version Nginx1. 下载neginx 2. 解压tar -zxvf nginx-1.20.1.tar.gz3. 装置相干依赖yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel4. 编译进入nginx目录,执行下方命令./configuremakemake install5. 拜访配置默认装置目录 /usr/local/nginx 相干配置 /usr/local/nginx/conf/nginx.conf # 切换nginx目录cd ./usr/local/nginxcd ./sbin./nginx 6. 判断是否启动胜利查看nginx日志是否生成 拜访公网IP阿里云服务器需配置平安平安组规定 Mysql此处版本5.7,其余版本请更换地址,此处应用连贯装置1. 装置#下载mysql的Yum仓库wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpmyum -y install mysql57-community-release-el7-10.noarch.rpm#装置 mysql服务yum -y install mysql-community-server#启动数据库服务, systemctl 该命令可用于查看零碎状态和管理系统及服务,centos7上开始应用systemctl start mysqld.service#查看状态systemctl status mysqld.service#在日志文件中查看初始密码grep "password" /var/log/mysqld.log#进入批改Mysql明码mysql -uroot -p#新密码设置必须由大小写字母、数字和特殊符号组成ALTER USER 'root'@'localhost' IDENTIFIED BY 'PeotryAndYou.net168';#开启mysql的近程拜访, %是指全副, 可批改至具体IPgrant all privileges on *.* to 'root'@'%' identified by 'PeotryAndYou.net168' with grant option;#刷新权限flush privileges; 其余装置形式菜鸟教程-linux装置mysql ...

February 10, 2022 · 1 min · jiezi

关于linux:Linux之vmstat命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、过程、CPU流动进行监控。他是对系统的整体状况进行统计,不足之处是无奈对某个过程进行深入分析。vmstat 工具提供了一种低开销的零碎性能察看形式。因为 vmstat 自身就是低开销工具,在十分高负荷的服务器上,你须要查看并监控零碎的衰弱状况,在管制窗口还是可能应用vmstat 输入后果. 物理内存和虚拟内存区别间接从物理内存读写数据要比从硬盘读写数据要快的多,因而,咱们心愿所有数据的读取和写入都在内存实现,而内存是无限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是零碎硬件提供的内存大小,是真正的内存,绝对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的有余而提出的策略,它是利用磁盘空间虚构出的一块逻辑内存,用作虚拟内存的磁盘空间被称为替换空间(Swap Space)。 作为物理内存的扩大,linux会在物理内存不足时,应用替换分区的虚拟内存,更具体的说,就是内核会将临时不必的内存块信息写到替换空间,这样以来,物理内存失去了开释,这块内存就能够用于其它目标,当须要用到原始的内容时,这些信息会被从新从替换空间读入物理内存。 linux的内存治理采取的是分页存取机制,为了保障物理内存能失去充沛的利用,内核会在适当的时候将物理内存中不常常应用的数据块主动替换到虚拟内存中,而将常常应用的信息保留到物理内存。 要深刻理解linux内存运行机制,须要晓得上面提到的几个方面: 首先,Linux零碎会不断的进行页面替换操作,以放弃尽可能多的闲暇物理内存,即便并没有什么事件须要内存,Linux也会替换出临时不必的内存页面。这能够防止期待交换所需的工夫。其次,linux进行页面替换是有条件的,不是所有页面在不必时都替换到虚拟内存,linux内核依据”最近最常常应用“算法,仅仅将一些不常常应用的页面文件替换到虚拟内存,有时咱们会看到这么一个景象:linux物理内存还有很多,然而替换空间也应用了很多。其实,这并不奇怪,例如,一个占用很大内存的过程运行时,须要消耗很多内存资源,此时就会有一些不罕用页面文件被替换到虚拟内存中,但起初这个占用很多内存资源的过程完结并开释了很多内存时,方才被替换进来的页面文件并不会主动的替换进物理内存,除非有这个必要,那么此刻零碎物理内存就会闲暇很多,同时替换空间也在被应用,就呈现了方才所说的景象了。对于这点,不必放心什么,只有晓得是怎么一回事就能够了。最初,替换空间的页面在应用时会首先被替换到物理内存,如果此时没有足够的物理内存来包容这些页面,它们又会被马上替换进来,如此以来,虚拟内存中可能没有足够空间来存储这些替换页面,最终会导致linux呈现假死机、服务异样等问题,linux尽管能够在一段时间内自行复原,然而复原后的零碎曾经根本不可用了。虚拟内存原理在零碎中运行的每个过程都须要应用到内存,但不是每个过程都须要每时每刻应用零碎调配的内存空间。当零碎运行所需内存超过理论的物理内存,内核会开释某些过程所占用但未应用的局部或所有物理内存,将这部分材料存储在磁盘上直到过程下一次调用,并将开释出的内存提供给有须要的过程应用。 在Linux内存治理中,次要是通过“调页Paging”和“替换Swapping”来实现上述的内存调度。调页算法是将内存中最近不常应用的页面换到磁盘上,把流动页面保留在内存中供过程应用。替换技术是将整个过程,而不是局部页面,全副替换到磁盘上。 分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)从磁盘从新回到内存的过程被称作Page-In。当内核须要一个分页时,但发现此分页不在物理内存中(因为曾经被Page-Out了),此时就产生了分页谬误(Page Fault)。 当零碎内核发现可运行内存变少时,就会通过Page-Out来开释一部分物理内存。只管Page-Out不是常常产生,然而如果Page-out频繁一直的产生,直到当内核治理分页的工夫超过运行程式的工夫时,零碎效力会急剧下降。这时的零碎曾经运行十分慢或进入暂停状态,这种状态亦被称作thrashing(平稳)。 命令格局vmstat [-a] [-n] [-S unit] [delay [ count]]vmstat [-s] [-n] [-S unit]vmstat [-m] [-n] [delay [ count]]vmstat [-d] [-n] [delay [ count]]vmstat [-p disk partition] [-n] [delay [ count]]vmstat [-f]vmstat [-V]命令性能用来显示虚拟内存的信息命令参数-a:显示沉闷和非沉闷内存-f:显示从系统启动至今的fork数量 。-m:显示slabinfo-n:只在开始时显示一次各字段名称。-s:显示内存相干统计信息及多种系统活动数量。delay:刷新工夫距离。如果不指定,只显示一条后果。count:刷新次数。如果不指定刷新次数,但指定了刷新工夫距离,这时刷新次数为无穷。-d:显示磁盘相干统计信息。-p:显示指定磁盘分区统计信息-S:应用指定单位显示。参数有 k 、K 、m 、M ,别离代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)-V:显示vmstat版本信息。显示虚拟内存应用状况> vmstat | column -t column -t是为了表头和数据列对齐,便于查看表头字段阐明Procs(过程):r: 运行队列中过程数量b: 期待IO的过程数量Memory(内存):swpd: 应用虚拟内存大小free: 可用内存大小buff: 用作缓冲的内存大小cache: 用作缓存的内存大小Swap: ...

February 9, 2022 · 4 min · jiezi

关于linux:冬季实战营-动手实战Linux文本处理入门深入解析动手实操-领鼠标-云小宝-背包-无影

云起实验室 夏季训练营(1.17-3.8)可补卡!!!五期夏季实战,从入门到进阶,以最佳实际帮忙开发者,疾速云上实际,云上学习。体验有礼,点击返回:https://developer.aliyun.com/adc/series/wintercamp夏季实战营第一期:从零到一上手玩转云服务器单期工作处分:实战营技能证书+定制鼠标三期工作处分:全网首发冬奥限量版云小宝五期工作处分:夏季实战营奖牌+定制书包+无影试用 体验简介本场景将提供一台配置了Aliyun Linux 2的ECS实例(云服务器)。您能够参考本教程学习Linux零碎中的文本编辑工具Vim以及文本处理命令。 背景常识云服务器ECS云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳固牢靠、弹性扩大的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您洽购IT硬件的后期筹备,让您像应用水、电、天然气等公共资源一样便捷、高效地应用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS继续提供创新型服务器,解决多种业务需要,助力您的业务倒退。 Aliyun Linux 2Aliyun Linux 2是阿里云推出的下一代 Linux 发行版,它为云上应用程序环境提供 Linux 社区的最新加强性能,在提供云上最佳用户体验的同时,也针对阿里云基础设施做了深度的优化。Aliyun Linux 2 OS 镜像能够运行在阿里云全规格系列 VM 实例上,包含弹性裸金属服务器 (神龙)。 VimVim是从vi倒退进去的一个文本编辑器。代码补全、编译及谬误跳转等不便编程的性能特地丰盛,在程序员中被宽泛应用,和Emacs并列成为类Unix零碎用户最喜爱的文本编辑器。Vim的设计理念是命令的组合。用户学习了各种各样的文本间挪动、跳转的命令和其余的一般模式的编辑命令,并且可能灵便组合应用的话,可能比那些没有模式的编辑器更加高效的进行文本编辑。同时Vim与很多快捷键设置和正则表达式相似,能够辅助记忆。并且Vim针对程序员做了优化。 目录一:文本编辑工具Vim文本编辑工具Vim vim的三种操作模式vim有三种操作模式,别离是命令模式(Command mode)、输出模式(Insert mode)和底线命令模式(Last line mode)。 三种模式切换快捷键: 模式快捷键命令模式ESC输出模式i或a底线命令模式:命令模式在命令模式中管制光标挪动和输出命令,可对文本进行复制、粘贴、删除和查找等工作。 应用命令vim filename后进入编辑器视图后,默认模式就是命令模式,此时敲击键盘字母会被辨认为一个命令,例如在键盘上间断敲击两次d,就会删除光标所在行。 以下是在命令模式中罕用的快捷操作: 操作快捷键光标左移h光标右移l(小写L)光标上移k光标下移j光标挪动到下一个单词w光标挪动到上一个单词b挪动游标到第n行nG挪动游标到第一行gg挪动游标到最初一行G疾速回到上一次光标所在位置Ctrl+o删除以后字符x删除前一个字符X删除整行dd删除一个单词dw或daw删除至行尾d$或D删除至行首d^删除到文档开端dG删除至文档首部d1G删除n行ndd删除n个间断字符nx将光标所在位置字母变成大写或小写~复制游标所在的整行yy(3yy示意复制3行)粘贴至光标后(下)p粘贴至光标前(上)P剪切dd替换上下行ddp替换整行,即删除游标所在行并进入插入模式cc撤销一次或n次操作u{n}撤销以后行的所有批改U复原撤销操作Ctrl+r整行将向右缩进>>整行将向左退回<<若档案没有更动,则不贮存来到,若档案曾经被更动过,则贮存后来到ZZ输出模式在命令模式下按i或a键就进入了输出模式,在输出模式下,您能够失常的应用键盘按键对文本进行插入和删除等操作。 底线命令模式在命令模式下按:键就进入了底线命令模式,在底线命令模式中能够输出单个或多个字符的命令。 以下是底线命令模式中罕用的快捷操作: 操作命令保留:w退出:q保留并退出:wq(:wq!示意强制保留退出)将文件另存为其余文件名:w new_filename显示行号:set nu勾销行号:set nonu使本行内容居中:ce使本行文本靠右:ri使本行内容靠左:le向光标之下寻找一个名称为word的字符串:/word向光标之上寻找一个字符串名称为word的字符串:?word反复前一个搜查的动作:n从第一行到最初一行寻找word1字符串,并将该字符串取代为word2:1,$s/word1/word2/g或 :%s/word1/word2/g应用示例1.List item 新建一个文件并进入vim命令模式。 vim 静夜思.txt 2.按下i进入输出模式,输出《静夜思》的诗名。 3.按下ECS键回到命令模式,并输出底线命令:ce,使诗名居中。 4.按下o键换行并进入输出模式,输出第一行诗。 5.按下ECS键回到命令模式,并输出底线命令:ce,使第一行诗居中。 6.按下o键换行并进入输出模式,输出第二行诗。 7.按下ECS键回到命令模式,并输出底线命令:ce,使第二行诗居中。 8.在命令模式中执行底线命令:wq来到vim。 目录二:文本文件查看命令cat命令形容:cat命令用于查看内容较少的纯文本文件。 命令格局:cat [选项] [文件]。 命令参数阐明: 参数阐明-n或--number显示行号-b或--number-nonblank显示行号,然而不对空白行进行编号-s或--squeeze-blank当遇到有间断两行以上的空白行,只显示一行的空白行命令应用示例: 1.将一个自增序列写入test.txt文件中。 for i in $(seq 1 10); do echo $i >> test.txt ; done2.查看文件内容。 ...

February 9, 2022 · 2 min · jiezi

关于linux:Mysql数据库-基于Docker搭建Mysql80以上版本主从实例实战

Mysql主从环境概述Mysql集群主从环境搭建本次采纳Docker部署集群,并且首先主从实例配置。1.Mysql-Cluster集群服务布局 2.Mysql-Cluster集群先决条件创立 Mysql-Cluster集群次要配置目录如下: 2.1 Mysql-Master节点[3308]创立 Mysql-Slave节点次要配置文件目录以及配置文件如下: [1].mysql.cnf配置文件: # Copyright (c) 2015, 2021, Oracle and/or its affiliates.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License, version 2.0,# as published by the Free Software Foundation.## This program is also distributed with certain software (including# but not limited to OpenSSL) that is licensed under separate terms,# as designated in a particular file or component or in included license# documentation. The authors of MySQL hereby grant you an additional# permission to link the program and your derivative works with the# separately licensed software that they have included with MySQL.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License, version 2.0, for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA## The MySQL Client configuration file.## For explanations see# http://dev.mysql.com/doc/mysql/en/server-system-variables.html[mysql]skip-grant-tablesskip-host-cacheskip-name-resolvedefault_authentication_plugin=mysql_native_passwordbind-address = 0.0.0.0mysqlx-bind-address = 0.0.0.0character-set-client-handshake=FALSEcharacter-set-server=utf8mb4collation-server=utf8mb4_unicode_ciinit_connect='SET NAMES utf8mb4'open_files_limit = 3072back_log=200max_connections = 20max_connect_errors = 10table_open_cache = 128external-locking = FALSEmax_allowed_packet = 4Msort_buffer_size = 2Mjoin_buffer_size = 2Mthread_cache_size = 128tmp_table_size = 16Mmax_heap_table_size = 8Mslow_query_log = 1long_query_time = 0.05sync_binlog = 1binlog_cache_size = 4Mmax_binlog_cache_size = 8Mmax_binlog_size = 512Mkey_buffer_size = 8Mread_buffer_size = 1Mread_rnd_buffer_size = 8Mbulk_insert_buffer_size = 32Mdefault-storage-engine=InnoDBlog-bin=mysql-binbinlog_format=rowserver-id = 1transaction_isolation = REPEATABLE-READsql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'default-storage-engine=INNODBinnodb_thread_concurrency=12innodb_flush_log_at_trx_commit=1innodb_max_dirty_pages_pct=30innodb_io_capacity=10000innodb_log_buffer_size=1024Minnodb_flush_method=O_DIRECTinnodb_flush_neighbors=0innodb_log_files_in_group=4innodb_compression_level=0innodb_file_per_table=1innodb_compression_pad_pct_max=50innodb_buffer_pool_size=256Minteractive_timeout=500wait_timeout=500innodb_log_file_size=256Mlower_case_table_names=1lower_case_file_system=ONreplicate-ignore-db=mysqlreplicate-ignore-db=sysreplicate-ignore-db=information_schemareplicate-ignore-db=performance_schema[mysqld]default_authentication_plugin=mysql_native_passwordbind-address = 0.0.0.0mysqlx-bind-address = 0.0.0.0skip-grant-tablesskip-host-cacheskip-name-resolveskip-grant-tablesinit_connect='SET NAMES utf8mb4'open_files_limit = 3072back_log=200max_connections = 20max_connect_errors = 10table_open_cache = 128external-locking = FALSEmax_allowed_packet = 4Msort_buffer_size = 2Mjoin_buffer_size = 2Mthread_cache_size = 128tmp_table_size = 16Mmax_heap_table_size = 8Mslow_query_log = 1long_query_time = 0.05sync_binlog = 1binlog_cache_size = 4Mmax_binlog_cache_size = 8Mmax_binlog_size = 512Mkey_buffer_size = 8Mread_buffer_size = 1Mread_rnd_buffer_size = 8Mbulk_insert_buffer_size = 32Mdefault-storage-engine=InnoDBlog-bin=mysql-binbinlog_format=rowserver-id = 1transaction_isolation = REPEATABLE-READsql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'default-storage-engine=INNODBinnodb_thread_concurrency=12innodb_flush_log_at_trx_commit=1innodb_max_dirty_pages_pct=30innodb_io_capacity=10000innodb_log_buffer_size=1024Minnodb_flush_method=O_DIRECTinnodb_flush_neighbors=0innodb_log_files_in_group=4innodb_compression_level=0innodb_file_per_table=1innodb_compression_pad_pct_max=50innodb_buffer_pool_size=256Minteractive_timeout=500wait_timeout=500innodb_log_file_size=256Mlower_case_table_names=1lower_case_file_system=ONreplicate-ignore-db=mysqlreplicate-ignore-db=sysreplicate-ignore-db=information_schemareplicate-ignore-db=performance_schema[mysqldump]quickquote-namesmax_allowed_packet=500M[client]default-character-set=utf8mb42.2 Mysql-Slave节点[3309]创立 Mysql-Slave节点次要配置文件目录以及配置文件如下: ...

February 9, 2022 · 6 min · jiezi

关于linux:python-列表中插入数据

insert()往列表的指定地位增加元素,举个例子: insert的列子1 a = ["hello", "world", "dlrb"]2 a.insert(1, "girl")3 print(a)输入后果: ['hello', 'girl', 'world', 'dlrb']咱们在列表a的地位1插入元素girl A = [1,2,3,4,5,6,8]A.insert( 6, 7)print(A) result:[1,2,3,4,5,6,7,8] insert共有如下5种场景:1:index=0时,从头部插入obj。2:index > 0 且 index < len(list)时,在index的地位插入obj。3:当index < 0 且 abs(index) < len(list)时,从两头插入obj,如:-1 示意从倒数第1位插入obj。4:当index < 0 且 abs(index) >= len(list)时,从头部插入obj。5:当index >= len(list)时,从尾部插入obj。append 与insert的区别两者都是对python内的列表进行操作,append()办法是值在列表的开端减少一个数据项,insert()办法是指在某个特定地位前加一个数据项。 Python内的list实现是通过数组实现的,而不是链表的模式,所以每当执行insert()操作时,都要将插入地位的元素向后挪动能力在相应的地位插入元素,执行append()操作时,如果调配的空间还足够大的话那么就能够间接插到最初,如果空间不够的话就须要将已有的数据复制到一片更大的空间后再插入新元素,insert()空间不够的话也是同样。 参考:python list insertappend list in pythonpython 3 list methods examplessort list in python

February 8, 2022 · 1 min · jiezi

关于linux:17-个实用-shell-脚本建议收藏

1、服务器系统配置初始化#/bin/bash# 装置零碎性能剖析工具及其他yum install gcc make autoconf vim sysstat net-tools iostat iftop iotp wget lrzsz lsof unzip openssh-clients net-tool vim ntpdate -y# 设置时区并同步工夫ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeif ! crontab -l |grep ntpdate &>/dev/null ; then (echo "* 1 * * * ntpdate time.windows.com >/dev/null 2>&1";crontab -l) |crontab fi # 禁用selinuxsed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config # 敞开防火墙if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; then systemctl stop firewalld systemctl disable firewalldelif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; then service iptables stop chkconfig iptables offfi # 历史命令显示操作工夫if ! grep HISTTIMEFORMAT /etc/bashrc; then echo 'export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S `whoami` "' >> /etc/bashrcfi # SSH超时工夫if ! grep "TMOUT=600" /etc/profile &>/dev/null; then echo "export TMOUT=600" >> /etc/profilefi # 禁止root近程登录 切记给零碎增加普通用户,给su到root的权限sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config # 禁止定时工作向发送邮件sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab # 设置最大关上文件数if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; thencat >> /etc/security/limits.conf << EOF * soft nofile 65535 * hard nofile 65535EOFfi # 零碎内核优化cat >> /etc/sysctl.conf << EOFnet.ipv4.tcp_syncookies = 1net.ipv4.tcp_max_tw_buckets = 20480net.ipv4.tcp_max_syn_backlog = 20480net.core.netdev_max_backlog = 262144net.ipv4.tcp_fin_timeout = 20 EOF # 缩小SWAP应用echo "0" > /proc/sys/vm/swappiness2、批量创立多个用户并设置明码#!/bin/bashUSER_LIST=$@USER_FILE=./user.infofor USER in $USER_LIST;do if ! id $USER &>/dev/null; then PASS=$(echo $RANDOM |md5sum |cut -c 1-8) useradd $USER echo $PASS | passwd --stdin $USER &>/dev/null echo "$USER $PASS" >> $USER_FILE echo "$USER User create successful." else echo "$USER User already exists!" fidone3、一键查看服务器利用率#!/bin/bashfunction cpu(){ util=$(vmstat | awk '{if(NR==3)print $13+$14}') iowait=$(vmstat | awk '{if(NR==3)print $16}') echo "CPU -使用率:${util}% ,期待磁盘IO相应使用率:${iowait}:${iowait}%" }function memory (){ total=`free -m |awk '{if(NR==2)printf "%.1f",$2/1024}'` used=`free -m |awk '{if(NR==2) printf "%.1f",($2-$NF)/1024}'` available=`free -m |awk '{if(NR==2) printf "%.1f",$NF/1024}'` echo "内存 - 总大小: ${total}G , 应用: ${used}G , 残余: ${available}G"}disk(){ fs=$(df -h |awk '/^\/dev/{print $1}') for p in $fs; do mounted=$(df -h |awk '$1=="'$p'"{print $NF}') size=$(df -h |awk '$1=="'$p'"{print $2}') used=$(df -h |awk '$1=="'$p'"{print $3}') used_percent=$(df -h |awk '$1=="'$p'"{print $5}') echo "硬盘 - 挂载点: $mounted , 总大小: $size , 应用: $used , 使用率: $used_percent" done }function tcp_status() { summary=$(ss -antp |awk '{status[$1]++}END{for(i in status) printf i":"status[i]" "}') echo "TCP连贯状态 - $summary"}cpumemorydisktcp_status4、找出占用CPU 内存过高的过程#!/bin/bashecho "-------------------CUP占用前10排序--------------------------------"ps -eo user,pid,pcpu,pmem,args --sort=-pcpu |head -n 10echo "-------------------内存占用前10排序--------------------------------"ps -eo user,pid,pcpu,pmem,args --sort=-pmem |head -n 105、查看网卡的实时流量#!/bin/basheth0=$1echo -e "流量进入--流量传出 "while true; do old_in=$(cat /proc/net/dev |grep $eth0 |awk '{print $2}') old_out=$(cat /proc/net/dev |grep $eth0 |awk '{print $10}') sleep 1 new_in=$(cat /proc/net/dev |grep $eth0 |awk '{print $2}') new_out=$(cat /proc/net/dev |grep $eth0 |awk '{print $10}') in=$(printf "%.1f%s" "$((($new_in-$old_in)/1024))" "KB/s") out=$(printf "%.1f%s" "$((($new_out-$old_out)/1024))" "KB/s") echo "$in $out"done6、监控多台服务器磁盘利用率脚本#!/bin/bashHOST_INFO=host.infofor IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do #取出用户名和端口 USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO) PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO) #创立临时文件,保存信息 TMP_FILE=/tmp/disk.tmp #通过公钥登录获取主机磁盘信息 ssh -p $PORT $USER@$IP 'df -h' > $TMP_FILE #剖析磁盘占用空间 USE_RATE_LIST=$(awk 'BEGIN{OFS="="}/^\/dev/{print $NF,int($5)}' $TMP_FILE) #循环磁盘列表,进行判断 for USE_RATE in $USE_RATE_LIST; do #取出等号(=)左边的值 挂载点名称 PART_NAME=${USE_RATE%=*} #取出等号(=)右边的值 磁盘利用率 USE_RATE=${USE_RATE#*=} #进行判断 if [ $USE_RATE -ge 80 ]; then echo "Warning: $PART_NAME Partition usage $USE_RATE%!" echo "服务器$IP的磁盘空间占用过高,请及时处理" | mail -s "空间有余正告" 你的qq@qq.com else echo "服务器$IP的$PART_NAME目录空间良好" fi donedone7、批量检测网站是否异样并邮件告诉#!/bin/bash URL_LIST="www.baidu.com www.ctnrs.com www.der-matech.net.cn www.der-matech.com.cn www.der-matech.cn www.der-matech.top www.der-matech.org"for URL in $URL_LIST; do FAIL_COUNT=0 for ((i=1;i<=3;i++)); do HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL) if [ $HTTP_CODE -eq 200 ]; then echo "$URL OK" break else echo "$URL retry $FAIL_COUNT" let FAIL_COUNT++ fi done if [ $FAIL_COUNT -eq 3 ]; then echo "Warning: $URL Access failure!" echo "网站$URL坏掉,请及时处理" | mail -s "$URL网站高危" 1794748404@qq.com fidone8、批量主机近程执行命令脚本#!/bin/bashCOMMAND=$*HOST_INFO=host.infofor IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO) PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO) PASS=$(awk -v ip=$IP 'ip==$1{print $4}' $HOST_INFO) expect -c " spawn ssh -p $PORT $USER@$IP expect { \"(yes/no)\" {send \"yes\r\"; exp_continue} \"password:\" {send \"$PASS\r\"; exp_continue} \"$USER@*\" {send \"$COMMAND\r exit\r\"; exp_continue} } " echo "-------------------"done9、一键部署LNMP网站平台脚本#!/bin/bashNGINX_V=1.15.6PHP_V=5.6.36TMP_DIR=/tmp INSTALL_DIR=/usr/local PWD_C=$PWD echoecho -e "\tMenu\n"echo -e "1. Install Nginx"echo -e "2. Install PHP"echo -e "3. Install MySQL"echo -e "4. Deploy LNMP"echo -e "9. Quit" function command_status_check() { if [ $? -ne 0 ]; then echo $1 exit fi } function install_nginx() { cd $TMP_DIR yum install -y gcc gcc-c++ make openssl-devel pcre-devel wget wget http://nginx.org/download/nginx-${NGINX_V}.tar.gz tar zxf nginx-${NGINX_V}.tar.gz cd nginx-${NGINX_V} ./configure --prefix=$INSTALL_DIR/nginx \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-stream command_status_check "Nginx - 平台环境查看失败!" make -j 4 command_status_check "Nginx - 编译失败!" make install command_status_check "Nginx - 装置失败!" mkdir -p $INSTALL_DIR/nginx/conf/vhost alias cp=cp ; cp -rf $PWD_C/nginx.conf $INSTALL_DIR/nginx/conf rm -rf $INSTALL_DIR/nginx/html/* echo "ok" > $INSTALL_DIR/nginx/html/status.html echo '<?php echo "ok"?>' > $INSTALL_DIR/nginx/html/status.php $INSTALL_DIR/nginx/sbin/nginx command_status_check "Nginx - 启动失败!"} function install_php() { cd $TMP_DIR yum install -y gcc gcc-c++ make gd-devel libxml2-devel \ libcurl-devel libjpeg-devel libpng-devel openssl-devel \ libmcrypt-devel libxslt-devel libtidy-devel wget http://docs.php.net/distributions/php-${PHP_V}.tar.gz tar zxf php-${PHP_V}.tar.gz cd php-${PHP_V} ./configure --prefix=$INSTALL_DIR/php \ --with-config-file-path=$INSTALL_DIR/php/etc \ --enable-fpm --enable-opcache \ --with-mysql --with-mysqli --with-pdo-mysql \ --with-openssl --with-zlib --with-curl --with-gd \ --with-jpeg-dir --with-png-dir --with-freetype-dir \ --enable-mbstring --enable-hash command_status_check "PHP - 平台环境查看失败!" make -j 4 command_status_check "PHP - 编译失败!" make install command_status_check "PHP - 装置失败!" cp php.ini-production $INSTALL_DIR/php/etc/php.ini cp sapi/fpm/php-fpm.conf $INSTALL_DIR/php/etc/php-fpm.conf cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm /etc/init.d/php-fpm start command_status_check "PHP - 启动失败!"} read -p "请输出编号:" numbercase $number in 1) install_nginx;; 2) install_php;; 3) install_mysql;; 4) install_nginx install_php ;; 9) exit;;esac10、监控MySQL主从同步状态是否异样脚本#!/bin/bash HOST=localhostUSER=rootPASSWD=123.comIO_SQL_STATUS=$(mysql -h$HOST -u$USER -p$PASSWD -e 'show slave status\G' 2>/dev/null |awk '/Slave_.*_Running:/{print $1$2}')for i in $IO_SQL_STATUS; do THREAD_STATUS_NAME=${i%:*} THREAD_STATUS=${i#*:} if [ "$THREAD_STATUS" != "Yes" ]; then echo "Error: MySQL Master-Slave $THREAD_STATUS_NAME status is $THREAD_STATUS!" |mail -s "Master-Slave Staus" xxx@163.com fidone11、MySql数据库备份脚本分库备份mysqldump -uroot -pxxx -B A > A.sql#!/bin/bashDATE=$(date +%F_%H-%M-%S)HOST=localhostUSER=backupPASS=123.comBACKUP_DIR=/data/db_backupDB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys") for DB in $DB_LIST; do BACKUP_NAME=$BACKUP_DIR/${DB}_${DATE}.sql if ! mysqldump -h$HOST -u$USER -p$PASS -B $DB > $BACKUP_NAME 2>/dev/null; then echo "$BACKUP_NAME 备份失败!" fidone分表备份mysqldump -uroot -pxxx -A t > t.sql#!/bin/bashDATE=$(date +%F_%H-%M-%S)HOST=localhostUSER=backupPASS=123.comBACKUP_DIR=/data/db_backupDB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys") for DB in $DB_LIST; do BACKUP_DB_DIR=$BACKUP_DIR/${DB}_${DATE} [ ! -d $BACKUP_DB_DIR ] && mkdir -p $BACKUP_DB_DIR &>/dev/null TABLE_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "use $DB;show tables;" 2>/dev/null) for TABLE in $TABLE_LIST; do BACKUP_NAME=$BACKUP_DB_DIR/${TABLE}.sql if ! mysqldump -h$HOST -u$USER -p$PASS $DB $TABLE > $BACKUP_NAME 2>/dev/null; then echo "$BACKUP_NAME 备份失败!" fi donedone12、Nginx拜访日志剖析#!/bin/bash# 日志格局: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"LOG_FILE=$1echo "统计拜访最多的10个IP"awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr |head -10echo "----------------------" echo "统计时间段拜访最多的IP"awk '$4>="[01/Dec/2018:13:20:25" && $4<="[27/Nov/2018:16:20:49"{a[$1]++}END{for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr|head -10echo "----------------------" echo "统计拜访最多的10个页面"awk '{a[$7]++}END{print "PV:",length(a);for(v in a){if(a[v]>10)print v,a[v]}}' $LOG_FILE |sort -k2 -nrecho "----------------------" echo "统计拜访页面状态码数量"awk '{a[$7" "$9]++}END{for(v in a){if(a[v]>5)print v,a[v]}}' $LOG_FILE |sort -k3 -nr13、Nginx拜访日志主动按天(周、月)切割#!/bin/bash#nginx日志目录LOG_DIR=/www/server/nginx/logs#获取到上一天的工夫YESTERDAY_TIME=$(date -d "yesterday" +%F)#归档日志取工夫LOG_MONTH_DIR=$LOG_DIR/$(date +"%Y-%m")#归档日志的名称LOG_FILE_LIST="access.log" for LOG_FILE in $LOG_FILE_LIST; do [ ! -d $LOG_MONTH_DIR ] && mkdir -p $LOG_MONTH_DIR mv $LOG_DIR/$LOG_FILE $LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME}done kill -USR1 $(cat $LOG_DIR/nginx.pid)14、主动公布Java我的项目(Tomcat)#!/bin/bashDATE=$(date +%F_%T) TOMCAT_NAME=$1TOMCAT_DIR=/usr/local/$TOMCAT_NAMEROOT=$TOMCAT_DIR/webapps/ROOT BACKUP_DIR=/data/backupWORK_DIR=/tmpPROJECT_NAME=tomcat-java-demo # 拉取代码cd $WORK_DIRif [ ! -d $PROJECT_NAME ]; then git clone https://github.com/lizhenliang/tomcat-java-demo cd $PROJECT_NAMEelse cd $PROJECT_NAME git pullfi # 构建mvn clean package -Dmaven.test.skip=trueif [ $? -ne 0 ]; then echo "maven build failure!" exit 1fi # 部署TOMCAT_PID=$(ps -ef |grep "$TOMCAT_NAME" |egrep -v "grep|$$" |awk 'NR==1{print $2}')[ -n "$TOMCAT_PID" ] && kill -9 $TOMCAT_PID[ -d $ROOT ] && mv $ROOT $BACKUP_DIR/${TOMCAT_NAME}_ROOT$DATEunzip $WORK_DIR/$PROJECT_NAME/target/*.war -d $ROOT$TOMCAT_DIR/bin/startup.sh15、主动公布PHP我的项目#!/bin/bash DATE=$(date +%F_%T) WWWROOT=/usr/local/nginx/html/$1 BACKUP_DIR=/data/backupWORK_DIR=/tmpPROJECT_NAME=php-demo # 拉取代码cd $WORK_DIRif [ ! -d $PROJECT_NAME ]; then git clone https://github.com/lizhenliang/php-demo cd $PROJECT_NAMEelse cd $PROJECT_NAME git pullfi # 部署if [ ! -d $WWWROOT ]; then mkdir -p $WWWROOT rsync -avz --exclude=.git $WORK_DIR/$PROJECT_NAME/* $WWWROOTelse rsync -avz --exclude=.git $WORK_DIR/$PROJECT_NAME/* $WWWROOTfi16、DOS攻打防备(主动屏蔽攻打IP)#!/bin/bashDATE=$(date +%d/%b/%Y:%H:%M)#nginx日志LOG_FILE=/usr/local/nginx/logs/demo2.access.log#剖析ip的拜访状况ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}')for IP in $ABNORMAL_IP; do if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then iptables -I INPUT -s $IP -j DROP echo "$(date +'%F_%T') $IP" >> /tmp/drop_ip.log fidone17、目录入侵检测与告警#!/bin/bash MON_DIR=/optinotifywait -mqr --format %f -e create $MON_DIR |\while read files; do #同步文件 rsync -avz /opt /tmp/opt #检测文件是否被批改 #echo "$(date +'%F %T') create $files" | mail -s "dir monitor" xxx@163.comdone作者:南宫乘风链接:blog.csdn.net/heian_99/article/details/104027379 ...

February 7, 2022 · 6 min · jiezi

关于linux:Linux之free命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 free命令能够显示Linux零碎中闲暇的、已用的物理内存及swap内存,及被内核应用的buffer。在Linux系统监控的工具中,free命令是最常常应用的命令之一。 命令格局free [参数] 命令性能free命令显示零碎应用和闲暇的内存状况,包含物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被疏忽.命令参数-b 以Byte为单位显示内存应用状况。-k 以KB为单位显示内存应用状况。-m 以MB为单位显示内存应用状况。-g 以GB为单位显示内存应用状况。-o 不显示缓冲区调节列。-s<距离秒数> 继续察看内存应用情况。-t 显示内存总和列。-V 显示版本信息。显示内存应用状况 输入简介Mem 行(第二行)是内存的应用状况。Swap 行(第三行)是替换空间的应用状况。total 列显示零碎总的可用物理内存和替换空间大小。used 列显示曾经被应用的物理内存和替换空间。free 列显示还有多少物理内存和替换空间可用应用。shared 列显示被共享应用的物理内存大小。buff/cache 列显示被 buffer 和 cache 应用的物理内存大小。available 列显示还能够被应用程序应用的物理内存大小。buffers和cached都是缓存,两者有什么区别先来提一个问题: buffer 和 cache 应该是两种类型的内存,然而 free 命令为什么会把它们放在一起呢?要答复这个问题须要咱们做些筹备工作。让咱们先来搞清楚 buffer 与 cache 的含意。 为了进步磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,减速文件路径名到inode的转换), 还采取了两种次要Cache形式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache无效缩短了 I/O零碎调用(比方read,write,getdents)的工夫。 buffer 在操作系统中指 buffer cache, 中文个别翻译为 "缓冲区"。要了解缓冲区,必须明确另外两个概念:"扇区" 和 "块"。扇区是设施的最小寻址单元,也叫 "硬扇区" 或 "设施块"。块是操作系统中文件系统的最小寻址单元,也叫 "文件块" 或 "I/O 块"。每个块蕴含一个或多个扇区,但大小不能超过一个页面,所以一个页能够包容一个或多个内存中的块。当一个块被调入内存时,它要存储在一个缓冲区中。每个缓冲区与一个块对应,它相当于是磁盘块在内存中的示意: 留神,buffer cache 只有块的概念而没有文件的概念,它只是把磁盘上的块间接搬到内存中而不关怀块中到底寄存的是什么格局的文件。 cache 在操作系统中指 page cache,中文个别翻译为 "页高速缓存"。页高速缓存是内核实现的磁盘缓存。它次要用来缩小对磁盘的 I/O 操作。具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的拜访变为对物理内存的拜访。页高速缓存缓存的是内存页面。缓存中的页来自对一般文件、块设施文件(这个指的就是 buffer cache 呀)和内存映射文件的读写。 ...

February 7, 2022 · 1 min · jiezi

关于linux:Linux-操作系统-JingOS-鲸鲮科技证实裁员一事

近日,JingOS 背地公司鲸鲮科技向 Telegram 群的成员证实了之前对于其公司正在裁员一事。 聊天记录显示,鲸鲮科技正遇到困难,因而团队规模有所缩减。而随着公司工作人员的缩小,他们将无奈像以前那样为社区提供反对,心愿大家能够了解。 此外,他们为其平板电脑产品 JingPad推出了新年优惠,为消费者提供了 45% 的折扣,价格从原来的 699 美元降落至 384 美元,代码为 NEWYEAR。 鲸鲮科技并没有分明地表明其裁员背地的起因,或者这一动作将对公司带来什么影响,只管勾销了 x86 版本JingOS 的开发工作,但鲸鲮示意,他们将持续为装备ARM 处理器的 JingPad A1 等设施开发 JingOS。 至于 JingOS 自身,它是一个基于 Ubuntu Linux 的乏味的操作系统,它具备一个自定义的用户界面,借用了 KDE 和 KDE Plasma Mobile元素。该操作系统反对桌面 Linux 应用程序以及挪动 Linux 应用程序,可用作仅触控设施或与键盘、鼠标和/或数字笔一起应用。还反对运行一些 Android 应用程序,但没有利用 Anbox 或 Waydroid 等现有开源我的项目来实现该性能。 而JingPad A1是一款装备 11 英寸 AMOLED 显示屏、Unisoc T7510 处理器、8GB RAM 和 256GB 存储空间的平板电脑,并自称是寰球首款 ARM 架构的生产级 Linux 平板电脑,它与市场上大多数平板电脑的真正区别在于它附带了一个名为 JingOS 的定制 Linux 发行版。

February 7, 2022 · 1 min · jiezi

关于linux:CentOS-8-EOL如何切换源

CentOS 8 EOL如何切换源?CentOS 8操作系统版本完结了生命周期(EOL),Linux社区已不再保护该操作系统版本。建议您切换到Anolis或Alinux。如果您的业务过渡期仍须要应用CentOS 8零碎中的一些安装包,请依据下文切换CentOS 8的源。 背景信息2021年12月31日CentOS 8 EOL。依照社区规定,CentOS 8的源地址http://mirror.centos.org/centos/8/内容已移除,目前第三方的镜像站中均已移除CentOS 8的源。阿里云的源http://mirrors.cloud.aliyuncs.com和http://mirrors.aliyun.com也无奈同步到CentOS 8的源。当您在阿里云上持续应用默认配置的CentOS 8的源会产生报错。报错示例如下图所示: 您能够通过下文的操作步骤,在CentOS 8操作系统的ECS实例中将源配置依照网络环境不同进行切换。 yum源:专有网络VPC类型实例需切换为http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111源。epel源:专有网络VPC类型实例需切换为http://mirrors.cloud.aliyuncs.com/epel-archive/8/源。阐明 本文次要阐明ECS实例中的相干操作与配置。如果您的服务器不是ECS实例,需保障服务器具备公网拜访能力,并且源地址http://mirrors.cloud.aliyuncs.com须要替换为http://mirrors.aliyun.com。例如,切换yum源为http://mirrors.aliyun.com/centos-vault/8.5.2111/;切换epel源为http://mirrors.aliyun.com/epel-archive/8/。 操作步骤登录CentOS 8零碎的ECS实例。具体操作,请参见连贯形式概述。运行以下命令备份之前的repo文件。 rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo运行以下命令下载最新的repo文件。 wget https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo -O /etc/yum.repos.d/Centos-vault-8.5.2111.repowget https://mirrors.aliyun.com/repo/epel-archive-8.repo -O /etc/yum.repos.d/epel-archive-8.repo运行以下命令替换repo文件中的链接。 sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo && sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo && sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.reposed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/epel-archive-8.repo运行以下命令从新创立缓存。 yum clean all && yum makecacheyum源和epel源切换实现后,即可应用yum install命令在实例上装置您所须要的软件包。

February 7, 2022 · 1 min · jiezi

关于linux:比利时国防部遭Log4j漏洞攻击

比利时政府官员公开抵赖受到近期曝光的Apache Log4j破绽网络攻击。本次攻打导致比利时国防部的局部计算机网络自周四以来始终处于敞开状态。比利时政府官员公开抵赖受到近期曝光的Apache Log4j破绽网络攻击。本次攻打导致比利时国防部的局部计算机网络自周四以来始终处于敞开状态。发言人示意,整个周末其团队都被动员起来管制问题,持续流动并正告合作伙伴。优先事项是放弃网络运行。比利时政府将持续监测这一状况。比利时国防部遭Log4j破绽攻打比利时国防部遭Log4j破绽攻打 Log4j是一个宽泛应用的记录软件,存在于数以亿计的设施中。据微软和Mandiant钻研人员称,与伊朗、朝鲜和土耳其政府无关的黑客都争相利用这一破绽。勒索软件团体也试图利用这一破绽。比利时国防部是第一个报告的该破绽的高调政府受害者,但鉴于Log4j在公共和私营部门风行的许多企业软件中无处不在,它不可能是最初一个。 几日前工信部示意,这一破绽可能导致设施近程受控,进而引发敏感信息窃取、设施服务中断等严重危害,属于高危破绽。工信部揭示无关单位和公众亲密关注阿帕奇Log4j2组件漏洞补丁公布,排查自有相干零碎阿帕奇Log4j2组件应用状况,及时降级组件版本,以升高网络安全危险。 此前McAfee Enterprise和FireEye的高级威逼钻研主管示意,Log4Shell的破坏力和Shellshock、Heartbleed和EternalBlue是同一个级别。无关人士示意该破绽的影响可能是微小的,因为它是可蠕虫式的,能够建设本人的流传。即便有了补丁,也有几十个版本的软弱组件。因为曾经察看到的攻打数量微小,能够假设许多组织曾经被攻破,并须要采取事件响应措施。

February 6, 2022 · 1 min · jiezi

关于linux:Linux之top命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 top命令是Linux下罕用的性能剖析工具,可能实时显示零碎中各个过程的资源占用情况,相似于Windows的工作管理器。上面具体介绍它的应用办法。top是一个动态显示过程,即能够通过用户按键来一直刷新以后状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比拟精确的说,top命令提供了实时的对系统处理器的状态监督.它将显示零碎中CPU最“敏感”的工作列表.该命令能够按CPU应用.内存应用和执行工夫对工作进行排序;而且该命令的很多个性都能够通过交互式命令或者在集体定制文件中进行设定. 命令格局top [参数] 命令性能显示以后零碎正在执行的过程的相干信息,包含过程ID、内存占用率、CPU占用率等命令参数-b 批处理-c 显示残缺的门路-I 疏忽生效过程-s 窃密模式-S 累积模式-i<工夫> 设置间隔时间-u<用户名> 指定用户名-p<过程号> 指定过程-n<次数> 循环显示的次数显示过程信息> toptop - 21:16:05 up 59 days, 4:13, 1 user, load average: 0.25, 0.42, 0.42Tasks: 181 total, 1 running, 180 sleeping, 0 stopped, 0 zombie%Cpu(s): 2.3 us, 3.1 sy, 0.0 ni, 94.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 16265536 total, 807520 free, 12503980 used, 2954036 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 2625804 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 29160 root 0 -20 4343004 399576 3936 S 49.5 2.5 10752:33 vpnserver 前五行是以后零碎状况整体的统计信息区。上面咱们看每一行信息的具体意义。第一行,工作队列信息,同 uptime 命令的执行后果,具体参数阐明状况如下top - 21:16:05 up 59 days, 4:13, 1 user, load average: 0.25, 0.42, 0.4221:16:05 以后零碎工夫up 59 days间隔上次服务器重启服务器曾经运行了59天1 user以后有1个用户登录零碎load average: 0.25, 0.42, 0.42 load average前面的三个数别离是1分钟、5分钟、15分钟的负载状况load average数据是每隔5秒钟查看一次沉闷的过程数,而后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,后果高于5的时候就表明零碎在超负荷运行了。第二行,Tasks — 工作(过程),具体信息阐明如下Tasks: 181 total, 1 running, 180 sleeping, 0 stopped, 0 zombie零碎当初共有181个过程,其中处于运行中的有1个,180个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。第三行,cpu状态信息,具体属性阐明如下%Cpu(s): 2.3 us, 3.1 sy, 0.0 ni, 94.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st2.3% us — 用户空间占用CPU的百分比。3.1% sy — 内核空间占用CPU的百分比。0.0% ni — 扭转过优先级的过程占用CPU的百分比94.6% id — 闲暇CPU百分比0.0% wa — IO期待占用CPU的百分比0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比0.2% si — 软中断(Software Interrupts)占用CPU的百分比0.0% st - 示意被强制期待虚构CPU的工夫第四行,内存状态,具体信息如下KiB Mem : 16265536 total, 807520 free, 12503980 used, 2954036 buff/cache16265536k total — 物理内存总量(16GB)807520k free — 闲暇内存总量(807MB)12503980k used — 应用中的内存总量(12GB)2954036k buffers — 缓存的内存量 (2GB)第五行,swap替换分区信息,具体信息阐明如下KiB Swap: 0 total, 0 free, 0 used. 2625804 avail Mem 0k total — 替换区总量(0)0k free — 闲暇替换区总量(0)0k used — 应用的替换区总量(0)2625804 avail Mem 虚拟内存总量(2.6GB)buff/cache尽管占用物理内存,但当内存不够时也能够间接应用,因而物理内存的可应用空间为:free + buff/cache。第六行,空行。第七行以下:各过程(工作)的状态监控,我的项目列信息阐明如下PID — 过程idUSER — 过程所有者PR — 过程优先级NI — nice值。负值示意高优先级,正值示意低优先级VIRT — 过程应用的虚拟内存总量,单位kb。VIRT=SWAP+RESRES — 过程应用的、未被换出的物理内存大小,单位kb。RES=CODE+DATASHR — 共享内存大小,单位kbS —过程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/进行 Z=僵尸过程%CPU — 上次更新到当初的CPU工夫占用百分比%MEM — 过程应用的物理内存百分比TIME+ — 过程应用的CPU工夫总计,单位1/100秒COMMAND — 过程名称(命令名/命令行)多U多核CPU监控在top根本视图中,按键盘数字“1”,可监控每个逻辑CPU的情况:> top ...

February 5, 2022 · 2 min · jiezi

关于linux:python中可以使用len或lengthhint方法查看列表长度

python中能够应用len()或length_hint()办法查看列表长度。 1、len()办法len()办法语法:len(list) list -- 要计算元素个数的列表。 示例:#!/usr/bin/python list1, list2 = [123, 'xyz', 'zara'], [456, 'abc'] print "First list length : ", len(list1); print "Second list length : ", len(list2); 输入后果如下:First list length : 3 Second lsit length : 2 2、应用length_hint()办法查看列表长度在Python中还能够length_hint()办法来查找列表长度。该办法是查找列表长度的一种鲜为人知的技术;它是在operator类中定义的,它会返回列表中存在的元素的数量。 代码示例:应用length_hint()办法来获取列表长度from operator import length_hint 初始化列表 List = [ 1, 4, 5, 7, 8 ] 输入列表 print ("列表为: " + str(List)) list_len_hint =length_hint(List) 输入列表长度 print ("列表长度为: " + str(list_len_hint)) how to check list length in python 3 ...

February 5, 2022 · 1 min · jiezi

关于linux:多种方法查看Linux版本信息

查看Linux内核版本命令(两种办法): 1、cat /proc/version显示正在运行的内核版本。 [root@S-CentOS home]# cat /proc/version Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.cento...) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 2、uname -a显示电脑以及操作系统的相干信息。 [root@S-CentOS home]# uname -a Linux S-CentOS 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 查看Linux零碎版本的命令(3种办法): 3、lsb_release -a,即可列出所有版本信息[root@S-CentOS ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarchDistributor ID: CentOSDescription: CentOS release 6.5 (Final)Release: 6.5 Codename: Final 这个命令实用于所有的Linux发行版,包含RedHat、SUSE、Debian…等发行版,然而在debian下要装置lsb。 4、cat /etc/redhat-release,这种办法只适宜Redhat系的Linux[root@S-CentOS home]# cat /etc/redhat-release ...

February 5, 2022 · 1 min · jiezi

关于linux:tcp-udp详解

TCP报头(1)TCP协定报头TCP指传输控制协议,其报头格局如下: 1)源/目标端口号:示意数据是从哪个过程来,到哪个过程去。2)32位序号/32确认号:用于牢靠传输。3)4位TCP报头长度:示意该TCP头部有多少个32位bit(有多少个4字节),所以TCP头部最大长度是15*4=60。4)6位标记位:TCP协定中的六个标记别离是,URG、ACK、PSH、RST、SYN、FIN。A、UGR(紧急):UGR=1示意紧急指针字段无效。它通知零碎此报文段有紧急数据,该当尽快传送。从报文段的结尾,到紧急指针指向的中央就是紧急数据。B、ACK(确认):ACK=1时,确认号字段才无效。C、PSH(推送):让对方立刻收到响应。与URG的区别就是URG中的紧急数据不通过缓冲区就间接上交给下层逻辑,而PSH还是要从缓冲区上交,只是不必等到缓冲区满了才上交。D、RST(复位):RST=1时,表明TCP链接中呈现重大过错,必须开释链接,而后再从新链接。以下几种场景中会应用RST报文(拜访不存在的端口。异样终止一个链接,个别状况下是发送FIN,因为在所有排队数据都以发送之后才发送FIN,然而也有可能发送一个RST来异样开释连贯。检测半关上的链接,即一端敞开,另一端不晓得,这时会发送一个RST进行监测。当长时间不必连贯,连贯断开之后,再次拜访的时候会发送RST)。E、SYN(同步):在链接建设时用来同步序号。当SYN=1,ACK=0时示意申请报文。SYN=1,ACK=1示意链接承受。因而SYN=1示意一个链接申请或链接承受报文。F、FIN(终止):用来开释一个链接。5)16位窗口大小:示意数据传输的最大长度。6)16位校验和:发送端填充,CRC测验,接收端校验不通过,则认为数据有问题。此处的校验和不光蕴含TCP首部,也蕴含TCP数据局部。7)16紧急指针:标识哪局部数据是紧急数据。8)40字节头部选项:寄存一个窗口扩充因子等等信息。tcp_time_wait_linux详解tcp connection是如何建设的tcp flags (2)UDP协定报头UDP指用户数据报协定,其报头格局如下: TCP的优缺点(1)TCP的长处:TCP的长处是:牢靠、稳固。它体现在TCP在传递数据之前,会有三次握手来建设连贯;在数据传递时,采纳校验和、序列号、确认应答、超时重发、流量管制、拥塞管制,为了进步性能,还采纳了滑动窗口、提早应答和捎带应答等机制;在数据传完后,会断开连接以节约系统资源。 (2)TCP的毛病:TCP的毛病:运行速度慢,效率低,占用系统资源多,易被攻 ji。因为TCP在传递数据之前,要先建设连贯,这会耗费工夫;在数据传递时,确认机制、重传机制、拥塞管制机制等都会耗费大量的工夫,而且要在每台设施上保护所有的传输连贯,每个连贯都会占用零碎的CPU、内存等资源;TCP有确认机制、三次握手机制,这导致TCP容易受到DOS、DDOS、CC等攻 ji。收到STN洪水攻 ji,是因为应用 TCP的时候服务器端须要listen,这时须要设置backlog。 UDP的优缺点(1)UDP的长处:运行速度较快,比TCP平安。1)运行速度快,因为 UDP连贯没有TCP的三次握手、确认应答、超时重发、流量管制、拥塞管制等机制,而且UDP是一个无状态的传输协定,所以它在传递数据时十分快。2)较平安,因为没有TCP的那些机制,UDP较TCP被攻 ji者利用的漏dong就会少一些。但UDP也是无奈防止攻 ji的,比方:UDP Flood攻 ji等。(2)UDP的毛病:不牢靠,不稳固。因为UDP没有TCP那些牢靠的机制,在数据传递时,如果网络品质不好,就会很容易丢包。 how tcp connection works TCP和UDP的特点(1)TCP的特点TCP协定是一种有连贯、牢靠的、面向字节流、绝对比较慢、点对点的传输层协定。TCP协定实用于对可靠性要求比拟高的场合。(2)UDP的特点UDP协定是一种无连贯,不牢靠、面向数据报、速度比拟快、可实现一对一,多对一的传输层协定。UDP协定实用于对实时性有要求的场合。因为UDP不保障可靠性,所以UDP也没有重传机制,也没有拥塞机制,它只是尽最大致力交付数据。 TCP保证数据可靠性和进步性能的机制(1)确认应答(ACK)机制TCP将每个字节的数据都进行了编号,即为序列号。每一个ACK都带有对应的确认序列号,意思是通知发送者收到了哪些数据,下次从哪里开始发送。 (2)超时重传机制1)超时重传机制的工作过程主机A发送数据给B之后,可能因为网络拥挤等问题,数据无奈达到主机B。如果主机A在一个特定工夫距离内没有收到B发来的确认应答,就会进行重发。然而,主机A未收到B发来的确认应答,也可能是因为ACK失落了,因而主机B会收到很多反复数据。那么TCP协定须要可能辨认出哪些包是反复的,并且把反复的抛弃掉,这时候能够利用序列号就能够很容易做到去重的成果。2)如何确定超时工夫?最现实的状况下找到一个最小的工夫,保障“确认应答”肯定能在这个工夫内返回。然而,这个工夫的长短随着网络环境的不同是有差别的,如果超时工夫设的太长会影响整体的重传效率;如果超时工夫设得太短,有可能会频繁发送反复的包。TCP为了保障无论在任何环境下都能比拟高性能的通信,因而会动静计算这个最大超时工夫。Linux中超时以500ms为一个单位进行管制,每次断定超时重发的超时工夫都是500ms的整数倍。如果重发一次之后依然得不到应答,期待2500ms后进行重传;如果依然得不到应答,期待4500ms再进行重传,以此类推,以指数模式递增。累计到肯定的重传次数,TCP认为网络或者对端主机出现异常,并强制敞开连贯。 (3)滑动窗口1)为什么须要滑动窗口?后面探讨了确认应答策略,对每一个发送的数据段都要给一个ACK确认应答,收到ACK后再发送下一个数据段。这个做有一个比拟大的毛病就是性能较差,尤其是数据往返的工夫较长的时候。既然这样一发一收性能较低,那么如果一次发送多条数据,不是就能够将多个段的期待时间重叠在一起进步性能了吗?2)工作过程窗口大小指的是毋庸期待确认应答而能够持续发送数据的最大值,规定发送前4个段的时候,须要期待任何ACK间接发送。收到第一个ACK后,滑动窗口向后挪动,持续发送第5个段的数据,以此类推。操作系统内核为了保护这个滑动窗口,须要开拓发送缓冲区来记录以后还有哪些数据没有应答,只有确认应答过的数据能力从缓冲区删掉,窗口越大网络吞吐率就越高。那么如果呈现丢包,如何进行重传?状况一:数据包曾经到达,ACK被丢了。这种状况下,局部ACK丢了并不要紧,因为能够通过后续的ACK进行确认。状况二:数据包间接丢了。当某一段报文失落之后,发送端会始终收到1001这样的ACK,就像是在揭示发送端“接收端想要的就是1001”一样。如果发送端主机间断三次收到了同样一个“1001”,就会将对应的数据1001-2000从新发送.这个时候接收端收到了1001之后,再次返回的ACK就是7001了,因为2001-7000接收端其实之前就曾经收到了,被放到了接收端操作系统内核的接收缓冲区中。这种机制被称为“高速重发管制”,也称为“快重传”。tcp_window_scaling (4)流量管制1)什么是流量管制?接收端解决数据的速度是无限的,如果发送端发得太快,导致接收端的缓冲区被填满,这个时候如果发送端持续发送就会造成丢包,继而引起丢包重传等等一系列连锁反应。因而,TCP反对依据接收端的解决能力来决定发送端的发送速度,这个机制就叫做流量管制。2)工作流程接收端将本人能够接管的缓冲区大小放入TCP首部中的“窗口大小”字段,通过ACK端告诉发送端。窗口大小字段越大,阐明网络的吞吐量越高。接收端一旦发现自己的缓冲区快满了,就会将窗口大小设置成一个更小的值告诉给发送端,发送端接管到这个窗口之后就会减慢本人的发送速度。如果接收端缓冲区满了就会将窗口置为0,这时发送方不再发送数据,然而须要定期发送一个窗口探测数据段,使接收端把窗口大小通知发送端。3)接收端如何把窗口大小通知发送端?在TCP首部中,有一个16位窗口字段就是用于寄存窗口信息的。16位数字最大示意65535,那么TCP窗口最大就是65535字节么?实际上,TCP首部40字节选项中还蕴含了一个窗口扩充因子M,理论窗口大小是窗口字段的值左移M位。 (5)拥塞管制1)拥塞管制的必要性尽管TCP有了滑动窗口这个大杀器,可能高效牢靠的发送大量数据,然而如果在刚开始阶段就发送大量的数据,依然可能引发问题。因为网络上有很多的计算机,可能以后的网络状态就曾经比拟拥挤,在不分明以后网络状态下贸然发送大量的数据,是很有可能雪上加霜的。2)慢启动TCP引入慢启动机制,先发大量的数据探探路,摸清以后的网络拥挤状态再决定依照多大的速度传输数据。此处引入一个概念——拥塞窗口,发送开始的时候,定义拥塞窗口大小为1。每次收到一个ACK应答拥塞窗口就加1,每次发送数据包的时候将拥塞窗口和接收端主机反馈的窗口大小做比拟,取较小的值作为理论发送的窗口。3)慢启动阀值像下面这样的拥塞窗口增长速度是指数级别的。“慢启动”只是指初始时慢,然而增长速度十分快。为了不增长得那么快,因而不能应用拥塞窗口单纯的加倍。此处引入一个叫做慢启动的阀值,当拥塞窗口超过这个阀值的时候,不再依照指数形式增长,而是依照线性形式增长。 当TCP开始启动的时候,慢启动阀值等于窗口最大值,在每次超时重发的时候,慢启动阀值会变成原来的一半,同时拥塞窗口置回1。大量的丢包仅仅是触发超时重传,大量的丢包就会认为是网络拥塞。当TCP通信开始后,网络吞吐量会逐步回升,随着网络产生拥挤,吞吐量会立即降落。拥塞管制。归根结底是TCP协定想尽可能快的把数据传输给对方,然而又要防止给网络造成太大的压力的折中计划。(TCP拥塞管制这样的过程就如同热恋的感觉) (6)提早应答如果接收端数据的主机立即返回ACK应答,这个时候返回的窗口可能性比拟小。假如接收端缓冲区为1M,一次收到了500k的数据,如果立即应答,返回的窗口就是500k。然而实际上可能解决端解决的速度很快,10ms之内就把500k数据从缓冲区生产掉。在这种状况下,接收端解决还远没有达到本人的极限,即便窗口再放大一些,也能解决过去。如果接收端略微等一会儿再应答,比方期待200ms再应答,那么这个时候返回的窗口大小就是1M。留神:窗口越大,网络吞吐量就越大,传输效率就越高,应在保障网络不拥塞的状况下尽量进步传输效率。那么,所有的包都能够提早应答么?必定不行,因为规定有数量限度,每隔N个包就应答一次;而且有工夫限度,超过最大延迟时间就应答一次,具体的数量和工夫依操作系统不同也有差别,个别N取2,超时工夫取200ms。 (7)捎带应答在提早应答的根底上,很多状况下客户端服务器在应用层也是“一发一收”的,意味着客户端给服务器说了“how are you”,服务器也会给客户端会一个“Fine,thank 有”,那么这个时候ACK就能够搭逆风车和服务器回应的“Fine,thank you”一起回给客户端。 更多详情:tcp vs udp

February 5, 2022 · 1 min · jiezi

关于linux:7个查看Linux登录用户的命令

7个查看Linux登录用户的命令w : 具体查问已登录以后计算机的用户 命令格局:w [-fhlsuV] [用户名称] 不加任何参数,显示以后用户who : 显示已登录以后计算机用户的简略信息logname : 显示以后用户的登录名称users : 用独自的一行显示出以后登录的用户last : 显示近期用户登录状况lastb : 列出登录零碎失败的用户信息lastlog : 查看用户上次登录的工夫w命令详情示例: 1. 不加任何参数,显示以后用户[root@localhost ~]# w21:15:21 up 2:15, 1 user, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 172.16.0.1 19:03 0.00s 0.00s 0.00s w 21:15:21 示意执行w命令的工夫up 2:15 示意零碎运行了多少工夫1 user 示意以后零碎登录1个用户load average: 0.00, 0.00, 0.00 示意零碎在过来1,5,10分钟内的负载水平,数值越小,零碎负载越轻USER:登录用户名TTY:登录后零碎调配的终端号FROM:近程主机名,从哪登录的LOGIN@:何时登录IDLE:用户闲暇工夫JCPU:和该终端连贯的所有过程占用工夫(包含正在运行的后台作业占用的工夫) PCPU:以后过程所占用工夫WHAT:以后正在运行过程的命令行参考:linux command: check logged in user in Linux

February 5, 2022 · 1 min · jiezi

关于linux:ssh-如何增加超时的解决方法

ssh连贯超时的解决办法设置ssh超时工夫的办法。 这个应该是在server端批改批改本人 root 目录下的.bash_profile文件,加上export TMOUT=1000000 (以秒为单位)而后运行: source .bash_profile在/etc/ssh/sshd_config中退出:ClientAliveInterval=60每一分钟,sshd都和ssh client打个招呼,检测它是否存在,不存时即断开连接。 留神:设置实现后,要退出ssh近程连贯,再次登录后才能够失效。因为要再读取一次./bash_profile。为了不便,将设置写成了如下脚本: echo export TMOUT=1000000 >> /root/.bash_profilecat /root/.bash_profilesource .bash_profilecp /etc/ssh/sshd_config /etc/ssh/sshd_config_bakecho ClientAliveInterval=60 >> /etc/ssh/sshd_configservice sshd restartcat /etc/ssh/sshd_configservice sshd restartexit总结: 在ClientAliveInterval(/etc/ssh/sshd_config)、环境变量TMOUT(在/etc/profile或.bash_profile中设置)以及putty的"Seconds between keepalives“这些办法中,经检测,只有TMOUT能够管制ssh连?在闲暇工夫超时,主动断开连接的工夫,数字单位为“秒”。在设置了TMOUT后(非0),另外两个变量则不起作用的。 更多信息:理解更多ssh_timeout_in_linux如何减少ssh timeout工夫 increase linux ssh connection timeout quick guidesetup ssh keys to login linux without password

February 4, 2022 · 1 min · jiezi

关于linux:remote-host-identification-has-changed

什么是known_hosts文件A通过ssh首次连贯到B,B会将公钥1(host key)传递给A,A将公钥1存入known_hosts文件中,当前A再连贯B时,B仍然会传递给A一个公钥2,OpenSSH会核查公钥,通过比照公钥1与公钥2 是否雷同来进行简略的验证,如果公钥不同,OpenSSH会收回正告, 防止你受到DNS Hijack之类的攻ji。。 关上known_hosts文件vi ~/.ssh/known_hosts 或 vi /root/.ssh/known_hostshost文件内容格局:ip 公钥 理解更多ssh known_host Host key verification failed三、A通过ssh登陆B时提醒 Host key verification failed理解更多how to fix Host key verification failed 起因:A的known_hosts文件中记录的B的公钥1 与 连贯时B传过来的公钥2不匹配 解决办法: 办法一:删除A的known_hosts文件中记录的B的公钥(手动进行,不适用于自动化部署情景)有两只办法删除 通过vi 找到这个对应的ip或者host的host key 而后删除通过ssh-keygen -r hostname 删除办法二:批改配置文件,在ssh登陆时不通过known_hosts文件进行验证(安全性有所升高),也是有两种办法: 编辑对应host的ssh配置文件vi ~/.ssh/config //编辑配置文件 增加以下两行代码: StrictHostKeyChecking no在ssh登录时利用 -i StrictHostKeyChecking=no 这样就不会查看host key。如何解决fix too many authentication failures如何解决remote host identification has changed

February 4, 2022 · 1 min · jiezi

关于linux:Linux之killall命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 Linux零碎中的killall命令用于杀死指定名字的过程(kill processes by name)。咱们能够应用kill命令杀死指定过程PID的过程,如果要找到咱们须要杀死的过程,咱们还须要在之前应用ps等命令再配合grep来查找过程,而killall把这两个过程合二为一,是一个很好用的命令。 Centos 装置killall命令> yum install -y psmiscUbuntu装置killall命令> apt-get install -y psmisc命令格局killall [参数] [过程名] 命令性能用来完结同名的的所有过程命令参数-Z 只杀死领有scontext 的过程-e 要求匹配过程名称-I 疏忽小写-g 杀死过程组而不是过程-i 交互模式,杀死过程前先询问用户-l 列出所有的已知信号名称-q 不输入正告信息-s 发送指定的信号-v 报告信号是否胜利发送-w 期待过程死亡--help 显示帮忙信息--version 显示版本显示杀死所有同名过程> killall java向指定过程发送信号后盾运行程序:vi &杀死 vi过程:killall -TERM vi或者killall -KILL vi> vi &[1] 18729> killall -TERM vi[1]+ Stopped vi> ps -ef | grep viroot 18729 9713 0 22:26 pts/1 00:00:00 viroot 18799 9713 0 22:26 pts/1 00:00:00 grep --color=auto vi> killall -KILL vi[1]+ Killed vi> ps -ef | grep viroot 18827 9713 0 22:26 pts/1 00:00:00 grep --color=auto viTERM信号将终止所有不能捕捉该信号的过程KILL信号将强制杀死过程把所有的登录后的shell给杀掉> w> killall -9 bash运行命令:killall -9 bash 后,所有bash都会被卡掉了,所以以后所有连贯失落了。须要从新连贯并登录。通过含糊匹配杀死所有过程服务器运行了rumenz1,rumenz2,rumenz3过程> killall -9 rumenz*强制杀死rumenz1,rumenz2,rumenz3过程终止某个用户所运行的过程> killall -u deploy咱们只想杀死运行工夫超过 6h 的过程那么能够应用-o选项,其中o代表older> killall -o 6h杀死进行工夫小于 5h 的过程> killall -y 5h-y 选项,其中y代表younger疏忽大小写完结过程killall 命令是大小写敏感的,所以咱们如果写错大小写,将无奈正确杀死过程> killall -I rumenz敞开命令执行回显默认状况下,killall 会通知你命令执行状况,然而,咱们如果不关怀它的执行后果,只想让它静默执行,只需加上-q选项即可,其中q示意quite。列出所有反对的信号> killall -lHUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERMSTKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYSUNUSED交互式操作如果你在杀死多个过程时不太释怀,放心把不该杀死的过程给杀死了,那么你能够应用-i选项> killall -i rumenz期待直到某个过程被终止当一个信号被发送至某个过程,如果你想确定该过程曾经被杀死了才返回执行后果,能够应用-w选项,其中w代表wait> killall -w rumenz原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

February 1, 2022 · 1 min · jiezi

关于linux:pem-pfx-是什么文件

Der 、Cer、 Pfx、 Pem它们都是扩展名(文件名的后缀,代表格局).DER:用二进制DER编码的证书;.PEM:用ASCLL(BASE64)编码的证书; .CER:寄存公钥,没有私钥; .PFX:寄存公钥和私钥(pem 后缀的证书都是base64编码;der 后缀的证书都是二进制格局;crt .cer 后缀的文件都是证书文件(编码方式不肯定,有可能是.pem,也有可能是.der);.pfx 次要用于windows平台,浏览器能够应用,也是蕴含证书和私钥,获取私钥须要明码才能够) X509文件扩展名(x509 这种证书只有公钥,不蕴含私钥。) 编码(也用作扩大) DER = DER扩大用于二进制DER编码证书。这些文件也可能带有CER或CRT扩展名。正确的英语用法是“我有DER编码证书”而不是“我有DER证书”。 PEM = PEM扩展名用于不同类型的X.509v3文件,这些文件蕴含前缀为“-BEGIN ...”行的ASCII(Base64)装甲数据。 组合 在某些状况下,将多个X.509根底构造组合成单个文件是无利的。一个常见的例子是将私钥和公钥组合到同一个证书中。 组合证书密钥和链的最简略办法是将每个密钥转换为PEM编码证书,而后将每个文件的内容简略复制到新文件中。这实用于组合文件以在Apache应用程序中应用。 萃取 有些证书将以合并模式呈现。其中一个文件能够蕴含以下任何一个:证书,私钥,公钥,签名证书,证书颁发机构(CA)和/或受权链。 PEM 格局PEM格局通常用于数字证书认证机构(Certificate Authorities,CA),扩大名为.pem, .crt, .cer, and .key。内容为Base64编码的ASCII码文件,有相似"-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----"的头尾标记。服务器认证证书,中级认证证书和私钥都能够贮存为PEM格局(认证证书其实就是公钥)。Apache和相似的服务器应用PEM格局证书。 ssl certificate pem file DER 格局DER格局与PEM不同之处在于其应用二进制而不是Base64编码的ASCII。扩大名为.der,但也常常应用.cer用作扩展名,所有类型的认证证书和私钥都能够存储为DER格局。Java使其典型应用平台。 pfx file with examples 能够应用OpenSSL命令行工具在不同证书格局之间的转换converting cer crt der pem pfx certificate converting ssl certificate from crt to pem PEM to DER openssl x509 -outform der -in certificate.pem -out certificate.der ...

February 1, 2022 · 1 min · jiezi

关于linux:linux常用管理硬盘命令

#依照目录大小排序兵士最后面15个目录或者文件du -xB M --max-depth=2 /var | sort -rn | head -n 15#列出以后所有子目录的文件大小du -h --max-depth=1#列出以后文件或者目录最大的10个du -s * | sort -n | tail#依照目录大小从大到小排序du -b --max-depth 1 | sort -nr | perl -pe 's{([0-9]+)}{sprintf "%.1f%s", $1>=2**30? ($1/2**30, "G"): $1>=2**20? ($1/2**20, "M"): $1>=2**10? ($1/2**10, "K"): ($1, "")}e'find largest files and directories in linux #列出path这个目录的文件树du -h /path | sort -h#每隔60s监控对应目录的文件大小变动watch -n60 du /var/log/messages#递归删除当前目录下所有子目录中的.svn目录find . -type d -name '.svn' -print0 | xargs -0 rm -rdflinux find ...

February 1, 2022 · 1 min · jiezi

关于linux:ubuntu-服务器安装图形

如何在Ubuntu server下面装置GUI 分五个步骤:GUI Installation on Ubuntu Server 20.04 Update the apt package index and install tasksel.$ sudo apt update$ sudo apt install taskselList the GUI we have installed and we can install:$ sudo tasksel --list-tasksMain available Graphical User Interfaces (GUI) installations using tasksel's tasksTask Descriptionkubuntu-desktop Kubuntu desktop ( KDE Desktop )lubuntu-desktop Lubuntu Desktop ( LXQt desktop )ubuntu-budgie-desktop Ubuntu Budgie desktopubuntu-desktop Ubuntu desktop ( default GNOME )ubuntu-desktop-minimal Ubuntu minimal desktop ( default GNOME )ubuntu-mate-desktop Ubuntu MATE desktopubuntustudio-desktop Ubuntu Studio desktop ( Xfce-based desktop )ubuntustudio-desktop-core Ubuntu Studio minimal DE installation ( Xfce-based desktop )xubuntu-desktop Xubuntu desktop ( Xfce desktop ) ...

January 31, 2022 · 1 min · jiezi

关于linux:python-for-循环

Python for 循环For … in 语句是另一种循环语句,其特点是会在一系列对象上进行迭代(Iterates),即它会遍历序列中的每一个我的项目 留神: 1、else 局部是可选的。当循环中蕴含它时,它循环中蕴含它时,它总会在 for 循环完结后开始执行,除非程序遇到了 break 语句。 2、for … in 能在任何队列中工作。有的是通过内置 range 函数生成一串数字列表,也能够是蕴含任何类型对象的队列。 3 python 3 for loop examples Eg.数字列表 for i in range(1,5): print(i) else: print("for 循环完结") Eg.字符串列表 lessons = ["语文","数学","英语"] for lesson in lessons: print("------------------"+'\n'+lesson) else: print("------------------") print("for 循环完结") range()函数 个别模式:range(start,stop[,step]) start :开始数值,数值为0,也就是如果不写这项,则认为start = 0 。 stop :完结的数值,这是必须要写 。 step :变动的步长,默认是1 。 Eg. range 类型a = list(range(10,0,-1)) print(a) 并行迭代迭代,在 Python 中的体现就是用 for 循环,从对象中取得肯定数量的元素。 将 for 循环用于列表、字符串、字典的键值对,这就是迭代。 ...

January 31, 2022 · 1 min · jiezi

关于linux:linux如何查看ip地址

What is Ip address?An IP address is the identifier that enables our device to send or receive data packets across the internet. It holds information related to our location and therefore making devices available for two-way communication. Most internet service providers still use IPv4. It’s based on 32 binary bits, consists of four numbers from 0 to 255, and is separated by dots. For example, 103.86.98.1. Check Ip address with ip addr commandip addr – Show information for all addressesip addr show dev em1 – Display information only for device em1 ...

January 31, 2022 · 1 min · jiezi

关于linux:Linux之kill命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 Linux中的kill命令用来终止指定的过程(terminate a process)的运行,是Linux下过程治理的常用命令。通常,终止一个前台过程能够应用Ctrl+C键,然而,对于一个后盾过程就须用kill命令来终止,咱们就须要先应用ps/pidof/pstree/top等工具获取过程PID,而后应用kill命令来杀掉该过程。kill命令是通过向过程发送指定的信号来完结相应过程的。在默认状况下,采纳编号为15的TERM信号。TERM信号将终止所有不能捕捉该信号的过程。对于那些能够捕捉该信号的过程就要用编号为9的kill信号,强行“杀掉”该过程。 命令格局kill[参数][过程号 命令性能发送指定的信号到相应过程。不指定型号将发送SIGTERM(15)终止指定过程。如果任无奈终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制完结过程,应用ps命令或者jobs 命令能够查看过程号。root用户将影响用户的过程,非root用户只能影响本人的过程。命令参数-l 信号,若果不加信号的编号参数,则应用“-l”参数会列出全副的信号名称-a 当解决以后过程时,不限度命令名和过程号的对应关系-p 指定kill 命令只打印相干过程的过程号,而不发送任何信号-s 指定发送信号-u 指定用户命令阐明kill命令能够带信号号码选项,也能够不带。如果没有信号号码,kill命令就会收回终止信号(15),这个信号能够被过程捕捉,使得过程在退出之前能够清理并开释资源。也能够用kill向过程发送特定的信号。例如:kill -2 123它的成果等同于在前台运行PID为123的过程时按下Ctrl+C键。然而,普通用户只能应用不带signal参数的kill命令或最多应用-9信号。kill能够带有过程ID号作为参数。当用kill向这些过程发送信号时,必须是这些过程的客人。如果试图撤销一个没有权限撤销的过程或撤销一个不存在的过程,就会失去一个错误信息。能够向多个过程发信号或终止它们。当kill胜利地发送了信号后,shell会在屏幕上显示出过程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示进去。应留神,信号使过程强行终止,这常会带来一些副作用,如数据失落或者终端无奈复原到失常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为过程不能首先捕捉它。要撤销所有的后台作业,能够输出kill 0。因为有些在后盾运行的命令会启动多个过程,跟踪并找到所有要杀掉的过程的PID是件很麻烦的事。这时,应用kill 0来终止所有由以后shell启动的过程,是个无效的办法。列出所有信号名称> kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+338) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+1348) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-758) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX只有第9种信号(SIGKILL)才能够无条件终止过程,其余信号过程都有权力疏忽。 上面是罕用的信号:HUP 1 终端断线INT 2 中断(同 Ctrl + C)QUIT 3 退出(同 Ctrl + \)TERM 15 终止KILL 9 强制终止CONT 18 持续(与STOP相同, fg/bg命令)STOP 19 暂停(同 Ctrl + Z)失去指定信号的数值> kill -l KILL9先用ps查找过程,而后用kill杀掉> ps -ef | grep javaroot 16934 1 0 Feb25 ? 00:18:13 java -jar demo.jar//彻底杀死该过程> kill -9 16934强制杀死所有和java相干的所有过程> kill -9 $(ps -ef | grep java) 强制杀死deploy用户起的过程> kill -u deployinit过程是不可杀的> kill -9 1init是Linux零碎操作中不可短少的程序之一。所谓的init过程,它是一个由内核启动的用户级过程。内核自行启动(曾经被载入内存,开始运行,并已初始化所有的设施驱动程序和数据结构等)之后,就通过启动一个用户级程序init的形式,实现疏导过程。所以,init始终是第一个过程(其过程编号始终为1)。 其它所有过程都是init过程的子孙。init过程是不可杀的!原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

January 30, 2022 · 1 min · jiezi

关于linux:ubuntu服务器安装图形界面

如何在Ubuntu server下面装置GUI 分五个步骤:GUI Installation on Ubuntu Server 20.04 Update the apt package index and install tasksel.$ sudo apt update$ sudo apt install taskselList the GUI we have installed and we can install:$ sudo tasksel --list-tasksMain available Graphical User Interfaces (GUI) installations using tasksel's tasksTask Descriptionkubuntu-desktop Kubuntu desktop ( KDE Desktop )lubuntu-desktop Lubuntu Desktop ( LXQt desktop )ubuntu-budgie-desktop Ubuntu Budgie desktopubuntu-desktop Ubuntu desktop ( default GNOME )ubuntu-desktop-minimal Ubuntu minimal desktop ( default GNOME )ubuntu-mate-desktop Ubuntu MATE desktopubuntustudio-desktop Ubuntu Studio desktop ( Xfce-based desktop )ubuntustudio-desktop-core Ubuntu Studio minimal DE installation ( Xfce-based desktop )xubuntu-desktop Xubuntu desktop ( Xfce desktop ) ...

January 28, 2022 · 1 min · jiezi

关于linux:多种方法查看Linux-ip地址

在terminal输出命令 ifconfig -a或 ifconfig或 ip addr或 ip address或 ip addr show或 ip address show或者 ip route或者ip route show how to check ip address in Linux

January 28, 2022 · 1 min · jiezi

关于linux:关于-Linux-系统的-Welcome-Message

机制ssh连贯的时候触发/etc/pam.d/login, 运行其中的**motd**设置, 将/etc/update-motd.d/目录下的脚本全副运行一遍 pam.d(Pluggable Authentication Modules) 可动静加载验证模块. Linux下PAM模块学习总结 简略说就是在/etc/pam.d/ 门路下能够搁置一个验证模块, 须要的服务就能够调用, 验证模块的文件名就是service的名称. ssh login的时候调用了 /etc/pam.d/login, 其中上面的局部调用了Motd. # Prints the message of the day upon successful login.# (Replaces the `MOTD_FILE' option in login.defs)# This includes a dynamically generated part from /run/motd.dynamic# and a static (admin-editable) part from /etc/motd.session optional pam_motd.so motd=/run/motd.dynamicsession optional pam_motd.so noupdateMotd (message of today)今日音讯板块, 提供欢送页面的各种信息. 门路为 /etc/update-motd.d/, login时门路下的每一个脚本都被运行一遍. /etc/update-motd.d# ls00-header 50-landscape-sysinfo 85-fwupd 90-updates-available 91-release-upgrade 95-hwe-eol 98-fsck-at-reboot10-help-text 50-motd-news 88-esm-announce 91-contract-ua-esm-status 92-unattended-upgrades 97-overlayroot 98-reboot-required批改, 或增加脚本就可批改Welcome Message ...

January 28, 2022 · 1 min · jiezi

关于linux:手把手教你在优麒麟上搭建-RISCV-交叉编译环境

因为 RISC-V 设施价格昂贵、不易洽购等诸多起因,许多小伙伴尽管很感兴趣,但仍无奈参加 RISC-V 开发工作,明天就教大家如何在优麒麟上搭建 RISC-V 穿插编译环境,快学起来吧! 穿插编译(Cross Compile) 指编译代码的平台,和执行编译后源代码的平台是两个不同的平台,比方在 x86/Linux 平台下应用穿插编译工具链编译 ARM/Linux 平台下的可执行文件。明天咱们要讲的就是在优麒麟(x86/Linux)上编译 RISC-V 架构可执行文件的办法。 咱们为什么须要穿插编译呢,次要有以下思考: 01.性能与速度 穿插编译的指标平台往往 CPU 性能较差,内存和磁盘性能也可能不能满足编译的要求,这时候就要依赖性能资源更好的编译主机进行编译。 02.不足编译条件 就算指标平台性能足够且资源短缺,能够本地编译,但第一个在指标平台运行的本地编译器总是须要咱们通过穿插编译取得。 03.软件编译环境 一个残缺的 Linux 发行版须要由数百个包形成,而咱们往往只关注须要在指标主机上安装的包,所以咱们能够在穿插编译的主机上配置这些环境,而不是把工夫节约在配置指标主机的编译依赖上。 本文蕴含以下两局部: 1、如何搭建一个 RISC-V 的穿插编译环境。 2、穿插编译 Linux 内核。 一、搭建 RISC-V 穿插编译环境。 通常来讲,在搭建穿插编译环境时须要思考不同体系架构的不同个性,包含 CPU 架构是 64 位还是 32 位零碎、字节序是大端( big-endian )或小端( little-endian )、内存字节对齐形式等,不过好在 RISC-V 曾经有欠缺的工具链,蕴含穿插编译所需的 binutils 、 gcc 和 glibc 3 个局部。 ● 首先须要 RISC-V 穿插编译工具链,如果网络较慢,能够疏忽其中的 qemu 子项目 git clone --recursive https://github.com/riscv/risc...这是 RISC-V 的 C/C++ 穿插编译工具链,其反对两种构建模式: ...

January 28, 2022 · 2 min · jiezi

关于linux:Linux之ps命令

Linux中的ps命令是Process Status的缩写。ps命令用来列出零碎中以后运行的那些过程。ps命令列出的是以后那些过程的快照,就是执行ps命令的那个时刻的那些过程,如果想要动静的显示过程信息,就能够应用top命令。 要对过程进行监测和管制,首先必须要理解以后过程的状况,也就是须要查看以后过程,而 ps 命令就是最根本同时也是十分弱小的过程查看命令。应用该命令能够确定有哪些过程正在运行和运行的状态、过程是否完结、过程有没有僵死、哪些过程占用了过多的资源等等。总之大部分信息都是能够通过执行该命令失去的。 ps 为咱们提供了过程的一次性的查看,它所提供的查看后果并不动静间断的;如果想对过程工夫监控,应该用 top 工具。 kill 命令用于杀死过程。 Linux中过程有5种状态运行(正在运行或在运行队列中期待)中断(休眠中, 碰壁, 在期待某个条件的造成或承受到信号)不可中断(收到信号不唤醒和不可运行, 过程必须期待直到有中断产生)僵死(过程已终止, 但过程描述符存在, 直到父过程调用wait4()零碎调用后开释)进行(过程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后进行运行运行)ps工具标识过程的5种状态码D 不可中断 uninterruptible sleep (usually IO)R 运行 runnable (on run queue)S 中断 sleepingT 进行 traced or stoppedZ 僵死 a defunct (”zombie”) process命令语法ps (参数) 命令参数-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。a:显示现行终端机下的所有程序,包含其余用户的程序。-A:显示所有程序。-c:显示CLS和PRI栏位。c:列出程序时,显示每个程序真正的指令名称,而不蕴含门路,选项或常驻服务的标示。-C<指令名称>:指定执行指令的名称,并列出该指令的程序的情况。-d:显示所有程序,但不包含阶段作业领导者的程序。-e:此选项的成果和指定"A"选项雷同。e:列出程序时,显示每个程序所应用的环境变量。-f:显示UID,PPIP,C与STIME栏位。f:用ASCII字符显示树状构造,表白程序间的互相关系。-g<群组名称>:此选项的成果和指定"-G"选项雷同,当亦能应用阶段作业领导者的名称来指定。g:显示现行终端机下的所有程序,包含群组领导者的程序。-G<群组识别码>:列出属于该群组的程序的情况,也可应用群组名称来指定。h:不显示题目列。-H:显示树状构造,示意程序间的互相关系。-j或j:采纳工作管制的格局显示程序情况。-l或l:采纳具体的格局来显示程序情况。L:列出栏位的相干信息。-m或m:显示所有的执行绪。n:以数字来示意USER和WCHAN栏位。-N:显示所有的程序,除了执行ps指令终端机下的程序之外。-p<程序识别码>:指定程序识别码,并列出该程序的情况。p<程序识别码>:此选项的成果和指定"-p"选项雷同,只在列表格局方面稍有差别。r:只列出现行终端机正在执行中的程序。-s<阶段作业>:指定阶段作业的程序识别码,并列出附属该阶段作业的程序的情况。s:采纳程序信号的格局显示程序情况。S:列出程序时,包含已中断的子程序材料。-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的情况。t<终端机编号>:此选项的成果和指定"-t"选项雷同,只在列表格局方面稍有差别。-T:显示现行终端机下的所有程序。-u<用户识别码>:此选项的成果和指定"-U"选项雷同。u:以用户为主的格局来显示程序情况。-U<用户识别码>:列出属于该用户的程序的情况,也可应用用户名称来指定。U<用户名称>:列出属于该用户的程序的情况。v:采纳虚拟内存的格局显示程序情况。-V或V:显示版本信息。-w或w:采纳宽敞的格局来显示程序情况。 x:显示所有程序,不以终端机来辨别。X:采纳新式的Linux i386登陆格局显示程序情况。-y:配合选项"-l"应用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。-<程序识别码>:此选项的成果和指定"p"选项雷同。--cols<每列字符数>:设置每列的最大字符数。--columns<每列字符数>:此选项的成果和指定"--cols"选项雷同。--cumulative:此选项的成果和指定"S"选项雷同。--deselect:此选项的成果和指定"-N"选项雷同。--forest:此选项的成果和指定"f"选项雷同。--headers:反复显示题目列。--help:在线帮忙。--info:显示排错信息。--lines<显示列数>:设置显示画面的列数。--no-headers:此选项的成果和指定"h"选项雷同,只在列表格局方面稍有差别。--group<群组名称>:此选项的成果和指定"-G"选项雷同。--Group<群组识别码>:此选项的成果和指定"-G"选项雷同。--pid<程序识别码>:此选项的成果和指定"-p"选项雷同。--rows<显示列数>:此选项的成果和指定"--lines"选项雷同。--sid<阶段作业>:此选项的成果和指定"-s"选项雷同。--tty<终端机编号>:此选项的成果和指定"-t"选项雷同。--user<用户名称>:此选项的成果和指定"-U"选项雷同。--User<用户识别码>:此选项的成果和指定"-U"选项雷同。--version:此选项的成果和指定"-V"选项雷同。--widty<每列字符数>:此选项的成果和指定"-cols"选项雷同。显示所有过程信息> ps -A PID TTY TIME CMD 1 ? 00:11:10 systemd 2 ? 00:00:04 kthreadd 4 ? 00:00:00 kworker/0:0H 6 ? 00:00:07 ksoftirqd/0 7 ? 00:00:02 migration/0 8 ? 00:00:00 rcu_bh 9 ? 00:43:24 rcu_sched 10 ? 00:00:00 lru-add-drain 11 ? 00:00:12 watchdog/0 12 ? 00:00:10 watchdog/1 13 ? 00:00:11 migration/1 14 ? 00:06:22 ksoftirqd/1 16 ? 00:00:00 kworker/1:0H 17 ? 00:00:11 watchdog/2 ...显示指定用户启动的线程> ps -u deploy PID TTY TIME CMD 7698 ? 00:29:50 java13783 ? 00:16:42 java30027 ? 00:03:20 java显示所有过程信息和命令行> ps -ef UID PID PPID C STIME TTY TIME CMDroot 1 0 0 Jan08 ? 00:11:10 /usr/lib/systemd/systemd --switched-root --system --deserialize 22root 2 0 0 Jan08 ? 00:00:04 [kthreadd]root 4 2 0 Jan08 ? 00:00:00 [kworker/0:0H]root 6 2 0 Jan08 ? 00:00:07 [ksoftirqd/0]root 7 2 0 Jan08 ? 00:00:02 [migration/0]ps与grep罕用组合用法,查找特定过程> ps -ef | grep javaps -ef | grep sshroot 1394 1 0 Jan08 ? 00:04:23 /usr/sbin/sshd -Droot 30899 1394 0 22:44 ? 00:00:00 sshd: root@pts/2root 30922 30899 0 22:44 ? 00:00:00 /usr/libexec/openssh/sftp-serverroot 31625 1394 0 22:49 ? 00:00:00 sshd: root [priv]sshd 31627 31625 0 22:49 ? 00:00:00 sshd: root [net]root 31804 30905 0 22:50 pts/2 00:00:00 grep --color=auto ssh将目前属于您本人这次登入的PID与相干信息列示进去> ps -lF S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD0 R 0 1275 30905 0 80 0 - 38304 - pts/2 00:00:00 ps4 S 0 30905 30899 0 80 0 - 28895 do_wai pts/2 00:00:00 bashF 代表这个程序的旗标 (flag), 4 代表使用者为 super userS 代表这个程序的状态 (STAT),对于各 STAT 的意义将在内文介绍UID 程序被该 UID 所领有PID 就是这个程序的 ID !PPID 则是其下级父程序的IDC CPU 应用的资源百分比PRI 这个是 Priority (优先执行序) 的缩写,具体前面介绍NI 这个是 Nice 值,在下一大节咱们会继续介绍ADDR 这个是 kernel function,指出该程序在内存的那个局部。如果是个 running的程序,个别就是 "-"SZ 应用掉的内存大小WCHAN 目前这个程序是否正在运作当中,若为 - 示意正在运作TTY 登入者的终端机地位TIME 应用掉的 CPU 工夫。CMD 所下达的指令为何列出相似程序树的程序显示> ps -axjf 1 1394 1394 1394 ? -1 Ss 0 4:23 /usr/sbin/sshd -D 1394 30899 30899 30899 ? -1 Ss 0 0:00 \_ sshd: root@pts/230905 1873 1872 30905 pts/2 1872 S+ 0 0:00 | \_ grep --color=auto ssh30899 30922 30922 30922 ? -1 Ss 0 0:00 \_ /usr/libexec/openssh/sftp-server分页查看过程信息> ps aux | more每一列的解释> ps aux | moreUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDUSER 过程的用户;PID 过程的ID;%CPU 过程占用的CPU百分比;%MEM 占用内存的百分比;VSZ 该过程应用的虚拟内存量(KB);RSS 该过程占用的固定内存量(KB);TTY 该过程在哪个终端上运行(登陆者的终端地位),若与终端无关,则显示(?)。若为pts/0等,则示意由网络连接主机过程;START 该过程被触发启动工夫;TIME 该过程理论应用CPU运行的工夫;COMMAND 命令的名称和参数;STAT状态位常见的状态字符D 无奈中断的休眠状态(通常 IO 的过程);R 正在运行可中在队列中可过行的;S 处于休眠状态;T 进行或被追踪;W 进入内存替换 (从内核2.6开始有效);X 死掉的过程 (根本很少见);Z 僵尸过程;< 优先级高的过程;N 优先级较低的过程;L 有些页被锁进内存;s 过程的领导者(在它之下有子过程);l 多过程的(应用 CLONE_THREAD, 相似 NPTL pthreads);位于后盾的过程组;把所有的过程信息输出到rumenz.txt文件> ps aux > rumenz.txt输入指定的字段> ps -o pid,ppid,pgrp,session,tpgid,comm PID PPID PGRP SESS TPGID COMMAND 2292 30905 2292 30905 2292 ps30905 30899 30905 30905 2292 bashps aux和ps –aux的区别请留神ps -aux不同于ps aux。POSIX和UNIX的规范要求ps -aux打印用户名为x的用户的所有过程,以及打印所有将由-a选项抉择的过程。如果用户名为x不存在,ps的将会解释为ps aux,而且会打印一个正告。这种行为是为了帮忙转换旧脚本和习惯。它是软弱的,行将更改,因而不应依赖。ps aux 和ps -ef两者的输入后果差异不大,但展现格调不同。aux是BSD格调,-ef是System V格调。这是主要的区别,一个影响、应用的区别是aux会截断command列,而-ef不会。当联合grep时这种区别会影响到后果。原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

January 28, 2022 · 3 min · jiezi

关于linux:N个技巧编写更高效-Dockerfile|云效工程师指北

简介:云原生时代下软件的构建和部署离不开容器技术。提到容器,简直大家下意识都会联想到 Docker 。而 Docker 中有两个十分重要的概念,一个是Image(镜像),一个是Container(容器)。前者是一个动态视图,打包了利用的目录构造、运行环境等;后者是一个动静视图(过程),展现的是程序的运行状态(cpu、memory、storage)等信息。接下来的文章次要分享的是如何编写能使 Dockerfile 构建过程更疾速、构建镜像更小的技巧。 大家好,我是陈泽锋,我在云效负责Flow流水线编排、任务调度引擎相干的工作。在云效的产品体系下,咱们服务了各种研发规模、技术深度的的企业用户,收到了十分多的用户反馈。对于应用 Flow 进行云上构建的用户来说,构建速度是大家广泛关怀的要害因素,在深入分析用户案例的过程中,咱们发现了许多通用问题,只须要批改优化本人的我的项目或工程配置,就能够大大晋升构建的性能,从而进一步减速 CICD 的效率。明天咱们会以容器镜像构建作为切入点,总结一些在理论工程中,十分实用的优化技巧。 云原生时代下软件的构建和部署离不开容器技术。提到容器,简直大家下意识都会联想到 Docker 。而 Docker 中有两个十分重要的概念,一个是Image(镜像),一个是Container(容器)。前者是一个动态视图,打包了利用的目录构造、运行环境等;后者是一个动静视图(过程),展现的是程序的运行状态(cpu、memory、storage)等信息。接下来的文章次要分享的是如何编写能使 Dockerfile 构建过程更疾速、构建镜像更小的技巧。 镜像定义首先咱们先来理解一下 Docker 镜像,它由多个只读层重叠到一起,每一层是上一层的增量批改。基于镜像创立新容器时,将在根底层的顶部增加一个新的可写层。该层通常称为“容器层”。下图展现了一个基于 docker.io/centos 根底镜像构建的利用镜像,创立出容器时的视图。 从图中咱们能够看到镜像构建、容器启动的过程。 首先是拉取根底镜像 docker.io/centos;基于 docker.io/centos 来启动一个容器,运行指令 yum update 后进行 docker commit 提交出一个新的只读层 v1(能够了解为生成了一个新的长期镜像 A,只不过用户并不会间接援用到它);基于长期镜像A启动新的容器,运行装置和配置 http server等软件后,提交出一个新的只读层 v2,也生成了这里最终被开发者援用的镜像版本 B;基于镜像版本B运行的容器,会再追加一层读写层(对容器的文件创建、批改、删除等操作,都在这一层失效);镜像起源镜像次要是 Docker 通过读取、运行 Dockerfile 的指令来生成。举官网上的一个 Dockerfile 例子: FROM ubuntu:18.04COPY . /appRUN make /appCMD python /app/app.py它的外围逻辑是定义援用的根底镜像 base image,执行如 COPY 指令从上下文 context 里复制文件到容器中,运行 RUN 执行用户自定义构建脚本,最初定义容器启动的 CMD 或 ENTRYPOINT。构建更高效的镜像也要围绕上述波及到的概念进行优化。 Dockerfile 优化技巧应用国内的根底镜像Flow 作为云上构建产品,每次构建都会给用户提供全新的构建环境,以防止环境污染导致带来过高运维老本。正因为如此,Flow 每次构建都会从新去下载 Dockerfile 中指定的根底镜像。 ...

January 27, 2022 · 4 min · jiezi

关于linux:OpenCloudOS-首个社区版本正式发布稳定的企业级服务器-Linux-发行版

1 月 26 日,开源操作系统社区 OpenCloudOS 发表:首个正式版本OpenCloudOS 8.5 重磅公布。 作为牢靠的企业级服务器 Linux 发行版,全新的 OpenCloudOS 8.5 版本基于 Linux 内核自主研发设计,其稳定性、安全性、兼容性和性能等外围能力均已失去长时间充沛验证。用户可将 OpenCloudOS 8.5 间接部署利用到生产零碎,升高用户的零碎经营老本。 2021 年底,业界支流的操作系统软件 CentOS8 曾经进行保护,这使得大量用户陷于平安危险中。而 OpenCloudOS 8.5 的根底库和用户态组件齐全与 CentOS8 兼容,并通过内核层面的优化和加强,给用户提供相比于 CentOS8 更优的解决方案。 据理解,目前 OpenCloudOS 8.5 曾经在社交、游戏、金融领取、AI、平安、大数据等实在业务场景中稳固运行超过 2 年,经验了千万级节点的长时间验证,可用性高达 99.999%。相比 CentOS7 和其余开源社区版本,OpenCloudOS 8.5 故障率低 70% 以上,且在典型业务场景中性能晋升超 50%。 以后 OpenCloudOS 8.5 版本采纳主动分区、格式化并装置默认软件包的自动化繁难装置形式,默认不装置图形环境,相比传统装置形式操作更简略、过程更快。用户也可按需手工装置,能满足绝大部分服务器场景的通用需要。 内核方面,OpenCloudOS 移植了社区最新要害个性,并联合不同的业务场景进行了性能和性能优化,典型个性包含:容器资源视图隔离(cgroupfs)、云原生SLI、Monitor Buffer、ARM64 热补丁、Page Cache Limit 等。整体上OpenCloudOS 的内核能在保障企业级稳定性的同时,享有社区的各种新技术和自研优化。 用户态组件方面,OpenCloudOS 预计将于 2023 年初公布 V9 第一个版本。V9 版本将齐全从 Upstream 社区构建和保护所有的软件包,不依赖其余厂商和上游社区,与独立演进的内核一起形成残缺的L1社区。而后由社区头部厂商依据L1社区构建商业版本(即 L2 版本),并各自在本人的利用场景中通过大规模利用验证后,最终输入稳固的企业级稳固 OpenCloudOS 社区版本(即 L3 版本,OpenCloudOS V9)。在保障开源 OS 软件牢靠供给的同时,基于头部厂商的海量利用场景验证,保障版本的稳定性,满足企业级生产需要。 ...

January 26, 2022 · 1 min · jiezi

关于linux:冬季实战营动手实战上云必备环境准备动手实操快速搭建LAMP环境-领鼠标-云小宝-背包-无影

云起实验室 夏季训练营(1.17-3.8)可补卡!!!五期夏季实战,从入门到进阶,以最佳实际帮忙开发者,疾速云上实际,云上学习。体验有礼,点击返回:https://developer.aliyun.com/adc/series/wintercamp夏季实战营第一期:从零到一上手玩转云服务器单期工作处分:实战营技能证书+定制鼠标三期工作处分:全网首发冬奥限量版云小宝五期工作处分:夏季实战营奖牌+定制书包+无影试用 体验简介本场景将提供一台配置了CentOS 7.7的ECS实例(云服务器)。通过本教程的操作,您能够基于ECS实例疾速搭建一套LAMP环境。 背景常识本场景次要波及以下云产品和服务: 1、云服务器ECS 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳固牢靠、弹性扩大的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您洽购IT硬件的后期筹备,让您像应用水、电、天然气等公共资源一样便捷、高效地应用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS继续提供创新型服务器,解决多种业务需要,助力您的业务倒退。 2、LinuxLinux是一套收费应用和自在流传的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、反对多线程和多CPU的操作系统。 Linux能运行次要的 UNIX 工具软件、应用程序和网络协议。它反对 32 位和 64 位硬件。 Linux 继承了 Unix 以网络为外围的设计思维,是一个性能稳固的多用户网络操作系统。 3、Apache Apache HTTP Server(简称Apache),是Apache软件基金会的一个凋谢源代码的网页服务器,能够在大多数电脑操作系统中运行,因为其具备的跨平台性和安全性,被宽泛应用,是最风行的Web服务器端软件之一。 4、MySQL MySQL 是最风行的关系型数据库管理系统,在 WEB 利用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 5、PHP PHP(PHP:Hypertext Preprocessor递归缩写)中文名字是:“超文本预处理器”,是一种宽泛应用的通用开源脚本语言,适宜于Web网站开发,它能够嵌入HTML中。编程范型是面向对象、命令式编程的。 装置Apache服务Apache是世界应用排名第一的Web服务器软件。它能够运行在简直所有宽泛应用的计算机平台上,因为其跨平台和安全性被宽泛应用,是最风行的Web服务器端软件之一。 1.在页面右侧,切换至Web Terminal。 2.执行如下命令,装置Apache服务及其扩大包。 yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql返回相似如下图后果则示意装置胜利。 执行如下命令,启动Apache服务。systemctl start httpd.service4、 在本地电脑的浏览器的址栏中,输出ECS公网登录地址,并按Enter键。 若返回页面如下图所示,阐明Apache服务启动胜利。 装置并配置MySQLMySQL是最风行的关系型数据库管理系统,在WEB利用方面MySQL是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 1.执行以下命令,下载并装置MySQL官网的Yum Repository。 rpm -e mariadb-libs --nodepsyum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-common-5.7.35-1.el7.x86_64.rpmyum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-libs-5.7.35-1.el7.x86_64.rpmyum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-libs-compat-5.7.35-1.el7.x86_64.rpmyum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-client-5.7.35-1.el7.x86_64.rpmyum install -y https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-community-server-5.7.35-1.el7.x86_64.rpm2.运行以下命令查看MySQL版本号。 ...

January 26, 2022 · 1 min · jiezi

关于linux:Linux之wc命令

Linux零碎中的wc(Word Count)命令的性能为统计指定文件中的字节数、字数、行数,并将统计结果显示输入。命令格局wc [选项]文件... 命令性能统计指定文件中的字节数、字数、行数,并将统计结果显示输入。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从规范输出读取。wc同时也给出所指定文件的总统计数。命令参数-c 统计字节数。-l 统计行数。-m 统计字符数。这个标记不能与 -c 标记一起应用。-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。-L 打印最长行的长度。-help 显示帮忙信息--version 显示版本信息查看文件的行数,单词数,字节数> cat rumenz.txt 入门 123> wc rumenz.txt 1 2 11 rumenz.txtrumenz.txt有1行2个单词11个字节统计文件的行数> wc -l nohup.out 237 nohup.out> cat nohup.out | wc -l237nohup.out文件有237行用来统计当前目录下的文件数> ls -l | wc -l23当前目录下有23个文件原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 linux常用命令速查手册PDF下载 3669页vim参考手册PDF下载 阿里云ECS运维Linux系统诊断PDF下载 Docker速查手册PDF下载 Linux学习笔记【强悍总结值得一看】PDF下载 shell扼要教程PDF下载

January 26, 2022 · 1 min · jiezi

关于linux:Linux-下配置命令工具的解析

本文集体博客地址:https://www.leafage.top/posts/detail/2212501AB 不批改环境变量文件,使得装置服务能够全局应用以 maven 为例来进行阐明,很多 linux 服务器上都会装置各种根底服务和软件,用来执行一些操作,例如 java 代码的编译、打包须要用 maven 工具,其有一个命令 mvn 来执行各种操作。 装置各种服务有很多办法,然而可能会因为各种起因须要的版本不是零碎默认的仓库中提供的,例如 ubuntu 零碎下默认 maven 版本号为 3.6.2,这个版本在编译 jdk 17的时候会有问题,所以须要更新到最新的版本 3.8.x 来解决这个问题。这时候只能下载最新的 maven 来编译装置。然而如果之前曾经装置过了 maven ,这个时候不想毁坏其之前的各种配置,该如果做呢? 首先咱们先理解下 linux 下各版本的零碎默认的工具都是如何装置的,以及初始化配置是怎么配置的。在 ubuntu 零碎下,maven 文件会放在 /usr/share/maven 下,其中子目录 conf 软连贯到 /etc/maven 目录、其中 /usr/share/maven/bin/m2.conf 文件软连贯到 /etc/maven/m2.conf,这些是文件的寄存目录和配置文件的门路。那接下来如何配置使得 mvn 命令工具可能全局应用,在很多文章中会让配置 /etc/profile 或者 .bashrc 或者 .profile文件,加上export /xxx/xxx 来实现。 同样的来看默认装置的 maven 是如何配置,通过命令: whereis mvn执行后果如下: root@localhost:/usr/bin# whereis mvnmvn: /usr/bin/mvn /usr/share/man/man1/mvn.1.gz那看到了 mvn 的门路为: /usr/bin/mvn ,另外一个指向 mvn.1.gz能够不必管,默认装置的会在文件目录 /usr/share 下有一个xx.gz文件,外面是各种日志打印的货色,就是在装置时能看到的进度那些信息。 去 /usr/bin/ 看一下 mvn 的具体信息,它软连贯到了 /etc/alternatives 目录下,如下所示:那接着看 /etc/alternatives/mvn 这个的具体信息,如下:这里的软连贯间接指向了具体 maven 存储目录中的脚本文件。 ...

January 25, 2022 · 1 min · jiezi

关于linux:针对-Linux-的恶意软件暴增-35XorDDoSMirai-和-Mozi-最盛行

近日,平安公司 CrowdStrike 颁布的一份报告显示:在刚刚过来的 2021 年里,针对 Linux 操作系统(通常部署在物联网设施中)的恶意软件暴增了 35%。其中,XorDDoS、Mirai 和 Mozi 这三个恶意软件“家族”占所有基于 Linux 零碎 IoT 里恶意软件的 22%。 2021年:新增 35% 的恶意软件瞄准 Linux 零碎在 2021年里,XorDDoS、MiaI 和 Mozi 作为基于 Linux 的恶意软件相比2020年暴涨了 35%。这些恶意软件样本中,相比 2020 年,XorDDoS 恶意软件样本减少了 123%,Mozi 的数量也比上一年减少了 10倍。 据悉,这些恶意软件的次要目标是危害易受攻击的互联网连贯设施,将其聚合为“僵尸网络”,并利用它们进行分布式拒绝服务(DDoS)攻打。 恶意软件之一的 XorDDoS 是一种 Linux 特洛伊木马,其名字源于在恶意软件和网络通信中对 C2 基础设施应用 XOR 加密。该软件针对从 ARM 到 x86 和 x64 的各种 Linux 体系结构进行编译。针对物联网设施时,已知特洛伊木马会应用 SSH 暴力攻打近程管制易受攻击的设施。 在 Linux 机器上,XorDDoS 的一些变体显示,其运营商在 2375 端口关上的状况下扫描和搜寻 Docker 服务器。该端口提供未加密的 Docker 套接字和对主机的近程根无明码拜访,攻击者能够利用该端口取得对计算机的根拜访。 Mirai 恶意软件在其开发者公布 Mirai 源码之后迅速风行了起来,并呈现了多个 Mirai 变体。与 Mozi 相似,Mirai 滥用弱协定和弱明码(例如 Telnet)通过暴力破解攻打来毁坏设施。 ...

January 25, 2022 · 1 min · jiezi

关于linux:Linux之grep命令

grep (global search regular expression(RE) and print out the line,全面搜寻正则表达式并把行打印进去)是一种弱小的文本搜寻工具,它能应用正则表达式搜寻文本,并把匹配的行打印进去。用于过滤/搜寻的特定字符。可应用正则表达式能配合多种命令应用,应用上非常灵便。命令格局grep [options] [pattern] [file ...] 命令性能用于过滤/搜寻的特定字符options-a --text # 不要疏忽二进制数据。-A <显示行数> --after-context=<显示行数> # 除了显示合乎范本款式的那一行之外,并显示该行之后的内容。-b --byte-offset # 在显示合乎范本款式的那一行之外,并显示该行之前的内容。-B<显示行数> --before-context=<显示行数> # 除了显示合乎款式的那一行之外,并显示该行之前的内容。-c --count # 计算合乎范本款式的列数。-C<显示行数> --context=<显示行数>或-<显示行数> # 除了显示合乎范本款式的那一列之外,并显示该列之前后的内容。-d<进行动作> --directories=<动作> # 当指定要查找的是目录而非文件时,必须应用这项参数,否则grep命令将回报信息并进行动作。-e<范本款式> --regexp=<范本款式> # 指定字符串作为查找文件内容的范本款式。-E --extended-regexp # 将范本款式为延长的一般表示法来应用,意味着应用能应用扩大正则表达式。-f<范本文件> --file=<规定文件> # 指定范本文件,其内容有一个或多个范本款式,让grep查找合乎范本条件的文件内容,格局为每一列的范本款式。-F --fixed-regexp # 将范本款式视为固定字符串的列表。-G --basic-regexp # 将范本款式视为一般的表示法来应用。-h --no-filename # 在显示合乎范本款式的那一列之前,不标示该列所属的文件名称。-H --with-filename # 在显示合乎范本款式的那一列之前,标示该列的文件名称。-i --ignore-case # 疏忽字符大小写的差异。-l --file-with-matches # 列出文件内容合乎指定的范本款式的文件名称。-L --files-without-match # 列出文件内容不合乎指定的范本款式的文件名称。-n --line-number # 在显示合乎范本款式的那一列之前,标示出该列的编号。-P --perl-regexp # PATTERN 是一个 Perl 正则表达式-q --quiet或--silent # 不显示任何信息。-R/-r --recursive # 此参数的成果和指定“-d recurse”参数雷同。-s --no-messages # 不显示错误信息。-v --revert-match # 反转查找。-V --version # 显示版本信息。-w --word-regexp # 只显示全字合乎的列。-x --line-regexp # 只显示全列合乎的列。-y # 此参数成果跟“-i”雷同。-o # 只输入文件中匹配到的局部。-m <num> --max-count=<num> # 找到num行后果后进行查找,用来限度匹配行数pattern ^ # 锚定行的开始 如:'^grep'匹配所有以grep结尾的行。 $ # 锚定行的完结 如:'grep$' 匹配所有以grep结尾的行。. # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,而后是p。 * # 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。.* # 一起用代表任意字符。[] # 匹配一个指定范畴内的字符,如'[Gg]rep'匹配Grep和grep。[^] # 匹配一个不在指定范畴内的字符,如:'1rep'匹配不蕴含A-R和T-Z的一个字母结尾,紧跟rep的行。 \(..\) # 标记匹配字符,如'(love)',love被标记为1。\< # 锚定单词的开始,如:'\<grep'匹配蕴含以grep结尾的单词的行。\> # 锚定单词的完结,如'grep\>'匹配蕴含以grep结尾的单词的行。x\{m\} # 反复字符x,m次,如:'0{5}'匹配蕴含5个o的行。x\{m,\} # 反复字符x,至多m次,如:'o{5,}'匹配至多有5个o的行。x\{m,n\} # 反复字符x,至多m次,不多于n次,如:'o{5,10}'匹配5--10个o的行。\w # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,而后是p。\W # \w的反置模式,匹配一个或多个非单词字符,如点号句号等。\b # 单词锁定符,如: '\bgrep\b'只匹配grep。POSIX字符为了在不同国家的字符编码中保持一致,POSIX(The Portable Operating System Interface)减少了非凡的字符类,如[:alnum:]是[A-Za-z0-9]的另一个写法。要把它们放到[]号内能力成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都反对POSIX的字符类。[:alnum:] #文字数字字符[:alpha:] #文字字符[:digit:] #数字字符[:graph:] #非空字符(非空格、控制字符)[:lower:] #小写字符[:cntrl:] #控制字符[:print:] #非空字符(包含空格)[:punct:] #标点符号[:space:] #所有空白字符(新行,空格,制表符)[:upper:] #大写字符[:xdigit:] #十六进制数字(0-9,a-f,A-F)查找指定过程> ps -ef | grep javaroot 16934 1 0 Feb25 ? 00:12:23 java -jar demo.jarroot 6891 2151 0 21:42 pts/2 00:00:00 grep --color=auto java第一条记录是查找出的过程;第二条后果是grep过程自身,并非真正要找的过程。查找过程的个数> ps -ef | grep -c java10> ps -ef | grep java -c10查找文件中的关键词> cat rumenz.txt rumenz.txtonetowqazredislinux123linuxxxxrumenz123789> grep "linux" rumenz.txt linux123linuxxxx// -n 显示行号> grep -n "linux" rumenz.txt 6:linux1237:linuxxxx从文件中读取关键词进行搜寻// 待查找的文本> cat rumenz.txt rumenz.txtonetowqazredislinux123linuxxxxrumenz123789// 须要查找的多个关键词> cat k.txt linuxredis> cat rumenz.txt | grep -f k.txtredislinux123linuxxxx//显示行号> cat rumenz.txt | grep -nf k.txt 5:redis6:linux1237:linuxxxx输入rumenz.txt文件中含有从k.txt文件中读取出的关键词的内容行,-n显示行号从多个文件中查找关键词> grep "linux" rumenz.txt rumenz123.txt rumenz.txt:linux123rumenz.txt:linuxxxxrumenz123.txt:linux123rumenz123.txt:linuxxxxrumenz123.txt:linux100多文件时,输入查问到的信息内容行时,会把文件的命名在行最后面输入并且加上":"作为标示符从多个文件中查找关键词,应用通配符// 查找当前目录下所有以rumenz结尾的文件> grep "linux" rumenz*rumenz123.txt:linux123rumenz123.txt:linuxxxxrumenz123.txt:linux100rumenz.txt:linux123rumenz.txt:linuxxxx// 查找当前目录下所有以.txt结尾的文件> grep "linux" *.txtk.txt:linuxrumenz123.txt:linux123rumenz123.txt:linuxxxxrumenz123.txt:linux100rumenz.txt:linux123rumenz.txt:linuxxxxgrep不显示自身过程> ps -ef | grep redis | grep -v greproot 14383 1 0 Jan08 ? 01:16:03 /opt/redis-5.0.8/src/redis-server *:6379polkitd 31977 31941 0 Jan11 ? 01:14:22 redis-server *:6379grep -v grep不显示grep过程自身找出以r结尾的行内容> cat rumenz.txt | grep ^rrumenz.txtredisrumenz找出非r结尾的行内容> cat rumenz.txt | grep ^[^r]onetowqazlinux123linuxxxx123789输入以3结尾的行内容> cat rumenz.txt | grep 3$linux123123显示蕴含li或者23字符的内容行> at rumenz.txt | grep -E "li|23"linux123linuxxxx123查找指定格局的文件显示当前目录上面以.txt 结尾的文件中的所有蕴含每个字符串至多有3个间断小写字符的字符串的行> grep "[a-z]\{3\}" *.txtk.txt:linuxk.txt:redisrumenz123.txt:rumenz.txtrumenz123.txt:onerumenz123.txt:towrumenz123.txt:qazrumenz123.txt:redisrumenz123.txt:linux123rumenz123.txt:linuxxxxrumenz123.txt:rumenzrumenz123.txt:linux100rumenz.txt:rumenz.txtrumenz.txt:onerumenz.txt:towrumenz.txt:qazrumenz.txt:redisrumenz.txt:linux123rumenz.txt:linuxxxxrumenz.txt:rumenz以递归的形式查找符合条件的文件> grep -rl "rumenz" /root/test//root/test/src/sbin/patch.log/root/test/src/doc/rumenz.txt/root/test/src/doc/rumenz123.txt/root/test/src/InfiniteLoop.class/root/test/src/InfiniteLoop.java查找rumenz.txt中蕴含linux行的前2行> grep -B 2 "linux" rumenz.txtqazredislinux123linuxxxx查找rumenz.txt中蕴含linux行的后2行> grep -A 2 "linux" rumenz.txtlinux123linuxxxxrumenz123查找rumenz.txt中蕴含linux行的前后各2行> grep -C 2 "linux" rumenz.txtqazredislinux123linuxxxxrumenz123原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

January 25, 2022 · 2 min · jiezi

关于linux:再获认可-优麒麟荣获最佳技术社区运营奖

InfoQ 作为行业出名技术媒体,每年都会针对行业倒退状况来评比出行业先锋,而 2021 年优麒麟凭借社区活跃度和知名度的迅速增长。斩获了 2021 InfoQ 颁发的“最佳技术社区经营奖”。 自成立以来优麒麟始终坚韧不拔地鼎力推动开发者生态建设。2021 年,优麒麟社区全年累计发布新闻 152 篇,其中输入高质量技术文章 100+ ,以当先技术回馈社区,和开发者独特成长。 2022 年,优麒麟将继续加强生态建设,服务宽广开发者,为营造良好开源生态和技术倒退继续致力,也期待越来越多的爱好者参加进来,为建设开源、奉献开源添砖加瓦! 写在最初2021 年优麒麟社区获得的所有问题与奖项,不仅是优麒麟社区的荣誉,也是整体社区成员的独特荣誉,是大家共同努力的后果,促使优麒麟社区蓬勃发展。在这里,衷心的感激每一位反对优麒麟、为优麒麟做出杰出贡献的小伙伴!优麒麟的倒退,离不开你们的致力!

January 25, 2022 · 1 min · jiezi

关于linux:Centos678更换国内源

Centos6、7、8更换国内源阿里云官网镜像站 简介CentOS,是基于 Red Hat Linux 提供的可自在应用源代码的企业级 Linux 发行版本;是一个稳固,可预测,可治理和可复制的收费企业级计算平台。下载地址: https://mirrors.aliyun.com/centos/https://mirrors.aliyun.com/centos-vault/ 配置办法1. 备份原有镜像源配置mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2. 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/CentOS 6 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo#或者curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repoCentOS 7 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo#或者curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repoCentOS 8 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo#或者curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo3. 运行 yum makecache 生成缓存yum makecache4. 其余非阿里云ECS用户会呈现 Couldn't resolve host 'mirrors.cloud.aliyuncs.com' 信息,不影响应用。用户也可自行批改相干配置: eg: sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo详情参考: 阿里云官网镜像站https://developer.aliyun.com/...

January 24, 2022 · 1 min · jiezi

关于linux:看过来腾讯文档上架优麒麟软件商店啦

近日,优麒麟社区20.04 Pro SP1版本操作系统实现与腾讯文档的适配认证,并在优麒麟软件商店正式上架腾讯文档。这不仅丰盛了优麒麟的利用生态,也为优麒麟用户提供了高效合作、轻松创作的办公新体验。 上架在优麒麟软件商店的腾讯文档 Linux 版,已全方位满足不同场景下的工作和创作需要。用户可在优麒麟软件商店搜寻“腾讯文档 ”一键下载安装。 目前,腾讯文档已与企业微信、腾讯会议等产品交融买通,打造笼罩更多场景的合作体验,为企业及集体带来一种全新的效率合作体验。在内部生态凋谢上,自去年以来,腾讯文档就曾经推出全新的开放平台,为开发者提供了帐号受权、API接口及小程序接入等性能;继续引入了Canva可画、印象笔记等第三方富媒体插件,丰盛文档的内容创作模式,为云端跨设施、跨软件协同办公提供了便当。 将来,腾讯文档将持续欠缺凋谢体系连贯生态搭档,为企业及集体提供便捷、高效、平安的云端一体化合作体验。

January 24, 2022 · 1 min · jiezi

关于linux:华青融天加入龙蜥社区再添科技风险监测领域新伙伴

近日,华青融天(北京)软件股份有限公司(以下简称“华青融天”)签订了 CLA(Contribution License Agreement,贡献者许可协定),正式退出龙蜥社区(OpenAnolis),携手龙蜥社区聚焦开源技术自主翻新,助力开源生态凋敝倒退。 华青融天成立于 2007 年,以机器大数据和 AI 技术为根底,致力于打造数字世界全观测能力,帮忙数字化转型企业透视业务、洞察平安、引领合规、实时经营。华青融天通过独创的 5T+Al 技术,以科技危险监管为外围利用场景,造成了全方位、多层次、立体化的监管合规解决方案,守护数字世界的平安与秩序。 通过十余年的积淀,华青融天已服务中信银行、招商银行、国家开发银行、工银亚洲、银联国内等数百家知名企业,笼罩银行、保险、证券、税务、航空、烟草、医疗、制作等十余个行业,成为科技危险监测畛域的佼佼者。目前,华青融天外围产品全面兼容适配飞腾等国产软硬件,不仅推动了开源技术的倒退,也晋升了开源技术的利用程度和自主可控。公司也入选北京市专精特新企业和 PK 体系生态联盟成员单位。 华青融天董事长吴雨女士示意:“在通往技术革新营造开源生态的方舟上,有数先驱已为咱们点亮了前行的灯塔,有数后浪也在一直沉睡。作为开源技术的倡导者、促成者和实践者,华青融天将充分发挥数字世界全观测劣势和开源利用教训,积极参与到龙蜥社区的开源技术钻研、行业标准建设、翻新孵化和人才培养等工作中,独特推动中国开源技术的翻新和开源生态的凋敝。” 龙蜥社区「龙腾打算」正在进行中,欢送更多企业退出。 —— 完 —— 退出龙蜥社群 退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态! 对于龙蜥社区龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

January 24, 2022 · 1 min · jiezi

关于linux:Linux之cal命令

cal命令能够用来显示公历(阳历)日历。公历是当初国内通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为东方各国所通用,故又名“西历”。命令格局cal [参数][月份][年份] 命令性能用于查看日历等工夫信息,如只有一个参数,则示意年份(1-9999),如有两个参数,则示意月份和年份命令参数-1 显示一个月的月历-3 显示零碎前一个月,以后月,下一个月的月历-s 显示星期天为一个星期的第一天,默认的格局-m 显示星期一为一个星期的第一天-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示以后月在一年中的天数)-y 显示以后年份的日历显示以后月份日历> cal 三月 2021 日 一 二 三 四 五 六 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 显示指定月份的日历> cal 9 2011 九月 2011 日 一 二 三 四 五 六 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 显示2011年的日历> cal -y 2011 2011 January February March Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 1 2 3 4 5 1 2 3 4 5 2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12 9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 1916 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 2623 24 25 26 27 28 29 27 28 27 28 29 30 3130 31 April May June Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 1 2 3 4 5 6 7 1 2 3 4 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 1110 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 1817 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 2524 25 26 27 28 29 30 29 30 31 26 27 28 29 30 July August September Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 1 2 3 4 5 6 1 2 3 3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 1010 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 1717 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 2424 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 3031 October November December Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 1 2 3 4 5 1 2 3 2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10 9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 1716 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 2423 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 3130 31 显示自1月1日的天数> cal -j 三月 2021 日 一 二 三 四 五 六 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 星期一显示在第一列> cal -m March 2021 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 31显示当月的前一个月和后一个月的日历> cal -3 February 2021 March 2021 April 2021 Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 7 8 9 10 11 12 13 7 8 9 10 11 12 13 4 5 6 7 8 9 1014 15 16 17 18 19 20 14 15 16 17 18 19 20 11 12 13 14 15 16 1721 22 23 24 25 26 27 21 22 23 24 25 26 27 18 19 20 21 22 23 2428 28 29 30 31 25 26 27 28 29 30 原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

January 22, 2022 · 4 min · jiezi

关于linux:OpenSSF-和-Linux-基金会出席白宫峰会开源软件供应链安全议题成焦点

在近日(美国当地工夫 2022 年 1 月 13 日)于华盛顿举办的白宫开源平安峰会上,来自开源软件畛域的科技巨头、开发人员们以及商业生态系统的重要搭档,与美国联邦机构的领导人和专家们,独特就“开源软件供应链中存在的挑战以及如何升高危险和加强弹性”议题开展探讨。 作为 Linux 基金会与公共部门组织单干历史上的一个重要时刻,本次会议上, Linux 基金会和开源平安基金会(OpenSSF)代表数百个社区和我的项目,带来了他们在个体网络安全方面做所的致力,同时也分享了他们与公共及私营治理部门单干的契机。 会上,Linux 基金会执行董事 Jim Zemlin 示意:“对要害基础设施的保护措施包含爱护运行其银行、能源、国防、医疗保健和技术零碎的软件。当一个被宽泛应用的开源组件或应用程序的安全性受到侵害时,每个公司、每个国家乃至每个社区都会受到影响。这并非美政府独有的问题,而是全球性问题。咱们赞叹政府在促成更加关注开源软件平安方面施展的领导作用,并期待与寰球生态系统单干获得停顿。值得一提的是,OpenSSF 是咱们应答开源软件供应链挑战的要害动作,咱们的工作失去了会议上其余参与者的认可,并成为进一步单干的根底,这让人十分振奋。” 开源平安基金会执行董事 Brian Behlendorf 评论称:“在明天的会议上,咱们分享了一系列要害的机会,在这些机会中,只有每个人都有足够的承诺,咱们就能够对爱护和改善咱们软件供应链平安所需的要害致力产生实质性的影响。开源生态系统须要共同努力,进一步进行网络安全钻研、培训、剖析,并在修复要害开源软件我的项目中发现的缺点。这些打算失去了踊跃的反馈,有越来越多的个体承诺采取有意义的口头。在最近的 Log4j 危机之后,公共和私人单干的工夫比以往任何时候都更紧迫,以确保开源软件组件和它们所流经的软件供应链展现出最高的网络安全完整性。” Brian 补充称:“通过咱们最佳实际工作组、确定要害我的项目工作组、指标和记分卡、Sigstore 我的项目以及其余行将发表的工作,OpenSSF 已对明天会议中探讨的许多要害畛域产生了影响。咱们已做好进一步致力的筹备,并欢送这次对话和进一步对话可能带来的所有新的参与者和资源。” 自从去年 12 月份 Log4j 曝出”惊天“破绽以来,寰球多个国家政府以及科技巨头纷纷对安全漏洞所带来的影响进行关注并反思,同时对于开源软件的安全性问题的探讨也变得越来越紧迫。

January 20, 2022 · 1 min · jiezi

关于linux:Linux磁盘挂载

列出设施信息lsblk 磁盘分区$ fdisk /dev/sdb 欢送应用 fdisk (util-linux 2.32.1)。更改将停留在内存中,直到您决定将更改写入磁盘。应用写入命令前请三思。设施不蕴含可辨认的分区表。创立了一个磁盘标识符为 0x1b4da470 的新 DOS 磁盘标签。命令(输出 m 获取帮忙):n分区类型 p 主分区 (0个主分区,0个扩大分区,4闲暇) e 扩大分区 (逻辑分区容器)抉择 (默认 p):p分区号 (1-4, 默认 1): 1第一个扇区 (2048-2097151, 默认 2048): 上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-2097151, 默认 2097151): 创立了一个新分区 1,类型为“Linux”,大小为 1023 MiB。命令(输出 m 获取帮忙):w分区表已调整。将调用 ioctl() 来从新读分区表。正在同步磁盘。 格式化磁盘$ mkfs -t ext4 /dev/sdb1 mke2fs 1.45.6 (20-Mar-2020)创立含有 261888 个块(每块 4k)和 65536 个inode的文件系统文件系统UUID:0a4ae059-e136-46aa-9013-247a4402c87e超级块的备份存储于下列块: 32768, 98304, 163840, 229376正在调配组表: 实现 正在写入inode表: 实现 创立日志(4096 个块)实现写入超级块和文件系统账户统计信息: 已实现 挂载磁盘# root @ luo in ~ [3:33:37] $ mount /dev/sdb1 /home/upload# root @ luo in ~ [3:34:06] $ lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINTsda ├─sda1 xfs 29678ff2-c09a-4c15-af2a-18eb01917783 /boot└─sda2 LVM2_member 0zAEJ4-FUyQ-56Lp-i1O4-U3YM-IV0r-uRzcCe ├─cl_luo-root xfs d4a84cca-01fa-48f6-a808-9cd820b8f15d / └─cl_luo-swap swap 3ff8a511-bbcf-4de8-82ce-1ec384101bda [SWAP]sdb └─sdb1 ext4 0a4ae059-e136-46aa-9013-247a4402c87e /home/uploadsr0 iso9660 CentOS-8-4-2105-x86_64-dvd 2021-06-01-20-20-24-00 ...

January 19, 2022 · 1 min · jiezi

关于linux:游戏党注意了超80款Steam游戏可在优麒麟上畅玩

各位优客们,你还在为没有游戏玩而懊恼吗?依据 ProtonDB 网站显示,当初 80% 的 Steam 上排名前 100 的游戏都能在 Linux 桌面上会运行的很好。咱们后面也出过一期具体教程教大家如何在优麒麟上装置并应用 Steam ,遗记了的点这里。 明天,给大家分享两个在优麒麟上畅玩 Steam 游戏的视频。视频内容由优麒麟社区爱好者陌生人提供,也欢送大家给咱们分享你青睐的游戏哦! 话不多说,让咱们进入正题~ 《 ASTRONEER (异星探险家)》 这是一款角色扮演游戏,游戏设定在一个无人星球上,在这个星球上有着丰盛的资源,玩家须要在这里建设一个安身之所,并一直挖掘这个星球上各种神秘的资源。 《戴森球打算》 这是一款模拟游戏,浩瀚无垠的宇宙,未知的征程,作为戴森球打算的一名工程师,你将返回生疏的星系,建造戴森球。从赤贫如洗白手起家,采集资源,规划设计生产线,逐渐实现全自动化,将你的工厂从一个小作坊,倒退成为宏大的跨星系工业帝国。 以上就是咱们本次分享的所有内容啦~看完小伙伴的分享,你有没有心动呢?快在优麒麟论坛分享你青睐的游戏吧!

January 19, 2022 · 1 min · jiezi

关于linux:老牌安全厂商海泰方圆加入龙蜥社区

近日,北京海泰方圆科技股份有限公司(以下简称“海泰方圆”)签订了 CLA(Contribution License Agreement,贡献者许可协定),正式退出龙蜥社区(OpenAnolis)。 海泰方圆成立于 2003 年,是一家以明码全能力和可信数据治理为外围、全面服务网信大时代的平安畛域领军企业。海泰方圆以“让信息世界充斥信赖”为使命,凭借突出的明码能力、数据安全能力、个人信息(隐衷)爱护能力,长期保持核心技术和产品的当先劣势,以自主翻新的核心技术、产品及解决方案、集成能力全面服务于政务、金融和大型企业客户,为明码利用平安、云计算、数据安全、信创平安、国密浏览器、物联平安等新兴畛域提供根底撑持平安爱护。 明码算法是保障信息和数据安全的核心技术,国家明码管理局陆续公布了多项商用明码行业标准,龙蜥社区商密 SIG 组致力于在 Anolis OS 中反对国密算法的全栈生态,在底层硬件、固件、内核到根底密码学库,再到应用软件的次要链路上进行商密革新,最终造成一个残缺的基于商密的平安信赖链条。海泰方圆副总经理刘文华示意:“将来,海泰方圆将在国密算法、隐衷计算畛域与龙蜥社区发展深度单干,以可信数据治理和明码全能力踊跃为开源操作系统赋能,与社区搭档们一起,构建国内自主的网络安全根底软件,全力推动我国智能转型和数字经济倒退。” 龙蜥社区「龙腾打算」正在进行中,欢送更多企业退出。详情可查看:“龙腾打算”启动!邀请 500 家企业退出,与龙蜥社区一起拥抱有限生态! —— 完 —— 退出龙蜥社群退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态! 对于龙蜥社区龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

January 19, 2022 · 1 min · jiezi

关于linux:Linux之date命令

date命令是显示或设置零碎工夫与日期 很多shell脚本外面须要打印不同格局的工夫或日期,以及要依据工夫和日期执行操作。延时通常用于脚本执行过程中提供一段期待的工夫。日期能够以多种格局去打印,也能够应用命令设置固定的格局。在类UNIX零碎中,日期被存储为一个整数,其大小为自世界规范工夫(UTC)1970年1月1日0时0分0秒起流逝的秒数。 命令性能date 能够用来显示或设定零碎的日期与工夫。命令参数%H 小时(以00-23来示意)。%I 小时(以01-12来示意)。%K 小时(以0-23来示意)。%l 小时(以0-12来示意)。%M 分钟(以00-59来示意)。%P AM或PM。%r 工夫(含时分秒,小时以12小时AM/PM来示意)。%s 总秒数。起算工夫为1970-01-01 00:00:00 UTC。%S 秒(以本地的习用法来示意)。%T 工夫(含时分秒,小时以24小时制来示意)。%X 工夫(以本地的习用法来示意)。%Z 市区。%a 星期的缩写。%A 星期的残缺名称。%b 月份英文名的缩写。%B 月份的残缺英文名称。%c 日期与工夫。只输出date指令也会显示同样的后果。%d 日期(以01-31来示意)。%D 日期(含年月日)。%j 该年中的第几天。%m 月份(以01-12来示意)。%U 该年中的周数。%w 该周的天数,0代表周日,1代表周一,以此类推。%x 日期(以本地的习用法来示意)。%y 年份(以00-99来示意)。%Y 年份(以四位数来示意)。%n 在显示时,插入新的一行。%t 在显示时,插入tab。MM 月份(必要)DD 日期(必要)hh 小时(必要)mm 分钟(必要)ss 秒(选择性)抉择参数:-d<字符串> 显示字符串所指的日期与工夫。字符串前后必须加上双引号。-s<字符串> 依据字符串来设置日期与工夫。字符串前后必须加上双引号。-u 显示GMT。--help 在线帮忙。--version 显示版本信息date -s设置工夫date -s //设置以后工夫,只有root权限能力设置,其余只能查看。date -s 20080523 //设置成20080523,这样会把具体工夫设置成空00:00:00date -s 01:01:01 //设置具体工夫,不会对日期做更改date -s “01:01:01 2008-05-23″ //这样能够设置全副工夫date -s “01:01:01 20080523″ //这样能够设置全副工夫date -s “2008-05-23 01:01:01″ //这样能够设置全副工夫date -s “20080523 01:01:01″ //这样能够设置全副工夫加减date +%Y%m%d //显示前天年月日date +%Y%m%d --date="+1 day" //显示前一天的日期date +%Y%m%d --date="-1 day" //显示后一天的日期date +%Y%m%d --date="-1 month" //显示上一月的日期date +%Y%m%d --date="+1 month" //显示下一月的日期date +%Y%m%d --date="-1 year" //显示前一年的日期date +%Y%m%d --date="+1 year" //显示下一年的日期显示以后工夫> dateMon Mar 1 22:09:51 CST 2021> date '+%c'Mon 01 Mar 2021 10:10:13 PM CST> date '+%D'03/01/21> date '+%x'03/01/2021> date '+%T'22:12:48显示日期和设定工夫// 显示工夫> date '+%c'Mon 01 Mar 2021 10:16:41 PM CST//设定工夫> date --date 08:42:00Mon 01 Mar 2021 08:42:00 PM CST显示工夫后跳行,再显示目前日期> date '+%T%n%D'22:21:0103/01/21显示以后工夫戳> date +%s工夫戳转换成工夫date -d @工夫戳>date -d @1614608735 +"%Y-%m-%d %H:%M:%S"2021-03-01 22:25:35工夫转换成工夫戳> date -d "2020-10-11 11:11:11" +"%s1602385871date -d参数应用date 命令的另一个扩大是 -d 选项,该选项十分有用。应用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您能够疾速地查明一个特定的日期。-d 选项还能够告诉您,绝对于以后日期若干天的到底是哪一天,从当初开始的若干天或若干星期当前,或者以前(过来)。通过将这个绝对偏移应用引号括起来,作为 -d 选项的参数,就能够实现这项工作。date -d "nov 22" 往年的 11 月 22 日是星期三date -d '2 weeks' 2周后的日期date -d 'next monday' (下周一的日期)date -d next-day +%Y%m%d(今天的日期)或者:date -d tomorrow +%Y%m%ddate -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%ddate -d last-month +%Y%m(上个月是几月)date -d next-month +%Y%m(下个月是几月)应用 ago 指令,您能够失去过来的日期:date -d '30 days ago' (30天前的日期)应用正数以失去相同的日期:date -d 'dec 14 -2 weeks' (绝对:dec 14这个日期的两周前的日期)date -d '-100 days' (100天以前的日期)date -d '50 days'(50天后的日期)原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

January 19, 2022 · 2 min · jiezi

关于linux:零基础入门linux系统运维

文章次要解说:Linux7.6本文章来自:优极限 计算机硬件软件体系冯诺依曼体系结构计算机解决的数据和指令一律用二进制数示意程序执行程序计算机硬件由运算器、控制器、存储器、输出设施和输出设备五大部分组成计算机硬件组成输出设施 输出设施用来将人们相熟的信息模式转换为机器可能辨认的信息模式 常见的有键盘,鼠标等输出设备 输出设备能够将机器运算后果转换为人们相熟的信息模式打印机输入,显示器输入等存储器 存储器用来存放数据和程序RAM(random access memory)即随机存储内存: 速度快,容量小掉电易失逻辑IOROM(Read-Only Memory)即只读内存硬盘: 容量大,速度绝对较慢短暂保留物理IOCPU(中央处理器) 控制器 控制器次要用来管制和指挥程序和数据的输出运行,以及解决运算后果运算器 运算器次要运行算数运算和逻辑运算,并将两头后果暂存到运算器中 硬盘的分类硬盘依照存储介质的不同能够分为如下两种 机械硬盘(Hard Disk Driver, HDD) 机械硬盘采纳磁性碟片来存储数据用显微镜把盘片放大,会看见盘片外表凹凸不平,凸起的中央被磁化,凹的中央是没有被磁化凸起的中央代表数字1(磁化为1),凹的中央代表数字0。硬盘能够以二进制来存储示意文字、图片等信息。硬盘能够依据转速来判断硬盘的好坏 7200转/分 100-200M/s固态硬盘(Solid State Disk, SSD) 固态硬盘通过闪存颗粒(固态电子存储芯片阵列)来存储数据读写速度的区别 固态硬盘的读取速度广泛能够达到400M/s,写入速度也能够达到130M/s以上,其读写速度是一般机械硬盘的3-5倍。机械硬盘的数据读写 支流的硬盘半机械半电子硬盘(机械硬盘) 硬盘的转速(转速越快读取越快)寻道工夫数据传输工夫程序读写与随机读写 网络连接概念IP地址IPADDR IP地址是一种逻辑地地址,用来标识网络中一个个主机 IP地址=网络地址+主机地址IP地址是一个 4 * 8bit(1字节)由 0/1 组成的数字串(IP4协定)子网掩码NETMASK 网掩码只有一个性能,就是将IP地址划分为网络地址和主机地址两局部。子网掩码用来判断任意两台计算机的IP地址是否在同一个子网中的依据 A 192.168.7.111 B 192.168.8.222255.255.0.0默认网关GATEWAY 连贯两个不同的网络的设施都能够叫网关设施;网关的作用就是实现两个网络之间进行通信与管制。网关地址就是网关设施的IP地址域名服务器DNS DNS是域名服务器,用来解析域名的(域名和IP之间的解析)。如果没有这货色,登陆某个网站时就必须输出该网站的IP地址,有了DNS就能够间接输出网址。网络连接模式host-only(主机模式) 在某些非凡的网络调试环境中,要求将实在环境和虚拟环境隔离开,这时你就可采纳host-only模式。在host-only模式中,所有的虚构零碎是能够互相通信的,但虚构零碎和实在的网络是被隔离开的。在host-only模式下,虚构零碎的TCP/IP配置信息都是由VMnet1(host-only)虚构网络的DHCP服务器来动态分配的bridged(桥接模式) VMWare虚构进去的操作系统就像是局域网中的一台独立的主机,它能够拜访网内任何一台机器。应用桥接模式的虚构零碎和宿主机器的关系,就像连贯在同一个Hub上的两台电脑。以后主机IP 为 192.168.8.100 虚拟机 192.168.8.xxx 学习期间为了避免IP抵触,所以不抉择这种模式NAT(网络地址转换模式) 应用NAT模式,就是让虚构零碎借助NAT(网络地址转换)性能,通过宿主机器所在的网络来拜访公网。NAT模式下的虚构零碎的TCP/IP配置信息是由VMnet8(NAT)虚构网络的DHCP服务器提供的虚 拟零碎也就无奈和本局域网中的其余实在主机进行通信 软件分类应用软件 就是为了实现某些业务性能应用软件要基于对应的系统软件 不同的操作系统要装置不同的软件系统软件 就是为了和硬件打交道屏蔽应用软件与硬件的差别系统软件的分类 Window 用户量寰球最大免费,不开源,民用较多各种软件比拟齐全Mac 只限定于某些苹果的品牌机ios--自成一家GNU/Linux GNU是一个开源软件组织,世界上所有的软件都应该开源收费 GNU Is Not UnixGCC++托瓦兹 林纳斯 Linus -- Linux(Linux is not unix)Logo是企鹅Linux分支RedHat(免费) ...

January 18, 2022 · 8 min · jiezi

关于linux:开启报名2021年度龙蜥社区优秀开发者评选非你莫属

龙蜥社区年度开发者评选活动来啦!所有社区的注册用户均可参加。本次流动不仅为社区做过奉献的所有开发者收回阳光普照奖, 还将评比出10 位开发者收回年度突出贡献奖。 流动详情及报名通道如下(扫码间接报名): —— 完 —— 退出龙蜥社群退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态! 对于龙蜥社区龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

January 18, 2022 · 1 min · jiezi

关于linux:Linux之diff命令

diff 命令是 linux上十分重要的工具,用于比拟文件的内容,特地是比拟两个版本不同的文件以找到改变的中央。diff在命令行中打印每一个行的改变。最新版本的diff还反对二进制文件。diff程序的输入被称为补丁 (patch),因为Linux零碎中还有一个patch程序,能够依据diff的输入将a.c的文件内容更新为b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。命令格局diff[参数][文件1或目录1][文件2或目录2] 命令性能diff命令能比拟单个文件或者目录内容。如果指定比拟的是文件,则只有当输出为文本文件时才无效。以逐行的形式,比拟文本文件的异同处。如果指定比拟的是目录的的时候,diff 命令会比拟两个目录下名字雷同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录呈现的文件。命令参数-<行数> 指定要显示多少行的文本。此参数必须与-c或-u参数一并应用。-a或--text diff预设只会逐行比拟文本文件。-b或--ignore-space-change 不查看空格字符的不同。-B或--ignore-blank-lines 不查看空白行。-c 显示全副内文,并标出不同之处。-C或--context 与执行"-c-"指令雷同。-d或--minimal 应用不同的演算法,以较小的单位来做比拟。-D或ifdef 此参数的输入格局可用于前置处理器巨集。-e或--ed 此参数的输入格局可用于ed的script文件。-f或-forward-ed 输入的格局相似ed的script文件,但依照原来文件的程序来显示不同处。-H或--speed-large-files 比拟大文件时,可加快速度。-l或--ignore-matching-lines 若两个文件在某几行有所不同,而这几行同时都蕴含了选项中指定的字符或字符串,则不显示这两个文件的差别。-i或--ignore-case 不查看大小写的不同。-l或--paginate 将后果交由pr程序来分页。-n或--rcs 将比拟后果以RCS的格局来显示。-N或--new-file 在比拟目录时,若文件A仅呈现在某个目录中,预设会显示:Only in目录:文件A若应用-N参数,则diff会将文件A与一个空白的文件比拟。-p 若比拟的文件为C语言的程序码文件时,显示差别所在的函数名称。-P或--unidirectional-new-file 与-N相似,但只有当第二个目录蕴含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比拟。-q或--brief 仅显示有无差别,不显示具体的信息。-r或--recursive 比拟子目录中的文件。-s或--report-identical-files 若没有发现任何差别,依然显示信息。-S或--starting-file 在比拟目录时,从指定的文件开始比拟。-t或--expand-tabs 在输入时,将tab字符开展。-T或--initial-tab 在每行后面加上tab字符以便对齐。-u,-U或--unified= 以合并的形式来显示文件内容的不同。-v或--version 显示版本信息。-w或--ignore-all-space 疏忽全副的空格字符。-W或--width 在应用-y参数时,指定栏宽。-x或--exclude 不比拟选项中所指定的文件或目录。-X或--exclude-from 您能够将文件或目录类型存成文本文件,而后在=中指定此文本文件。-y或--side-by-side 以并列的形式显示文件的异同之处。--help 显示帮忙。--left-column 在应用-y参数时,若两个文件某一行内容雷同,则仅在左侧的栏位显示该行内容。--suppress-common-lines 在应用-y参数时,仅显示不同之处。diff的normal显示格局有三种提醒:a - addc - changed - delete比照两个文件> cat -n 1.txt 1 入门小站 2 123 3 rumenz> cat -n 2.txt 1 入门小站 2 456 3 123 4 5 入门> diff 1.txt 2.txt1a2> 4563c4,5< rumenz---> > 入门1a2示意1.txt的第1行前面增加456和2.txt文件的第2行雷同。3c4,5示意将1.txt的第3行改成2.txt的第4,5行内容之后两个文件相等。并排格局输入> diff 1.txt 2.txt -y -W 50入门小站 入门小站 > 456123 123rumenz | > 入门|示意前后2个文件内容有不同<示意前面文件比后面文件少了1行内容>示意前面文件比后面文件多了1行内容上下文输入格局> diff 1.txt 2.txt -c*** 1.txt 2021-02-28 22:19:02.872483347 +0800--- 2.txt 2021-02-28 22:19:29.834776319 +0800****************** 1,3 **** 入门小站 123! rumenz--- 1,5 ---- 入门小站+ 456 123! ! 入门+比拟的文件的后者比前着多一行- 比拟的文件的后者比前着少一行! 比拟的文件两者有差异的行对立格局输入> diff 1.txt 2.txt -u--- 1.txt 2021-02-28 22:19:02.872483347 +0800+++ 2.txt 2021-02-28 22:19:29.834776319 +0800@@ -1,3 +1,5 @@ 入门小站+456 123-rumenz++入门第一局部--- 1.txt 2021-02-28 22:19:02.872483347 +0800+++ 2.txt 2021-02-28 22:19:29.834776319 +0800"---"示意变动前的文件,"+++"示意变动后的文件。第二局部变动的地位用两个@作为起首和完结@@ -1,3 +1,5 @@后面的-1,3分成三个局部:减号示意第一个文件(即1.txt),"1"示意第1行,"3"示意间断3行。合在一起,就示意上面是第一个文件从第1行开始的间断3行。同样的,"+1,5"示意变动后,成为第二个文件从第1行开始的间断5行。比拟两个文件不同,并生产补丁> diff -ruN 1.txt 2.txt > patch.log> cat patch.log --- 1.txt 2021-02-28 22:19:02.872483347 +0800+++ 2.txt 2021-02-28 22:19:29.834776319 +0800@@ -1,3 +1,5 @@ 入门小站+456 123-rumenz++入门打补丁,让两个文件一样> patch 1.txt patch.log patching file 1.txt> cat 1.txt 入门小站456123入门> cat 2.txt 入门小站456123入门比拟目录差别> tree src/src/├── test1│ └── one├── test2└── test34 directories, 0 files> tree dst/dst/├── test1├── test2│ └── one└── test34 directories, 0 files> diff -r src/ dst/Only in src/test1: oneOnly in dst/test2: one原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

January 18, 2022 · 1 min · jiezi

关于linux:信号量

信号量例子 #include <stdio.h>#include <stdlib.h>#include <semaphore.h>#include <errno.h>sem_t remain, apple, pear, mutex;static unsigned int vremain = 20, vapple = 0, vpear = 0;void *father(void *);void *mother(void *);void *son(void *);void *daughter(void *);void print_sem();int main(){ pthread_t fa, ma, so, da; sem_init(&remain, 0 , 20); sem_init(&apple, 0, 0); sem_init(&pear, 0, 0); sem_init(&mutex, 0, 1); pthread_create(&fa, NULL, &father, NULL); pthread_create(&ma, NULL, &mother, NULL); pthread_create(&so, NULL, &son, NULL); pthread_create(&da, NULL, &daughter, NULL); while(1) { sem_wait(&mutex); printf("apple: %u, pear: %u, left: %u\n", vapple, vpear, vremain); sem_post(&mutex); sleep(1); }}void *father(void *arg){ while(1) { sem_wait(&remain); sem_wait(&mutex); printf("father: put before, left = %u, apple = %u\n", vremain, vapple); vremain --; vapple ++; printf("father: put after, left = %u, apple = %u\n\n", vremain, vapple); sem_post(&mutex); sem_post(&apple); sleep(1); }}void *son(void *arg){ while(1) { sem_wait(&apple); sem_wait(&mutex); printf("son: take before, left = %u, apple = %u\n", vremain, vapple); vremain ++; vapple --; printf("son: put after, left = %u, apple = %u\n\n", vremain, vapple); sem_post(&mutex); sem_post(&remain); sleep(3); }}void *mother(void *arg){ while(1) { sem_wait(&remain); sem_wait(&mutex); printf("mother: put before, left = %u, pear = %u\n", vremain, vpear); vremain --; vpear ++; printf("mother: put after, left = %u, pear = %u\n\n", vremain, vpear); sem_post(&mutex); sem_post(&pear); sleep(3); }}void *daughter(void *arg){ while(1) { sem_wait(&pear); sem_wait(&mutex); printf("dau: take before, left = %u, pear = %u\n", vremain, vpear); vremain ++; vpear --; printf("dau: take after, left = %u, pear = %u\n\n", vremain, vpear); sem_post(&mutex); sem_post(&remain); sleep(1); }}

January 17, 2022 · 2 min · jiezi

关于linux:工具Pandoc-使用笔记

简介pandoc 工具罕用于转换文档格局,反对Markdown、HTML、LaTeX、Word docx、PDF等文档格局的转换。 装置最简略的办法就是从官网下载软件间接装置。点击下载 。 还有其余的装置办法如下。 Windows应用 Chocolatey 装置: choco install pandocMacOS应用 Homebrew 装置: brew install pandoc应用罕用文档格局转换 pandoc -opandoc -o output.html input.txt显式指定输出\输入格局 pandoc -f pandoc -t , 如将hello.txt 从html转换成markdown格局pandoc -f html -t markdown hello.txt更多的应用办法请参考 官网手册 。

January 17, 2022 · 1 min · jiezi

关于linux:hi-龙蜥小二来了-一键为你答疑解惑

近日,龙蜥社区已上线龙蜥小二,为宽广社区用户提供问答便当。用户可在钉钉群内一键@龙蜥小二实现问题答疑,海量原创技术文章反对答疑,针对用户发问做出疾速响应。 龙蜥小二是龙蜥社区推出的为用户答疑解惑的钉钉机器人,针对您的问题,龙蜥小二会致力从社区海量原创文章中筛选出匹配的计划,包含 Anolis OS 的装置、降级、迁徙、软件包清单、产品策略等方面的反对,同时龙蜥社区文档也在不断完善中。想要疾速理解龙蜥操作系统,欢送来社区用户群体验。 龙蜥小二能够帮您: 查问问题。依据您所提的问题疾速匹配对应计划。 解答疑难。针对具体疑难问题,例如 CentOS 迁徙 Anolis OS 过程中遇到的具体问题,可在群里发问,社区有专门的值班人员为您解答。 收集 log 。龙蜥小二会收集您所提的问题,逐渐改良问题零碎。 ......更多功能,等你来解锁。 使用指南退出龙蜥社区钉钉交换群(33311793),间接@龙蜥小二 + 【想理解的内容】,机器人会推送相干文档链接。 例如:@龙蜥小二 Anolis OS 装置,龙蜥小二会回复您装置指南的文档链接。 在零碎应用过程中有任何疑难也能够间接@龙蜥小二 + 【遇到的问题】,后盾会将发送内容进行分词,依据分进去的关键字去已有问题中匹配,返回匹配度最高的一条数据。 例如:@龙蜥小二 虚拟机镜像从哪里下载,会返回对应镜像的下载地址。未匹配到答案时,也会有值班人员帮您解答。 对龙蜥小二有任何倡议,也欢送大家反馈给咱们! —— 完 —— 退出龙蜥社群 退出微信群:增加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者/用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态! 对于龙蜥社区龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。 欢送下载: https://openanolis.cn/download 退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

January 17, 2022 · 1 min · jiezi

关于linux:Linux进程管理

过程查看ps auxps是process status的缩写,也就是过程状态的意思.参数信息 a:all显示所用过程,不仅显示以后用户启动的过程u:以user为主的格局输入过程信息x:显示以后用户所有终端下的过程返回信息 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.2 44672 3864 ? Ss 1月15 0:02 /usr/lib/systeroot 2 0.0 0.0 0 0 ? S 1月15 0:00 [kthreadd]root 4 0.0 0.0 0 0 ? S< 1月15 0:00 [kworker/0:0H]USER 启动该过程的用户PID 过程号%CPU cpu占有率(%)%MEM 内存占有率(%)VSZ 占用虚拟内存(swap空间)的大小RSS 占用常驻内存(物理内存)的大小TTY 过程在哪个终端上运行,?代表未知或不须要终端STAT 示意过程状态 S 睡眠R 运行Z 僵死< 高优先级N 低优先级s 父过程+ 前台过程START 过程开始的工夫TIME 过程执行了多长时间COMMAND 启动该过程的命令ps ef参数信息 e:显示零碎内所有过程的信息f:full应用残缺格局显示过程信息显示信息根本与aux 相似top显示信息 top - 01:25:39 up 5:25, 4 users, load average: 0.03, 0.06, 0.07Tasks: 101 total, 4 running, 97 sleeping, 0 stopped, 0 zombie%Cpu(s): 1.3 us, 1.7 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 1882012 total, 404536 free, 199104 used, 1278372 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 1486184 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1056 root 20 0 51136 1112 772 R 0.7 0.1 2:33.37 rshim 1 root 20 0 44672 3864 2444 S 0.0 0.2 0:02.64 systemd 第一行,工作队列信息,和uptime命令执行的后果雷同 ...

January 16, 2022 · 2 min · jiezi

关于linux:Linux软件包管理器

包管理器是不便软件装置 卸载 解决包依赖关系的重要工具 centos redhat应用yum包管理器,安装包的格局是 rpmubuntu debian 应用apt包管理器,安装包格局是 debrpm命令罕用参数-q 查问软件包rpm -qa 查问装置的所有rpm软件包rpm -q 软件包名称 查问已装置软件包-i 装置软件包rpm -i 软件包名称.版本.机器类型.rpm 装置软件包对应的是一个残缺的包文件的名称-e 卸载软件包rpm -e 软件包名称 卸载软件包,rpm -e a b c装置a b c 三个软件包yum包管理器yum包管理器能够帮忙咱们主动解决包依赖问题,同时yum也有本人的源仓库,绝大多数罕用的rpm都在其中,所以yum的存在更便于咱们为您实现rpm包的治理. centos yum 源http://mirror.centos.org/centos-7/国内镜像https://mirrors.aliyun.com/centos/7/ 应用国内镜像替换国外源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo罕用参数install 装置软件包remove 卸载软件包list|grouplist 查看软件包update 更新软件包二进制装置形式解压安装包执行configure文件,用来生成makefile为下一步编译做筹备,能够在前面加参数来对装置进行管制,比方:./configure --prefix=/usr/local/xxx代表将这个文件装置到前面这个目录当中.make 编译make install 装置

January 16, 2022 · 1 min · jiezi

关于linux:Linux之ln命令

ln命令 用来为文件创建链接,链接类型分为硬链接和符号链接两种,默认的链接类型是硬链接。如果要创立符号链接必须应用"-s"选项。命令格局ln [参数][源文件或目录][指标文件或目录] 命令性能Linux文件系统中,有所谓的链接(link),咱们能够将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案能够有多个名称,而软链接的形式则是产生一个非凡的档案,该档案的内容是指向另一个档案的地位。硬链接是存在同一个文件系统中,而软链接却能够逾越不同的文件系统。软连贯软链接,以门路的模式存在。相似于Windows操作系统中的快捷方式软链接能够 跨文件系统 ,硬链接不能够软链接能够对一个不存在的文件名进行链接软链接能够对目录进行链接硬链接硬链接,以文件正本的模式存在。但不占用理论空间。不容许给目录创立硬链接硬链接只有在同一个文件系统中能力创立命令参数-b 删除,笼罩以前建设的链接-d 容许超级用户制作目录的硬链接-f 强制执行-i 交互模式,文件存在则提醒用户是否笼罩-n 把符号链接视为个别目录-s 软链接(符号链接)-v 显示具体的处理过程-S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”-V “-V<备份形式>”或“--version-control=<备份形式>”--help 显示帮忙信息--version 显示版本信息给rumenz.txt创立一个软连贯> ls -alls -altotal 4drwxr-xr-x 2 root root 24 Feb 27 22:03 .drwxr-xr-x 8 root root 299 Feb 26 19:44 ..-rw-r--r-- 1 root root 22 Feb 27 22:03 rumenz.txt> ln -s rumenz.txt newrumenz.txt> ls -altotal 4drwxr-xr-x 2 root root 45 Feb 27 22:03 .drwxr-xr-x 8 root root 299 Feb 26 19:44 ..lrwxrwxrwx 1 root root 10 Feb 27 22:03 newrumenz.txt -> rumenz.txt-rw-r--r-- 1 root root 22 Feb 27 22:03 rumenz.txtnewrumenz.txt就是rumenz.txt的软连贯,批改newrumenz.txt文件的内容,rumenz.txt也会跟着变,删除newrumenz.txt,rumenz.txt内容不受任何影响。然而删除rumenz.txt,ls newrumenz.txt时,newrumenz.txt会变色或者会始终闪动。给rumenz.txt创立一个硬连贯> ls rumenz.txt oldrumenz.txt> ls -altotal 8drwxr-xr-x 2 root root 45 Feb 27 22:12 .drwxr-xr-x 8 root root 299 Feb 26 19:44 ..-rw-r--r-- 2 root root 8 Feb 27 22:12 oldrumenz.txt-rw-r--r-- 2 root root 8 Feb 27 22:12 rumenz.txt批改oldrumenz.txt文件内容,rumenz.txt内容也会跟着扭转,删除oldrumenz.txt,rumenz.txt内容不受任何影响。删除rumenz.txt,oldrumenz.txt内容不受任何影响。给目录创立软连贯(不能给目录创立硬连贯)> ln -sv lib lib64> ls -aldrwxr-xr-x 8 root root 312 Feb 27 22:16 .drwxr-xr-x 3 root root 17 Jan 29 23:06 ..drwxr-xr-x 2 root root 27 Feb 27 22:14 liblrwxrwxrwx 1 root root 4 Feb 27 22:16 lib64 -> lib/原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

January 16, 2022 · 1 min · jiezi

关于linux:Linux上如何查找文件

用处find命令用于在指定目录下查找文件。 全称无 参数 -name :后跟须要匹配的文件名模式,须要应用引号引起来上面是一些简略的示例查找:(~示意$HOME目录) 1.查找以后$HOME下'.log'结尾的文件 find ~ –name "*.log" –print 2.当前目录与子目录下查找所有'.log'结尾的文件 find . –name "*.log" –print 3.当前目录与子目录下查找文件名以一个大写字母结尾的文件 find . –name "[A-Z]" –print 4.在/etc目录下查找文件名以host结尾的文件 find /etc –name "host*" –print 5.在当前目录查找文件名以一个小写字母结尾,最初是4到9加上.txt完结的文件 find . –name "[a-z]*[4-9].txt" –print find file by name -iname :依据文件名查找文件,不辨别大小写1.查找文件名为.log结尾的文件,不辨别大小写 find . –iname "*.log" –print -perm :后跟文件权限,按文件权限模式来查找文件 1.查找当前目录下文件权限为777的文件 find . –perm 777 –print how to Find file in Linux -prune :疏忽某个目录1.心愿在tmp下查找,但不心愿在/tmp/tmp1下查找 find test –path "/tmp/tmp1" –prune –o –print ...

January 16, 2022 · 1 min · jiezi

关于linux:Linux-TOP-命令

前言top命令分为汇总区和工作明细区 汇总区运行工夫和以后登录到零碎的用户以后工夫是15:39:37. 零碎曾经运行了90天,15个小时,26分钟。以后有两个沉闷用户 内存应用高低两行以kb模式展现物理内存和swap内存的总计,闲暇(free), 已应用(total)的状况 其中buff/cache ,是在cpu读写硬盘数据时,为了提速在内存中开拓的缓冲(buffer针对写)或缓存区域(cache针对读) avail mem 是创立新过程时,在不应用swap分区的状况下,可能调配的内存大小。这个大小可能比以后的free还大,这是因为buff/cache中的内存在创立过程时,若须要,也是能够抢占过去的。 过程数统计过程状态Runnable (R) 曾经在应用cpu执行,或者曾经在cpu的执行队列中的过程Interruptible sleep (S) 过程在sleep中,能够通过一个中断信号完结Uninterruptible sleep (D) 过程在sleep中,在期待i/o操作完结Stopped (T) 曾经完结的过程Zombie (Z) 一个Parent的许多child都曾经退出,但Parent还存在,且没有获取到child的状态之前的过程状态。The kernel maintains various data structures in memory to keep track of processes. A process may create a number of child processes, and they may exit while the parent is still around. However, these data structures must be kept around until the parent obtains the status of the child processes. Such terminated processes whose data structures are still around are called zombies示例总共有27个过程,1个运行,26的sleep中 ...

January 16, 2022 · 1 min · jiezi

关于linux:SSL-CERTIFICATEVERIFYFAILED

Python3 关上 https 链接,异样:“SSL: CERTIFICATE_VERIFY_FAILED”一、问题Python2.7.9 之后,当应用urllib.urlopen关上一个 https 链接时,会验证一次 SSL 证书。而当指标网站应用的是自签名的证书时就会抛出如下异样: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)> 二、解决方案1,计划一应用ssl创立未经验证的上下文,在urlopen中传入上下文参数: import ssl context = ssl._create_unverified_context()urllib.request.urlopen(req,context=context) 2,计划二全局勾销证书验证: import ssl ssl._create_default_https_context = ssl._create_unverified_contexturllib2.urlopen("https://www.12306.cn/mormhweb/").read() 3,计划三应用的是requests模块,将办法中的verify设置位False即可: requests.get(url, headers=Hostreferer,verify=False) how to fix CERTIFICATE_VERIFY_FAILED

January 15, 2022 · 1 min · jiezi

关于linux:openSUSE-152已结束生命周期还不升级吗

openSUSE Leap 15.2自2022年1月4日起已完结生命周(EOL),还在应用该零碎的用户将来将不会再收到任何模式的平安与保护更新。 倡议所有用户尽快将系统升级到 - openSUSE Leap 15.3,该零碎将取得安全补丁和更新直至2022年11月。下一个版本openSUSE Leap 15.4也将预计在2022年6月公布。 喜爱滚动更新版的的敌人,也能够借此机会从Leap版本切换到Tumbleweed版本。 openSUSE Leap的版本升级能够通过联网在线降级,也能够通过下载最新版本的ISO文件进行线下降级,这外面咱们将看看如何在线降级。 openSUSE Leap在线降级应用在线降级的形式有如下劣势: 只须要下载须要更新的软件包,将节俭不少带宽在降级期间,尽管不举荐,然而你任然能够应用零碎,只有在降级实现后须要重新启动因为不须要下载ISO镜像文件,所以不须要DVD驱动器或者刻录USB启动盘,须要的仅仅是网络当然在线降级也有如下毛病: 如果因为某些起因,导致降级过程被中断(例如忽然断电,网络连接断开),降级过程无奈持续,这有可能会留下一个被毁坏的零碎如果有多个零碎须要降级,那么下载ISO镜像可能会更省带宽留神,如果你应用的是更旧的Leap版本,例如 15.1,请先降级到15.2之后,再降级到15.3 。 你能够应用如下命令查看以后版本 > lsb_release -dDescription: openSUSE Leap 15.2尽管失常的降级不会导致用户数据的失落,然而为了平安,倡议在降级之前备份本人重要的集体数据。 降级零碎之前的筹备首先查看更新源是否存在并更新以后发行版本的软件包# zypper repos --uri...29 | repo-update | 主更新源 | Yes | ( ) No | No | https://mirrors.tuna.tsinghua.edu.cn/opensuse/update/leap/15.2/oss/30 | repo-update-non-oss | 主更新源(非开源软件) | Yes | ( ) No | No | https://mirrors.tuna.tsinghua.edu.cn/opensuse/update/leap/15.2/non-oss/...这里我应用了清华大学的镜像源(https://mirrors.tuna.tsinghua...)如果下面一样曾经存在更新源,则进行下一步;如果没有更新源,请增加 # zypper addrepo --check --refresh --name 'openSUSE-Leap-15.2-Update' http://download.opensuse.org/update/leap/15.2/oss/ repo-update将 /var/cache 挪动到一个独立子卷(subvolume)留神,如果你零碎的根文件系统不是 Btrfs 的类型,则能够跳过这一步 ...

January 15, 2022 · 2 min · jiezi

关于linux:如何检查linux-kernel-信息

查看Linux内核版本命令(两种办法):1、cat /proc/version显示正在运行的内核版本。 [root@S-CentOS home]# cat /proc/version Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.cento...) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 2、uname -a显示电脑以及操作系统的相干信息。 [root@S-CentOS home]# uname -a Linux S-CentOS 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux check Linux version 查看Linux零碎版本的命令(3种办法):1、lsb_release -a,即可列出所有版本信息[root@S-CentOS ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarchDistributor ID: CentOSDescription: CentOS release 6.5 (Final)Release: 6.5 Codename: Final 这个命令实用于所有的Linux发行版,包含RedHat、SUSE、Debian…等发行版,然而在debian下要装置lsb。 ...

January 14, 2022 · 1 min · jiezi

关于linux:systemd服务详解

一、init过程演变init的倒退 开发Systemd的次要目标就是缩小零碎疏导工夫和计算开销。Systemd(系统管理守护过程),最开始以GNU GPL协定受权开发,当初已转为应用GNU LGPL协定,它是现在探讨最热烈的疏导和服务管理程序。如果你的Linux系统配置为应用Systemd疏导程序,它取替传统的SysV init,启动过程将交给systemd解决。 CentOS5:SysV init,串行CentOS6:Upstart,并行,借鉴ubantuCentOS7:Systemd,并行,借鉴MACSystemd新个性:(1)零碎疏导时实现服务并行启动:服务间无依赖关系会并行启动。(2)按需激活过程:若服务非立即应用,不会立即激活,处于半活动状态,占用端口用时启动服务。(3)零碎状态快照:回滚到过来某一状态。(4)基于依赖关系定义服务管制逻辑。二、unit单元服务unit相干配置文件:unit由其相干配置文件进行标识、辨认和配置。文件中次要蕴含了零碎服务、监听的socket、保留的快照以及其它与init相干的信息。unit配置文件的地位: /lib/systemd/system 本地配置的零碎单元/run/systemd/system 运行时配置的零碎单元/usr/lib/systemd/system 第三方软件的零碎单元(sshd,nginx..)unit常见类型: Serviceunit:文件扩大名为.service,用于定义零碎服务;Targetunit:文件扩大为.target,用于模仿实现“运行级别”;Device unit=:文件扩大名为 .device,用于定义内核辨认的设施;Mount unit:文件扩大名为.mount,定义文件系统挂载点;Socketunit:文件扩大名为 .socket,用于标识过程间通信用到的socket文件;Snapshotunit:文件扩大名为 .snapshot, 管理系统快照;Swapunit:文件扩大名为 .swap, 用于标识swap设施;Automountunit: 文件扩大名为.automount,文件系统主动点设施;Pathunit:文件扩大名为 .path, 用于定义文件系统中的一文件或目录;unit个性: 1)基于socket的激活机制:socket与程序拆散,将套接字先调配但时程序自身未启动2)基于bus的激活机制:基于总线的申请来激活设施3)基于device的激活机制:设施插入时候主动挂载激活设施,挂载点不存在主动创立4)基于Path的激活机制:监控目录文件是否存在来激活服务或者过程5)零碎快照:保留各unit的以后状态信息于长久存储设备中;6)向后兼容sysv init脚本;  /etc/init.d/下的脚本也能兼容三、syscemctl命令启动/敞开类 启动:service NAME start ==>  systemctl start NAME.service进行:service NAME stop ==> systemctl stop NAME.service重启:service NAME restart ==>  systemctl restart NAME.service状态:service NAME status ==>  systemctl status NAME.service条件式重启:service NAME condrestart  ==>  systemctl try-restart NAME.service重载或重启服务:systemctl reload-or-restart NAME.servcie重载或条件式重启服务:systemctl reload-or-try-restart NAME.service查看服务类 查看某服务以后激活与否的状态:systemctl is-active NAME.service查看所有已激活的服务:systemctl list-units --type service查看所有服务(已激活及未激活):chkconfig --lsit  ==>  systemctl list-units -t service --all开机设置类 设置服务开机自启:chkconfig NAME on ==>  systemctl enable NAME.service禁止服务开机自启:chkconfig NAME off ==>  systemctl disable NAME.service查看某服务是否能开机自启:chkconfig --list  NAME ==>  systemctl is-enabled NAME.service禁止某服务设定为开机自启:systemctl mask NAME.service勾销此禁止:systemctl unmask NAME.servcie列出所有已装置的服务以及它们的状态:systemctl list-unit-files列出开机启动失败的服务:systemctl --failed列出某种类型(service, mount, device, socket, target)的服务:systemctl --type=mount将一个shell脚本设置为开机启动:systemctl enable debug-shell.service查看依赖关系类 查看服务的依赖关系:systemctl list-dependencies NAME.service治理target units: 运行级别对应关系: 0  ==> runlevel0.target, poweroff.target 1  ==> runlevel1.target, rescue.target 2  ==> runlevel2.tartet, multi-user.target 3  ==> runlevel3.tartet, multi-user.target 4  ==> runlevel4.tartet, multi-user.target 5  ==> runlevel5.target, graphical.target 6  ==> runlevel6.target, reboot.target相干命令: ...

January 14, 2022 · 2 min · jiezi

关于linux:优麒麟入选-2021-中国技术品牌影响力企业榜深耕开发者生态

2022 年 1 月 13 日,中国技术先锋年度评比 | 2021 中国技术品牌影响力企业榜单正式公布。作为中国当先的新一代开发者社区,SegmentFault 思否依靠数百万开发者用户数据分析,各科技企业在国内技术畛域的行为及影响力指标,最终评比出 30 家上榜企业。优麒麟作为麒麟软件有限公司主导开发的寰球开源我的项目,入选 30 强之列。 始终以来优麒麟都保持鼎力推动开发者生态建设。2021 年,优麒麟共举办了 18 场不同品种的流动,包含版本发布会、麒麟杯软件大赛、Linux 开源生态利用沙龙、生态测试和 KMRE 体验流动等,并参加 8 场国内外有影响力的开源流动,包含 LAS 2021、 中国开发者生态峰会、UbuCon Asia 2021、 中日韩开源峰会等。输入高质量技术文章 100+ ,以当先技术回馈社区,和开发者独特成长。目前,优麒麟社区已累计发行 19 个版本,下载量超过 3800 万次,向开源社区奉献代码数百万行,被 Linux、Debian、Ubuntu、OpenStack、Ceph 等国内开源社区接管的 patch 超过 7400 个,在寰球范畴内领有数十万沉闷用户。 2022 年,优麒麟将继续加强生态建设,服务宽广开发者,为营造良好开源生态和技术倒退继续致力,也期待越来越多的爱好者参加进来,为建设开源、奉献开源添砖加瓦!

January 14, 2022 · 1 min · jiezi

关于linux:Linux之du命令

du命令的作用是预计文件系统的磁盘已使用量,罕用于查看文件或者目录所占的磁盘量。du命令 也是查看应用空间的,然而与df命令不同的是Linux du命令是对文件和目录磁盘应用的空间的查看,还是和df命令有一些区别的。命令语法du [选项][文件] 命令选项-a, --all 显示目录中个别文件的大小。-B, --block-size=大小 应用指定字节数的块-b, --bytes 显示目录或文件大小时,以byte为单位。-c, --total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。-D, --dereference-args 显示指定符号链接的源文件大小。-H, --si 与-h参数雷同,然而K,M,G是以1000为换算单位。-h, --human-readable 以K,M,G为单位,进步信息的可读性。-k, --kilobytes 以KB(1024bytes)为单位输入。-l, --count-links 反复计算硬件链接的文件。-m, --megabytes 以MB为单位输入。-L<符号链接>, --dereference<符号链接> 显示选项中所指定符号链接的源文件大小。-P, --no-dereference 不追随任何符号链接(默认)-0, --null 将每个空行视作0 字节而非换行符-S, --separate-dirs 显示个别目录的大小时,并不含其子目录的大小。-s, --summarize 仅显示总计,只列出最初加总的值。-x, --one-file-xystem 以一开始解决时的文件系统为准,若遇上其它不同的文件系统目录则略过。-X<文件>, --exclude-from=<文件> 在<文件>指定目录或文件。--apparent-size 显示外表用量,而并非是磁盘用量;尽管外表用量通常会小一些,但有时它会因为稠密文件间的"洞"、外部碎片、非间接援用的块等起因而变大。--files0-from=F 计算文件F中以NUL结尾的文件名对应占用的磁盘空间如果F的值是"-",则从规范输出读入文件名--exclude=<目录或文件> 略过指定的目录或文件。--max-depth=N 显示目录总计(与--all 一起应用计算文件)当N为指定数值时计算深度为N,等于0时等同--summarize--si 相似-h,但在计算时应用1000 为基底而非1024--time 显示目录或该目录子目录下所有文件的最初批改工夫--time=WORD 显示WORD工夫,而非批改工夫:atime,access,use,ctime 或status--time-style=款式 依照指定款式显示工夫(款式解释规定同"date"命令):full-iso,long-iso,iso,+FORMAT--help 显示此帮忙信息并退出--version 显示版本信息并退出显示目录的大小du0 ./lib12 ./bin/rumenz12 ./bin0 ./sbin/doc0 ./sbin/info4 ./sbin0 ./doc/js0 ./doc/css0 ./doc/html/rumenz0 ./doc/html/rumenzz4 ./doc/html4 ./doc0 ./rumenz/lib/test0 ./rumenz/lib/info0 ./rumenz/lib0 ./rumenz52 ./one104 .只显示当前目录上面的子目录的目录大小和当前目录的总的大小,最上面的104为当前目录的总大小显示指定文件所占的磁盘空间> du rumenz.txt查看指定目录的所占空间> du src0 src/lib12 src/bin/rumenz12 src/bin0 src/sbin/doc0 src/sbin/info4 src/sbin0 src/doc/js0 src/doc/css0 src/doc/html/rumenz0 src/doc/html/rumenzz4 src/doc/html4 src/doc0 src/rumenz/lib/test0 src/rumenz/lib/info0 src/rumenz/lib0 src/rumenz52 src/one104 src/最初一行是整个目录src所占的磁盘空间查看指定目录的所占空间,进步信息的可读性> du -h src0 src/lib12K src/bin/rumenz12K src/bin0 src/sbin/doc0 src/sbin/info4.0K src/sbin0 src/doc/js0 src/doc/css0 src/doc/html/rumenz0 src/doc/html/rumenzz4.0K src/doc/html4.0K src/doc0 src/rumenz/lib/test0 src/rumenz/lib/info0 src/rumenz/lib0 src/rumenz52K src/one104K src/最初一行是整个目录src所占的磁盘空间,加上了单位,可读性变强显示多个文件所占的空间> du a.log b.log0 a.log0 b.log只显示目录的总大小> du -s /root826036 /root统计总用量(-s代表summarize)只显示目录的总大小,进步可读性> du -sh /root/807M /root/文件和目录的大小都显示> du -ah src/0 src/lib0 src/bin/rumenz/5.txt0 src/bin/rumenz/3.txt8.0K src/bin/rumenz/5.txt~4.0K src/bin/rumenz/1.txt12K src/bin/rumenz12K src/bin0 src/sbin/doc0 src/sbin/info4.0K src/sbin/rumenz.txt4.0K src/sbin0 src/doc/js0 src/doc/css4.0K src/doc/html/1.sh0 src/doc/html/1.txt0 src/doc/html/2.txt0 src/doc/html/rumenz/1.txt0 src/doc/html/rumenz/2.txt0 src/doc/html/rumenz0 src/doc/html/rumenzz/1.txt~0 src/doc/html/rumenzz/1.txt0 src/doc/html/rumenzz0 src/doc/html/1_link.txt4.0K src/doc/html0 src/doc/rumenz.txt4.0K src/doc0 src/rumenz/lib/test0 src/rumenz/lib/info0 src/rumenz/lib0 src/rumenz4.0K src/InfiniteLoop$1.class4.0K src/InfiniteLoop.class12K src/nohup.out4.0K src/InfiniteLoop.java4.0K src/rumenz.txt4.0K src/Rumenz.txt0 src/ABC1.png0 src/AB2.png0 src/ABC123.png0 src/A123.png0 src/b.log4.0K src/one/rumenz.tar.gz0 src/one/1.txt0 src/one/2.txt48K src/one/etc.tar.gz52K src/one4.0K src/a.log108K src/显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和> du -c a.log b.log 4 a.log0 b.log4 total加上-c选项后,du不仅显示两个目录各自占用磁盘空间的大小,还在最初一行统计它们的总和。依照空间大小排序> du -ah src | sort -nr108K ./src108K .52K ./src/one48K ./src/one/etc.tar.gz12K ./src/nohup.out12K ./src/bin/rumenz12K ./src/bin8.0K ./src/bin/rumenz/5.txt~4.0K ./src/sbin/rumenz.txt4.0K ./src/sbin4.0K ./src/Rumenz.txt4.0K ./src/rumenz.txt4.0K ./src/one/rumenz.tar.gz4.0K ./src/InfiniteLoop.java4.0K ./src/InfiniteLoop.class4.0K ./src/InfiniteLoop$1.class4.0K ./src/doc/html/1.sh4.0K ./src/doc/html4.0K ./src/doc4.0K ./src/bin/rumenz/1.txt4.0K ./src/a.log0 ./src/sbin/info0 ./src/sbin/doc0 ./src/rumenz/lib/test0 ./src/rumenz/lib/info0 ./src/rumenz/lib0 ./src/rumenz0 ./src/one/2.txt0 ./src/one/1.txt0 ./src/lib0 ./src/doc/rumenz.txt0 ./src/doc/js0 ./src/doc/html/rumenzz/1.txt~0 ./src/doc/html/rumenzz/1.txt0 ./src/doc/html/rumenzz0 ./src/doc/html/rumenz/2.txt0 ./src/doc/html/rumenz/1.txt0 ./src/doc/html/rumenz0 ./src/doc/html/2.txt0 ./src/doc/html/1.txt0 ./src/doc/html/1_link.txt0 ./src/doc/css0 ./src/b.log0 ./src/bin/rumenz/5.txt0 ./src/bin/rumenz/3.txt0 ./src/ABC1.png0 ./src/ABC123.png0 ./src/AB2.png0 ./src/A123.png输入当前目录下各个子目录所应用的空间> du -h --max-depth src0 src/lib12K src/bin4.0K src/sbin4.0K src/doc0 src/rumenz52K src/one108K src原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

January 14, 2022 · 2 min · jiezi

关于linux:Linux之df命令

linux中df命令的性能是用来查看linux服务器的文件系统的磁盘空间占用状况。能够利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。命令格局df [选项] [文件] 命令性能显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有以后被挂载的文件系统的可用空间将被显示。默认状况下,磁盘空间将以1KB为单位进行显示,除非环境变量POSIXLY_CORRECT被指定,那样将以512字节为单位进行显示。命令选项-a或--all:蕴含全副的文件系统;--block-size=<区块大小>:以指定的区块大小来显示区块数目;-h或--human-readable:以可读性较高的形式来显示信息;-H或--si:与-h参数雷同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;-i或--inodes:显示inode的信息;-k或--kilobytes:指定区块大小为1024字节;-l或--local:仅显示本地端的文件系统;-m或--megabytes:指定区块大小为1048576字节;--no-sync:在获得磁盘应用信息前,不要执行sync指令,此为预设值;-P或--portability:应用POSIX的输入格局;--sync:在获得磁盘应用信息前,先执行sync指令;-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;-T或--print-type:显示文件系统的类型;-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;--help:显示帮忙;--version:显示版本信息。查看零碎磁盘设施,默认是KB为单位> dfFilesystem 1K-blocks Used Available Use% Mounted ondevtmpfs 8122232 0 8122232 0% /devtmpfs 8132768 16 8132752 1% /dev/shmtmpfs 8132768 808464 7324304 10% /runtmpfs 8132768 0 8132768 0% /sys/fs/cgroup/dev/vda1 41921520 32260888 9660632 77% //dev/vdb1 206291944 20278964 175510888 11% /datatmpfs 1626556 0 1626556 0% /run/user/0tmpfs 1626556 0 1626556 0% /run/user/1004linux中df命令的输入清单的第1列是代表文件系统对应的设施文件的路径名(个别是硬盘上的分区);第2列给出分区蕴含的数据块(1024字节)的数目;第3,4列别离示意已用的和可用的数据块数目。用户兴许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了大量空间供系统管理员应用。即便遇到普通用户空间已满的状况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use% 列示意普通用户空间应用的百分比,即便这一数字达到100%,分区依然留有系统管理员应用的空间。最初,Mounted on列示意文件系统的挂载点。以inode模式来显示磁盘应用状况> df -iFilesystem Inodes IUsed IFree IUse% Mounted ondevtmpfs 2030558 372 2030186 1% /devtmpfs 2033192 4 2033188 1% /dev/shmtmpfs 2033192 662 2032530 1% /runtmpfs 2033192 16 2033176 1% /sys/fs/cgroup/dev/vda1 19476336 154836 19321500 1% //dev/vdb1 13107200 323757 12783443 3% /datatmpfs 2033192 1 2033191 1% /run/user/0tmpfs 2033192 1 2033191 1% /run/user/1004显示指定类型磁盘> df -t ext4Filesystem 1K-blocks Used Available Use% Mounted on/dev/vdb1 206291944 20278964 175510888 11% /data打印除ext4外所有的文件系统> df -x ext4Filesystem 1K-blocks Used Available Use% Mounted ondevtmpfs 8122232 0 8122232 0% /devtmpfs 8132768 16 8132752 1% /dev/shmtmpfs 8132768 808464 7324304 10% /runtmpfs 8132768 0 8132768 0% /sys/fs/cgroup/dev/vda1 41921520 32260804 9660716 77% /tmpfs 1626556 0 1626556 0% /run/user/0tmpfs 1626556 0 1626556 0% /run/user/1004列出各文件系统的i节点应用状况> df -iaFilesystem Inodes IUsed IFree IUse% Mounted onsysfs 0 0 0 - /sysproc 0 0 0 - /procdevtmpfs 2030558 372 2030186 1% /devsecurityfs 0 0 0 - /sys/kernel/securitytmpfs 2033192 4 2033188 1% /dev/shmdevpts 0 0 0 - /dev/ptstmpfs 2033192 662 2032530 1% /runtmpfs 2033192 16 2033176 1% /sys/fs/cgroupcgroup 0 0 0 - /sys/fs/cgroup/systemdpstore 0 0 0 - /sys/fs/pstorecgroup 0 0 0 - /sys/fs/cgroup/perf_eventcgroup 0 0 0 - /sys/fs/cgroup/net_cls,net_priocgroup 0 0 0 - /sys/fs/cgroup/pidscgroup 0 0 0 - /sys/fs/cgroup/devicescgroup 0 0 0 - /sys/fs/cgroup/freezercgroup 0 0 0 - /sys/fs/cgroup/blkiocgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacctcgroup 0 0 0 - /sys/fs/cgroup/hugetlbcgroup 0 0 0 - /sys/fs/cgroup/memorycgroup 0 0 0 - /sys/fs/cgroup/cpusetconfigfs 0 0 0 - /sys/kernel/config/dev/vda1 19476376 154836 19321540 1% /systemd-1 - - - - /proc/sys/fs/binfmt_miscmqueue 0 0 0 - /dev/mqueuedebugfs 0 0 0 - /sys/kernel/debughugetlbfs 0 0 0 - /dev/hugepages/dev/vdb1 13107200 323757 12783443 3% /datatmpfs 2033192 1 2033191 1% /run/user/0binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misctmpfs 2033192 1 2033191 1% /run/user/1004列出文件系统类型> df -TFilesystem Type 1K-blocks Used Available Use% Mounted ondevtmpfs devtmpfs 8122232 0 8122232 0% /devtmpfs tmpfs 8132768 16 8132752 1% /dev/shmtmpfs tmpfs 8132768 808464 7324304 10% /runtmpfs tmpfs 8132768 0 8132768 0% /sys/fs/cgroup/dev/vda1 xfs 41921520 32261336 9660184 77% //dev/vdb1 ext4 206291944 20278972 175510880 11% /datatmpfs tmpfs 1626556 0 1626556 0% /run/user/0tmpfs tmpfs 1626556 0 1626556 0% /run/user/1004以更易读的形式显示目前磁盘空间和应用状况> df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 7.8G 0 7.8G 0% /devtmpfs 7.8G 16K 7.8G 1% /dev/shmtmpfs 7.8G 790M 7.0G 10% /runtmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup/dev/vda1 40G 31G 9.3G 77% //dev/vdb1 197G 20G 168G 11% /datatmpfs 1.6G 0 1.6G 0% /run/user/0tmpfs 1.6G 0 1.6G 0% /run/user/1004> df -HFilesystem Size Used Avail Use% Mounted ondevtmpfs 8.4G 0 8.4G 0% /devtmpfs 8.4G 17k 8.4G 1% /dev/shmtmpfs 8.4G 828M 7.6G 10% /runtmpfs 8.4G 0 8.4G 0% /sys/fs/cgroup/dev/vda1 43G 34G 9.9G 77% //dev/vdb1 212G 21G 180G 11% /datatmpfs 1.7G 0 1.7G 0% /run/user/0tmpfs 1.7G 0 1.7G 0% /run/user/1004> df -lhFilesystem Size Used Avail Use% Mounted ondevtmpfs 7.8G 0 7.8G 0% /devtmpfs 7.8G 16K 7.8G 1% /dev/shmtmpfs 7.8G 790M 7.0G 10% /runtmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup/dev/vda1 40G 31G 9.3G 77% //dev/vdb1 197G 20G 168G 11% /datatmpfs 1.6G 0 1.6G 0% /run/user/0tmpfs 1.6G 0 1.6G 0% /run/user/1004> df -kFilesystem 1K-blocks Used Available Use% Mounted ondevtmpfs 8122232 0 8122232 0% /devtmpfs 8132768 16 8132752 1% /dev/shmtmpfs 8132768 808464 7324304 10% /runtmpfs 8132768 0 8132768 0% /sys/fs/cgroup/dev/vda1 41921520 32259084 9662436 77% //dev/vdb1 206291944 20278972 175510880 11% /datatmpfs 1626556 0 1626556 0% /run/user/0tmpfs 1626556 0 1626556 0% /run/user/1004-h更具目前磁盘空间和应用状况 以更易读的形式显示-H根下面的-h参数雷同,不过在根式化的时候,采纳1000而不是1024进行容量转换-k以单位显示磁盘的应用状况-l显示本地的分区的磁盘空间使用率,如果服务器nfs了近程服务器的磁盘,那么在df上加上-l后零碎显示的是过滤nsf驱动器后的后果-i显示inode的应用状况。linux采纳了相似指针的形式治理磁盘空间隐射.这也是一个比拟要害利用原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

January 13, 2022 · 3 min · jiezi