首页 文章 精选 留言 我的

精选列表

搜索[AI运维],共10000篇文章
优秀的个人博客,低调大师

新来的运维这样用HDFS,CIO都懵了···

摘要:本文主要研究了HDFS文件系统的读写流程以及基于MRS在windows客户端下读写HDFS文件的实现。 HDFS(Hadoop分布式文件系统)是Apache Hadoop项目的一个子项目。 HDFS支持海量数据的存储,允许用户把成百上千的计算机组成存储集群,其中的每一台计算机称为一个节点。用户通过HDFS的终端命令可以操作其中的文件和目录,如同操作本地文件系统(如Linux)中的文件一样。用户也可以通过HDFS API或MapReduce来编程访问其中的文件数据。 本文主要研究了HDFS文件系统的读写流程以及基于MRS在windows客户端下读写HDFS文件的实现。 1. HDFS的架构和元数据 1.1 HDFS采用master/slaves主从结构模型管理数据,结构模型图如下 1.2 元数据的相关概念 Fsimage:文件系统映射文件,也是元数据的镜像文件(磁盘中),存储某段时间namenode内存元数据信息 Edits log:操作日志文件 1.3 元数据的工作特点 (1) namenode始终在内存中存储元数据,使得“读操作”更加快 (2)写请求时,向edits文件写入日志,成功返回后才修改内存,并向客户端返回 (3) NameNode内存中存储的是=fsimage+edits 2. 文件的读写流程 2.1 文件的读取流程 1)客户端Client调用FileSystem的open(),返回FSDataInputStream对象给客户端.DistributeFileSystem对象通过RPC和NameNode通信,查询元数据信息,确定文件路径是否存在以及检查权限,返回这个文件的数据块位置列表(数据块位置是有先后顺序) 2)客户通过FSDataInputStream read()方法读取数据.FSDataInputStream对象按照数据块位置优先顺序建立一条连接,读取数据.当此数据块读取完毕后,FSDataInputStream对象关闭和此数据节点的连接,然后继续按照优先顺序建立下一个数据块连接,读取数据…….在据读取过程中,如果客户端在与数据节点通信时出现错误,则会尝试读取包含有此数据块的下一个数据节点,并且失败的数据节点会被记录,以后不会再连接 3)当数据读取完毕后,调用FSDataInputStream对象的close()函数。 2.2 文件的写入流程 1)客户端Client调用FileSystem的create()函数,返回FSDataOutputStream对象给客户端DistributedFileSystem对象通过RPC与namenode通信,确定文件存在不存在以及是否有创建文件的权限,先将操作写入log,再载入内存,将DataNode列表返回 2) 客户端通过FSDataOutputStream对象,写数据.FSDataOutputStream对象将数据按照128M分成块,写入Data Queue.然后将DataNode列表和Data Queue通过DataNode列表一同发送给最近的DataNode.这样之后client端和NameNode分配的多个DataNode构成pipeline管道.client每次向第一个DataNode写入一个packet,这个packet便会直接在pipeline里传给第二个、第三个DataNode.每个DataNode写完一个块后,会返回确认信息. FSDataoutputStream将确认信息保存在ACK Queue.所有的数据块写入pipeline中的数据节点,并且ACK Queue成功返回. 3) FSDataOutputStream对象close()方法关闭流.通知元数据节点写入完毕 3. 基于华为云MRS windows下读写HDFS的实现 3.1 创建2.1.0非安全集群 3.2 安全组规则入方向放开windows 客户端ip和所有端口 3.3 为集群的各个节点绑定弹性ip 3.4 将弹性ip和集群节点主机名写入windows的hosts文件 3.5 打开https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-2.1,将样例代码下载下来,然后是idea打开hdfs-examples项目 3.6 在huawei下面创建test文件夹,并且Test.java文件放到这个文件夹内 3.7 从集群下载配置文件,置于项目conf文件夹下 3.8 将下面配置配置于hdfs-site.xml中 <property> <name>dfs.client.use.datanode.hostname</name> <value>true</value> </property> 3.9 idea执行程序,执行结果如下 附件下载: Test.rar1.06KB 文档.docx455.30KB 本文分享自华为云社区《HDFS读写原理和代码简单实现》,原文作者:剑指南天 。 点击关注,第一时间了解华为云新鲜技术~

优秀的个人博客,低调大师

Linux 企业运维人员最常用 150 个命令汇总

命令 功能说明 线上查询及帮助命令 (2 个) man 查看命令帮助,命令的词典,更复杂的还有 info,但不常用。 help 查看 Linux 内置命令的帮助,比如 cd 命令。 文件和目录操作命令 (18 个) ls 全拼 list,功能是列出目录的内容及其内容属性信息。 cd 全拼 change directory,功能是从当前工作目录切换到指定的工作目录。 cp 全拼 copy,其功能为复制文件或目录。 find 查找的意思,用于查找目录及目录下的文件。 mkdir 全拼 make directories,其功能是创建目录。 mv 全拼 move,其功能是移动或重命名文件。 pwd 全拼 print working directory,其功能是显示当前工作目录的绝对路径。 rename 用于重命名文件。 rm 全拼 remove,其功能是删除一个或多个文件或目录。 rmdir 全拼 remove empty directories,功能是删除空目录。 touch 创建新的空文件,改变已有文件的时间戳属性。 tree 功能是以树形结构显示目录下的内容。 basename 显示文件名或目录名。 dirname 显示文件或目录路径。 chattr 改变文件的扩展属性。 lsattr 查看文件扩展属性。 file 显示文件的类型。 md5sum 计算和校验文件的 MD5 值。 查看文件及内容处理命令(21 个) cat 全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。 tac tac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。 more 分页显示文件内容。 less 分页显示文件内容,more 命令的相反用法。 head 显示文件内容的头部。 tail 显示文件内容的尾部。 cut 将文件的每一行按指定分隔符分割并输出。 split 分割文件为不同的小片段。 paste 按行合并文件内容。 sort 对文件的文本内容排序。 uniq 去除重复行。oldboy wc 统计文件的行数、单词数或字节数。 iconv 转换文件的编码格式。 dos2unix 将 DOS 格式文件转换成 UNIX 格式。 diff 全拼 difference,比较文件的差异,常用于文本文件。 vimdiff 命令行可视化文件比较工具,常用于文本文件。 rev 反向输出文件内容。 grep/egrep 过滤字符串,三剑客老三。 join 按两个文件的相同字段合并。 tr 替换或删除字符。 vi/vim 命令行文本编辑器。 文件压缩及解压缩命令(4 个) tar 打包压缩。oldboy unzip 解压文件。 gzip gzip 压缩工具。 zip 压缩工具。 信息显示命令(11 个) uname 显示操作系统相关信息的命令。 hostname 显示或者设置当前系统的主机名。 dmesg 显示开机信息,用于诊断系统故障。 uptime 显示系统运行时间及负载。 stat 显示文件或文件系统的状态。 du 计算磁盘空间使用情况。 df 报告文件系统磁盘空间的使用情况。 top 实时显示系统资源使用情况。 free 查看系统内存。 date 显示与设置系统时间。 cal 查看日历等时间信息。 搜索文件命令(4 个) which 查找二进制命令,按环境变量 PATH 路径查找。 find 从磁盘遍历查找文件或目录。 whereis 查找二进制命令,按环境变量 PATH 路径查找。 locate 从数据库(/var/lib/mlocate/mlocate.db)查找命令,使用 updatedb 更新库。 用户管理命令(10 个) useradd 添加用户。 usermod 修改系统已经存在的用户属性。 userdel 删除用户。 groupadd 添加用户组。 passwd 修改用户密码。 chage 修改用户密码有效期限。 id 查看用户的 uid,gid 及归属的用户组。 su 切换用户身份。 visudo 编辑 / etc/sudoers 文件的专属命令。 sudo 以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令。 基础网络操作命令(11 个) telnet 使用 TELNET 协议远程登录。 ssh 使用 SSH 加密协议远程登录。 scp 全拼 secure copy,用于不同主机之间复制文件。 wget 命令行下载文件。 ping 测试主机之间网络的连通性。 route 显示和设置 linux 系统的路由表。 ifconfig 查看、配置、启用或禁用网络接口的命令。 ifup 启动网卡。 ifdown 关闭网卡。 netstat 查看网络状态。 ss 查看网络状态。 深入网络操作命令(9 个) nmap 网络扫描命令。 lsof 全名 list open files,也就是列举系统中已经被打开的文件。 mail 发送和接收邮件。 mutt 邮件管理命令。 nslookup 交互式查询互联网 DNS 服务器的命令。 dig 查找 DNS 解析过程。 host 查询 DNS 的命令。 traceroute 追踪数据传输路由状况。 tcpdump 命令行的抓包工具。 有关磁盘与文件系统的命令(16 个) mount 挂载文件系统。 umount 卸载文件系统。 fsck 检查并修复 Linux 文件系统。 dd 转换或复制文件。 dumpe2fs 导出 ext2/ext3/ext4 文件系统信息。 dump ext2/3/4 文件系统备份工具。 fdisk 磁盘分区命令,适用于 2TB 以下磁盘分区。 parted 磁盘分区命令,没有磁盘大小限制,常用于 2TB 以下磁盘分区。 mkfs 格式化创建 Linux 文件系统。 partprobe 更新内核的硬盘分区表信息。 e2fsck 检查 ext2/ext3/ext4 类型文件系统。 mkswap 创建 Linux 交换分区。 swapon 启用交换分区。 swapoff 关闭交换分区。 sync 将内存缓冲区内的数据写入磁盘。 resize2fs 调整 ext2/ext3/ext4 文件系统大小。 系统权限及用户授权相关命令(4 个) chmod 改变文件或目录权限。 chown 改变文件或目录的属主和属组。 chgrp 更改文件用户组。 umask 显示或设置权限掩码。 查看系统用户登陆信息的命令(7 个) whoami 显示当前有效的用户名称,相当于执行 id -un 命令。 who 显示目前登录系统的用户信息。 w 显示已经登陆系统的用户列表,并显示用户正在执行的指令。 last 显示登入系统的用户。 lastlog 显示系统中所有用户最近一次登录信息。 users 显示当前登录系统的所有用户的用户列表。 finger 查找并显示用户信息。 内置命令及其它(19 个) echo 打印变量,或直接输出指定的字符串 printf 将结果格式化输出到标准输出。 rpm 管理 rpm 包的命令。 yum 自动化简单化地管理 rpm 包的命令。 watch 周期性的执行给定的命令,并将命令的输出以全屏方式显示。 alias 设置系统别名。 unalias 取消系统别名。 date 查看或设置系统时间。 clear 清除屏幕,简称清屏。 history 查看命令执行的历史纪录。 eject 弹出光驱。 time 计算命令执行时间。 nc 功能强大的网络工具。 xargs 将标准输入转换成命令行参数。 exec 调用并执行指令的命令。 export 设置或者显示环境变量。 unset 删除变量或函数。 type 用于判断另外一个命令是否是内置命令。 bc 命令行科学计算器 系统管理与性能监视命令 (9 个) chkconfig 管理 Linux 系统开机启动项。 vmstat 虚拟内存统计。 mpstat 显示各个可用 CPU 的状态统计。 iostat 统计系统 IO。 sar 全面地获取系统的 CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU 中断和网络等性能数据。 ipcs 用于报告 Linux 中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。 ipcrm 用来删除一个或更多的消息队列、信号量集或者共享内存标识。 strace 用于诊断、调试 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 ltrace 命令会跟踪进程的库函数调用, 它会显现出哪个库函数被调用。 关机 / 重启 / 注销和查看系统信息的命令(6 个) shutdown 关机。 halt 关机。 poweroff 关闭电源。 logout 退出当前登录的 Shell。 exit 退出当前登录的 Shell。 Ctrl+d 退出当前登录的 Shell 的快捷键。 进程管理相关命令(15 个) bg 将一个在后台暂停的命令,变成继续执行(在后台执行)。 fg 将后台中的命令调至前台继续运行。 jobs 查看当前有多少在后台运行的命令。 kill 终止进程。 killall 通过进程名终止进程。 pkill 通过进程名终止进程。 crontab 定时任务命令。 ps 显示进程的快照。 pstree 树形显示进程。 nice/renice 调整程序运行的优先级。 nohup 忽略挂起信号运行指定的命令。 pgrep 查找匹配条件的进程。 runlevel 查看系统当前运行级别。 init 切换运行级别。 service 启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

优秀的个人博客,低调大师

运维人员使用wireshark抓包详细图文教程

wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。 为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。 wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler,其他协议比如TCP,UDP 就用wireshark. Wireshark(网络嗅探抓包工具) v1.4.9 中文版(包含中文手册+主界面的操作菜单)评分: 2.7 类别: 远程监控 大小:22M 语言: 中文 查看详细信息 >> wireshark 开始抓包 开始界面 wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。 点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击"Start"按钮, 开始抓包 Wireshark 窗口介绍 WireShark 主要分为这几个界面 1. Display Filter(显示过滤器), 用于过滤 2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表 3. Packet Details Pane(封包详细信息), 显示封包中的字段 4. Dissector Pane(16进制数据) 5. Miscellanous(地址栏,杂项) 第2页 Wireshark 显示过滤 使用过滤是非常重要的, 初学者使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。 过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。 过滤器有两种, 一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录 一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。 在Capture -> Capture Filters 中设置 保存过滤 在Filter栏上,填好Filter的表达式后,点击Save按钮, 取个名字。比如"Filter 102", Filter栏上就多了个"Filter 102" 的按钮。 过滤表达式的规则 表达式规则 1. 协议过滤 比如TCP,只显示TCP协议。 2. IP 过滤 比如 ip.src ==192.168.1.102 显示源地址为192.168.1.102, ip.dst==192.168.1.102, 目标地址为192.168.1.102 3. 端口过滤 tcp.port ==80, 端口为80的 tcp.srcport == 80, 只显示TCP协议的愿端口为80的。 4. Http模式过滤 http.request.method=="GET", 只显示HTTP GET方法的。 5. 逻辑运算符为 AND/ OR 常用的过滤表达式 过滤表达式 用途 http 只查看HTTP协议的记录 ip.src ==192.168.1.102 or ip.dst==192.168.1.102 源地址或者目标地址是192.168.1.102 封包列表(Packet List Pane) 封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。 你可以看到不同的协议用了不同的颜色显示。 你也可以修改这些显示颜色的规则, View ->Coloring Rules. 封包详细信息 (Packet Details Pane) 这个面板是我们最重要的,用来查看协议中的每一个字段。 各行信息分别为 Frame:物理层的数据帧概况 EthernetII:数据链路层以太网帧头部信息 Internet Protocol Version 4:互联网层IP包头部信息 Transmission Control Protocol:传输层T的数据段头部信息,此处是TCP Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议 第3页 wireshark与对应的OSI七层模型 TCP包的具体内容 从下图可以看到wireshark捕获到的TCP包中的每个字段。 第4页 实例分析TCP三次握手过程 看到这, 基本上对wireshak有了初步了解, 现在我们看一个TCP三次握手的实例 三次握手过程为 这图我都看过很多遍了, 这次我们用wireshark实际分析下三次握手的过程。 打开wireshark, 打开浏览器输入http://www.cr173.com 在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream", 这样做的目的是为了得到与浏览器打开网站相关的数据包,将得到如下图 图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。 第一次握手数据包 客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图 第二次握手的数据包 服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图 第三次握手的数据包 客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图: 就这样通过了TCP三次握手,建立了连接

优秀的个人博客,低调大师

CentOS企业运维人员最常用150个命令汇总

命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用。 help 查看Linux内置命令的帮助,比如cd命令。 文件和目录操作命令(18个) ls 全拼list,功能是列出目录的内容及其内容属性信息。 cd 全拼change directory,功能是从当前工作目录切换到指定的工作目录。 cp 全拼copy,其功能为复制文件或目录。 find 查找的意思,用于查找目录及目录下的文件。 mkdir 全拼make directories,其功能是创建目录。 mv 全拼move,其功能是移动或重命名文件。 pwd 全拼print working directory,其功能是显示当前工作目录的绝对路径。 rename 用于重命名文件。 rm 全拼remove,其功能是删除一个或多个文件或目录。 rmdir 全拼remove empty directories,功能是删除空目录。 touch 创建新的空文件,改变已有文件的时间戳属性。 tree 功能是以树形结构显示目录下的内容。 basename 显示文件名或目录名。 dirname 显示文件或目录路径。 chattr 改变文件的扩展属性。 lsattr 查看文件扩展属性。 file 显示文件的类型。 md5sum 计算和校验文件的MD5值。 查看文件及内容处理命令(21个) cat 全拼concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。 tac tac是cat的反向拼写,因此命令的功能为反向显示文件内容。 more 分页显示文件内容。 less 分页显示文件内容,more命令的相反用法。 head 显示文件内容的头部。 tail 显示文件内容的尾部。 cut 将文件的每一行按指定分隔符分割并输出。 split 分割文件为不同的小片段。 paste 按行合并文件内容。 sort 对文件的文本内容排序。 uniq 去除重复行。oldboy wc 统计文件的行数、单词数或字节数。 iconv 转换文件的编码格式。 dos2unix 将DOS格式文件转换成UNIX格式。 diff 全拼difference,比较文件的差异,常用于文本文件。 vimdiff 命令行可视化文件比较工具,常用于文本文件。 rev 反向输出文件内容。 grep/egrep 过滤字符串,三剑客老三。 join 按两个文件的相同字段合并。 tr 替换或删除字符。 vi/vim 命令行文本编辑器。 文件压缩及解压缩命令(4个) tar 打包压缩。oldboy unzip 解压文件。 gzip gzip压缩工具。 zip 压缩工具。 信息显示命令(11个) uname 显示操作系统相关信息的命令。 hostname 显示或者设置当前系统的主机名。 dmesg 显示开机信息,用于诊断系统故障。 uptime 显示系统运行时间及负载。 stat 显示文件或文件系统的状态。 du 计算磁盘空间使用情况。 df 报告文件系统磁盘空间的使用情况。 top 实时显示系统资源使用情况。 free 查看系统内存。 date 显示与设置系统时间。 cal 查看日历等时间信息。 搜索文件命令(4个) which 查找二进制命令,按环境变量PATH路径查找。 find 从磁盘遍历查找文件或目录。 whereis 查找二进制命令,按环境变量PATH路径查找。 locate 从数据库(/var/lib/mlocate/mlocate.db)查找命令,使用updatedb更新库。 用户管理命令(10个) useradd 添加用户。 usermod 修改系统已经存在的用户属性。 userdel 删除用户。 groupadd 添加用户组。 passwd 修改用户密码。 chage 修改用户密码有效期限。 id 查看用户的uid,gid及归属的用户组。 su 切换用户身份。 visudo 编辑/etc/sudoers文件的专属命令。 sudo 以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令。 基础网络操作命令(11个) telnet 使用TELNET协议远程登录。 ssh 使用SSH加密协议远程登录。 scp 全拼secure copy,用于不同主机之间复制文件。 wget 命令行下载文件。 ping 测试主机之间网络的连通性。 route 显示和设置linux系统的路由表。 ifconfig 查看、配置、启用或禁用网络接口的命令。 ifup 启动网卡。 ifdown 关闭网卡。 netstat 查看网络状态。 ss 查看网络状态。 深入网络操作命令(9个) nmap 网络扫描命令。 lsof 全名list open files,也就是列举系统中已经被打开的文件。 mail 发送和接收邮件。 mutt 邮件管理命令。 nslookup 交互式查询互联网DNS服务器的命令。 dig 查找DNS解析过程。 host 查询DNS的命令。 traceroute 追踪数据传输路由状况。 tcpdump 命令行的抓包工具。 有关磁盘与文件系统的命令(16个) mount 挂载文件系统。 umount 卸载文件系统。 fsck 检查并修复Linux文件系统。 dd 转换或复制文件。 dumpe2fs 导出ext2/ext3/ext4文件系统信息。 dump ext2/3/4文件系统备份工具。 fdisk 磁盘分区命令,适用于2TB以下磁盘分区。 parted 磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区。 mkfs 格式化创建Linux文件系统。 partprobe 更新内核的硬盘分区表信息。 e2fsck 检查ext2/ext3/ext4类型文件系统。 mkswap 创建Linux交换分区。 swapon 启用交换分区。 swapoff 关闭交换分区。 sync 将内存缓冲区内的数据写入磁盘。 resize2fs 调整ext2/ext3/ext4文件系统大小。 系统权限及用户授权相关命令(4个) chmod 改变文件或目录权限。 chown 改变文件或目录的属主和属组。 chgrp 更改文件用户组。 umask 显示或设置权限掩码。 查看系统用户登陆信息的命令(7个) whoami 显示当前有效的用户名称,相当于执行id -un命令。 who 显示目前登录系统的用户信息。 w 显示已经登陆系统的用户列表,并显示用户正在执行的指令。 last 显示登入系统的用户。 lastlog 显示系统中所有用户最近一次登录信息。 users 显示当前登录系统的所有用户的用户列表。 finger 查找并显示用户信息。 内置命令及其它(19个) echo 打印变量,或直接输出指定的字符串 printf 将结果格式化输出到标准输出。 rpm 管理rpm包的命令。 yum 自动化简单化地管理rpm包的命令。 watch 周期性的执行给定的命令,并将命令的输出以全屏方式显示。 alias 设置系统别名。 unalias 取消系统别名。 date 查看或设置系统时间。 clear 清除屏幕,简称清屏。 history 查看命令执行的历史纪录。 eject 弹出光驱。 time 计算命令执行时间。 nc 功能强大的网络工具。 xargs 将标准输入转换成命令行参数。 exec 调用并执行指令的命令。 export 设置或者显示环境变量。 unset 删除变量或函数。 type 用于判断另外一个命令是否是内置命令。 bc 命令行科学计算器 系统管理与性能监视命令(9个) chkconfig 管理Linux系统开机启动项。 vmstat 虚拟内存统计。 mpstat 显示各个可用CPU的状态统计。 iostat 统计系统IO。 sar 全面地获取系统的CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断和网络等性能数据。 ipcs 用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。 ipcrm 用来删除一个或更多的消息队列、信号量集或者共享内存标识。 strace 用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 ltrace 命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。 关机/重启/注销和查看系统信息的命令(6个) shutdown 关机。 halt 关机。 poweroff 关闭电源。 logout 退出当前登录的Shell。 exit 退出当前登录的Shell。 Ctrl+d 退出当前登录的Shell的快捷键。 进程管理相关命令(15个) bg 将一个在后台暂停的命令,变成继续执行(在后台执行)。 fg 将后台中的命令调至前台继续运行。 jobs 查看当前有多少在后台运行的命令。 kill 终止进程。 killall 通过进程名终止进程。 pkill 通过进程名终止进程。 crontab 定时任务命令。 ps 显示进程的快照。 pstree 树形显示进程。 nice/renice 调整程序运行的优先级。 nohup 忽略挂起信号运行指定的命令。 pgrep 查找匹配条件的进程。 runlevel 查看系统当前运行级别。 init 切换运行级别。 service 启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

优秀的个人博客,低调大师

Centos运维管理员常用命令大全

1.删除0字节文件 find-type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 PS-e -o "%C : %p : %z : %a"|sort -k5 -nr 3.按cpu利用率从大到小排列 ps-e -o "%C : %p : %z : %a"|sort -nr 4.打印说cache里的URL grep -r-a jpg /data/cache/* | strings | grep"http:" | awk -F'http:' '{print "http:"$2;}' 5.查看http的并发请求数及其TCP连接状态: netstat-n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 6. sed -i'/Root/s/no/yes/' /etc/ssh/sshd_configsed在这个文里Root的一行,匹配Root一行,将no替换成yes. 7.1.如何杀掉mysql进程: ps aux|grep mysql |grep -v grep |awk '{print$2}' |xargs kill -9 (从中了解到awk的用途) killall -TERMmysqld kill -9`cat /usr/local/apache2/logs/httpd.pid`试试查杀进程PID 8.显示运行3级别开启的服务: ls/etc/rc3.d/S* |cut -c 15- (从中了解到cut的用途,截取数据) 9.如何在编写SHELL显示多个信息,用EOF cat<< EOF +--------------------------------------------------------------+ | === Welcome to Tunoff services === | +--------------------------------------------------------------+ EOF 10. for 的巧用(如给mysql建软链接) cd/usr/local/mysql/bin for i in* do ln/usr/local/mysql/bin/$i /usr/bin/$i done 11. 取IP地址: ifconfigeth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6- 或者 ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' |cut -d: -f2 | awk '{ print $1}' 12.内存的大小: free -m|grep "Mem" | awk '{print $2}' 13. netstat-an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s%s\n",$5,$6}' | sort 14.查看Apache的并发请求数及其TCP连接状态: netstat-n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 15.因为同事要统计一下服务器下面所有的jpg的文件的大小,写了个shell给他来统计.原来用xargs实现,但他一次处理一部分,搞的有多个总和....,下面的命令就能解决啦. find /-name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}' CPU的数量(多核算多个CPU,cat/proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。 16 CPU负载 # cat /proc/loadavg 检查前三个输出值是否超过了系统逻辑CPU的4倍。 18 CPU负载 #mpstat 1 1 检查%idle是否过低(比如小于5%) 19 内存空间 # free 检查free值是否过低 也可以用 # cat/proc/meminfo 20 swap空间 # free 检查swap used值是否过高 如果swap used值过高,进一步检查swap动作是否频繁: # vmstat1 5 观察si和so值是否较大 21 磁盘空间 # df -h 检查是否有分区使用率(Use%)过高(比如超过90%) 如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录: # du -cks* | sort -rn | head -n 10 22 磁盘I/O负载 # iostat -x 1 2 检查I/O使用率(%util)是否超过100% 23 网络负载 # sar -n DEV 检查网络流量(rxbyt/s,txbyt/s)是否过高 24 网络错误 # netstat -i 检查是否有网络错误(drop fifocolls carrier) 也可以用命令:# cat/proc/net/dev 25 网络连接数目 # netstat -an | grep -E “^(tcp)” | cut -c68- | sort | uniq -c | sort -n 26 进程总数 # ps aux | wc -l 检查进程个数是否正常 (比如超过250) 27 可运行进程数目 # vmwtat 1 5 列给出的是可运行进程的数目,检查其是否超过系统逻辑CPU的4倍 28 进程 # top -id 1 观察是否有异常进程出现 29 网络状态 检查DNS, 网关等是否可以正常连通 30 用户 # who | wc -l 检查登录用户是否过多 (比如超过50个) 也可以用命令:# uptime 31 系统日志 # cat /var/log/rflogview/*errors 检查是否有异常错误记录 也可以搜寻一些异常关键字,例如: # grep -ierror /var/log/messages # grep -ifail /var/log/messages 32 核心日志 # dmesg 检查是否有异常错误记录 33 系统时间 # date 检查系统时间是否正确 34 打开文件数目 # lsof | wc -l 检查打开文件总数是否过多 35 日志 # logwatch –print 配置/etc/log.d/logwatch.conf,将 Mailto 设置为自己的email 地址,启动mail服务(sendmail或者postfix),这样就可以每天收到日志报告了。 缺省logwatch只报告昨天的日志,可以用#logwatch –print –range all 获得所有的日志分析结果。 可以用# logwatch –print –detail high 获得更具体的日志分析结果(而不仅仅是出错日志)。 36.杀掉80端口相关的进程 lsof -i:80|grep -v "ID"|awk '{print "kill -9",$2}'|sh 37.清除僵死进程。 ps -eal |awk '{ if ($2 == "Z") {print $4}}' | kill -9 38.tcpdump抓包 ,用来防止80端口被人攻击时可以分析数据 # tcpdump-c 10000 -i eth0 -n dst port 80 > /root/pkts 39.然后检查IP的重复数 并从小到大排序 注意 "-t\ +0" 中间是两个空格 # lesspkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk{'printf $1" "$2"\n"'} | sort -n -t\ +0 40.查看有多少个活动的php-cgi进程 netstat-anp | grep php-cgi | grep ^tcp | wc -l 41.查看系统自启动的服务 chkconfig--list | awk '{if ($5=="3:on") print $1}' 42.kudzu查看网卡型号 kudzu--probe --class=network 匹配中文字符的正则表达式:[\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*?/> 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 匹配首尾空白字符的正则表达式:^\s*|\s*$ 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 评注:表单验证时很实用 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7} 评注:匹配形式如 0511-4405222或 021-87888822 匹配腾讯QQ号:[1-9][0-9]{4,} 评注:腾讯QQ号从10000开始 匹配中国邮政编码:[1-9]\d{5}(?!\d) 评注:中国邮政编码为6位数字 匹配身份证:\d{15}|\d{18} 评注:中国的身份证为15位或18位 匹配ip地址:\d+\.\d+\.\d+\.\d+ 评注:提取ip地址时有用 匹配特定数字: ^[1-9]\d*$ //匹配正整数 ^-[1-9]\d*$ //匹配负整数 ^-?[1-9]\d*$ //匹配整数 ^[1-9]\d*|0$ //匹配非负整数(正整数 +0) ^-[1-9]\d*|0$ //匹配非正整数(负整数 +0) ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数 ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数+ 0) ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数+ 0) 评注:处理大量数据时有用,具体应用时注意修正 匹配特定字符串: ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串 ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串 ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 ^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串 评注:最基本也是最常用的一些表达式

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册