-
在centos7,RTC支持参数wakealarm(/sys/class/rtc/rtc0/wakealarm),可设置定时开关机。但是鲲鹏的/sys/class/rtc/rtc0/下没有wakealarm参数,是否不支持?
-
环境信息服务器型号:Taishan200 2280操作系统版本:openEuler 20.03LTS SP3架构:aarch64RAID卡型号: 9560-8i(SAS3908)磁盘阵列卡驱动更新流程1. 构建megaraid_sas驱动镜像文件驱动镜像文件构建方式请参考《openEuler 制作驱动镜像文件》2. 在服务器上挂载系统镜像文件3. 启动服务器,在进入安装选择界面时,选择”Install openEuler 20.03-LTS-SP3”,键盘按“e”进入grub配置界面,修改grub配置,添加“linux dd”,然后使用ctrl+x进入安装4. 进入dd交互模式,弹出系统镜像文件,插入驱动镜像文件5. 更新驱动,先输入”r”刷新镜像文件信息,输入“1”回车,可看到挂载的驱动镜像6. 升级驱动输入“1”回车选择驱动,再输入“c”回车升级驱动7. 升级完成后,弹出驱动镜像文件,挂载系统镜像文件,继续安装系统先输入”r”刷新镜像文件信息,出现系统镜像文件信息后,输入”c”继续安装系统8. 进行系统安装配置,选择硬盘、配置网络9. 完成配置后安装系统10. 重启进入openEuler 20.03LTS SP3
smart_bubble
发表于2022-10-29 11:20:17
2022-10-29 11:20:17
最后回复
yd_244680778
2022-12-13 13:15:56
1259 1 -
1.官网下载驱动源码包地址:https://www.intel.com/content/www/us/en/download/18026/intel-network-adapter-driver-for-pcie-40-gigabit-ethernet-network-connections-under-linux.html环境 openeuler22.03-LTS x86 aarch642.tar -xvf i40e-2.20.12.tar.gz3.把附件中的文件替换解压出来的文件路径 i40e_ethtool.c i40e-2.20.12/src/auxiliary_bus.h i40e-2.20.12/src/linux4.cd i40e-2.20.12/src/5.make install
-
intel ice驱动1.9.11 版本在openeuler20.03-LTS-SP3 aarch64无法直接编译安装,需要按照以下步骤操作环境 openeuler20.03-LTS-SP3 aarch641.intel官网下载驱动链接:https://downloadmirror.intel.com/738725/ice-1.9.11.tar.gz2.解压软件包tar -xvf ice-1.9.11.tar.gz3.cd ice-1.9.11/src替换这个文件(文件在附件中)ice_ptp.c 路径 ice-1.9.11/src4.cd ice-1.9.11/src5.make install6.查看新驱动 modinfo ice|more
-
华为开源镜像站的Ubuntu镜像界面里sources.list文件的更新是通过sed工具实现如果之前对官方sources.list进行过修改,比如改成过阿里云镜像站、清华镜像站,则sed工具操作会失败建议直接将包含华为镜像站连接的sources.list内容放出来,用户只需进行复制粘贴即可完成更新
-
rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。下面为一些常见的错误及解决方法问题1@ERROR: auth failed on module teersync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]解决方法服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。提供正确的用户名密码解决此问题。问题2@ERROR: Unknown module ‘tee_nonexists'rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]解决方法服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。问题3rsync: write failed on "/home/backup2010/wensong": No space left on device (28)rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7]rsync: connection unexpectedly closed (2721 bytes received so far) [generator]rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]解决方法磁盘空间不够,所以无法操作。可以通过df /home/backup2010 来查看可用空间和已用空间问题4password file must not be other-accessiblecontinuing without password filePassword:解决方法:这是因为rsyncd.pwd rsyncd.sec的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd问题5rsync: read error: Connection reset by peer (104)rsync error: error in rsync protocol data stream (code 12) at io.c(604) [sender=2.6.9]解决方法:原数据目录里没有数据存在
-
基础知识分享:vim编辑器的三种模式:一般模式、编辑模式和命令行模式。在一般模式中可以进行删除、复制和粘贴的功能,但是无法编辑文件内容。从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。按下Esc键可以回到一般模式。在一般模式中输入:、/、?三个中的任意一个可以将光标移到最下面的一行。在这个模式中可以提供查找数据的操作,而读取、保存、大量替换字符、离开vii、显示行号等操作则是在此模式中完成的。需要注意的是,编辑模式与命令行模式之间是不能互相切换的。下面列出平时用的最多的vi命令:移动光标的方法:[Ctrl]+[f]:屏幕向下移动一页,相当于[PageDown]按键。[Ctrl]+[b]:屏幕向上移动一页,相当于[PageUp]按键。0或功能键[Home]:移动到这一行的最前面字符处。$或功能键[End]:移动到这一行的最后面字符处。G:移动到这个文件的最后一行。gg:移动到这个文件的第一行,相当于1G.N[Enter]:N为数字,光标向下移动N行。查找和替换:/word:向下寻找一个名称为word的字符串。?word:向上寻找一个名称为word的字符串。:n1,n2s/word1/word2/g:在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2.:1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.:1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。删除、复制和粘贴:x,X:在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。dd:删除光标所在的一整行。ndd:删除光标所在的向下n行。yy:复制光标所在的一行。nyy:复制光标所在的向下n行。p,P:p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。u:复原前一个操作。[Ctrl]+r:重做上一个操作。.:小数点,重复前一个操作。一般模式切换到编辑模式:i,I:进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。a,A:进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。o,O:进入插入模式。o为在下一行插入。O为在上一行插入。r,R:进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。一般模式切换到命令行::w:将编辑的数据写入到硬盘中。:q:离开vi.后面加!为强制离开。:wq:保存后离开。:wq!为强制保存后离开。vim常用的环境设置参数命令如下::set nu 设置行号:set nonu 取消行号:set hlsearch 设置高亮度查找:set nohlsearch 取消高亮度查找:set backup 自动备份文件:setruler 开启右下角状态栏说明:set showmode 显示左下角的INSERT之类的状态栏:set backspace={0,1,2} 设置退格键功能。为2时可以删任意字符。为0或1时仅可以删除刚才输入的字符。:set all 显示目前所有的环境参数值:set 显示与系统默认值不同的参数值:syntax on/off 是否开启依据相关程序语法显示不同的颜色:set bg=dark/light 是否显示不同的颜色色调Redfish patch使用1、先使用get获取到需要修改信息的地方的ETag2、获取到ETag后,在headers上添加if-Mathch和Content-Type 两个KEY3、添加两个KEY后还需在body-->raw 添加你所需修改的信息4、编辑完成后点击send,然后再查看原信息是否修改成功
-
1.Linux中的使用场景我们在项目开发中,再编写好一个功能的接口后,可以通过postman或者apifox等可视化的工具来进行调用调试,但是我们也经常会碰到本地是无法访问服务器的情况(部署在内网等环境),这时候如果想要调用服务器上的接口方法,就需要在Linux环境下进行调用了,我们可以通过curl指令完成这一步的调用,本文中就对curl指令调用接口进行简单的归纳和总结。2.curl命令的简介curl是非常实用的命令行工具,它有这非常丰富的参数,使用curl命令可以用来完成与服务器之间的数据传输。我们可以根据需求的不同,添加对应的自带参数来完成我们想要的不同的效果。在Linux环境中使用curl命令进行接口测试,其实是利用curl对http协议发送Get或者Post或者Delete或者Put请求,同时还可以携带header头部信息来满足接口的特殊需求。 3.curl命令的语法和参数curl命令的语法是:curl[options] [URL…] curl命令的常用参数有:-X/–request [GET|POST|PUT|DELETE|…] 使用指定的http method发出 http request -H/–header 设定request里的header -i/–include 显示response的header -d/–data 设定 http parameters -v/–verbose 输出比较多的信息 -u/–user 使用者账号 -b/–cookie 使用cookie -k/–insecure 允许忽略证书进行 SSL 连接 还有很多参数本文中没有列举出来可以通过在Linux中执行“man curl”命令查看更多的参数描述或者访问官网链接https://curl.se/docs/manpage.html 进行查看。4.curl命令的使用4.1 get请求get请求,不带参数只会显示网页信息,用我们熟悉的百度来进行测试 调用curl的get命令curl http://www.baidu.com获取百度的网页信息 get请求,增加“-i”参数,用来显示页面内容和头部信息,调用curl指令为:curl -i http://www.baidu.com,很明显跟上面比起来多出了头部的信息,并且还显示出了网页的信息。get请求,带上“-I"或”–head"参数,用来仅仅显示请求头部信息,调用指令为curl -I http://www.baidu.com或者curl --head http://www.baidu.com,调用结果仅仅显示了头部信息,并没有显示网页信息等其他的东西,两种指令的调用结果都是一样的。通过“-v"或”–verbose"参数来显示http请求的通信过程,调用指令为curl -v http://www.baidu.com,调用结果显示出了通信的过程以及网页的信息。通过“-X"或”–request"参数可以发送指定请求,调用的指令为curl -X GET http://xxx/调用的get接口或者curl --request GET http://xx/调用的get接口,通过这种方法可以实现Linux中的Get方法的调用。还可以通过“-H"或”–header"参数来指定头部信息,调用指令为curl -H “xxx” http://www.baidu.com。post请求,通过-d”参数可以指定发送的请求参数,调用指令为curl -d ‘参数1=值1’ -d ‘参数2=值2’-X POST http://xxx/需要调用的接口,在使用-d情况下,默认为发送post请求,并且可以省略不写-X POST 刚刚的指令就可以改为curl -d ‘参数1=值1’ -d ‘参数2=值2 http://xxx/需要调用的接口。以上就是Linux中CURL的简单使用。
-
9 月 12 日,PyTorch 和 Linux 基金会双双在自家的官网宣布,PyTorch 已经正式加入 Linux 基金会的消息。PyTorch 最初由 Meta 的 AI 团队孵化,在以社区为中心的管理之下,PyTorch 现已发展成为一个由贡献者和用户组成的庞大社区。截至 2022 年 8 月,PyTorch 是世界上与 Linux 内核和 Kubernetes 并列的五个增长最快的开源软件社区之一。从 2021 年 8 月到 2022 年 8 月,PyTorch 统计了超过 6.5 万次提交. 超过 2400 名贡献者以提交问题或 PR 或编写文档的方式参与了这项工作。这些数字使 PyTorch 成为历史上最成功的开源项目之一。“很高兴 Linux 基金会将成为我们的新家,因为他们在支持像我们这样的大型开源项目(例如 Kubernetes 和 NodeJS)方面拥有丰富的经验。”PyTorch 联合创始人 Soumith Chintala 称。“PyTorch 通过良好的维护和开源社区管理达到了目前的状态。我们不会改变 PyTorch 的任何优点。”Linux 基金会称。“PyTorch 将通过加入 Linux 基金会加强其治理。”PyTorch 联合创始人 Soumith Chintala 称。PyTorch 是 Facebook 开发的用于训练神经网络的 Python 包,也是 Facebook 倾力打造的首选深度学习框架。在 2017 年 1 月首次推出,Facebook 人工智能研究院(FAIR)在 GitHub 上开源了 PyTorch,迅速占领了 GitHub 热度榜榜首。Facebook 用 Python 重写了基于 Lua 语言的深度学习库 Torch,不仅使得 PyTorch 继承了 Torch 灵活、动态的编程环境和用户友好的界面,支持以快速和灵活的方式构建动态神经网络,还允许在训练过程中快速更改代码而不妨碍其性能,即支持动态图形等尖端 AI 模型的能力。2018 年 Caffe2 正式并入 PyTorch 后,PyTorch 的发展势头更呈不可阻挡之势。据 Meta 称,自 PyTorch 创建以来,约有 2,400 名贡献者在该框架上构建了超过 150,000 个项目。因此,PyTorch 已成为人工智能研究和商业生产使用的领先平台之一,包括作为亚马逊网络服务、微软 Azure 和 OpenAI 的技术基础。 在人工智能和机器学习领域,开源是重中之重。Linux 基金会是开源生态系统的一个重要组成部分。目前,Linux 基金会在世界各地拥有数千名成员,拥有 850 多个开源项目。这些项目要么直接为基础 AI/ML 项目(LF AI 和数据)做出贡献,要么为其用例做出贡献并与其平台集成。(例如,LF Networking、AGL、Delta Lake、RISC-V、CNCF、Hyperledger)。“PyTorch 的精髓之处(以及它的维护者的功劳)在于,它的确是如今许多 AI 和 ML 项目的基础平台,它是一把真正的瑞士军刀。”Linux 基金会称。正如开发人员在 Linux 之上构建了我们今天所知的大量技术一样,许多 AI/ML 社区也是在 PyTorch 之上构建而成。PyTorch 进一步支持了新兴技术和不断变化的用户需求。Linux 基金会表示,作为 Linux 基金会的一部分,PyTorch 及其社区将受益于我们的许多计划和支持社区,例如培训和认证计划(我们已经在进行中)、社区研究(例如我们的项目旅程报告),当然还有其他社区活动等。PyTorch 社区将在 Linux 基金会内部和周围工作,PyTorch 社区也有一个可以访问 LFX 协作门户的入口,我们将为 PyTorch 社区提供指导并帮助 PyTorch 社区确定未来的领导者、寻找潜在的员工、并观察共享的社区动态。“像 PyTorch 这样有可能成为关键技术基础平台的项目,保持中立对它更有益处。中立性和真正的社区所有权使 Linux 和 Kubernetes 在变得更加成熟的同时继续加速和增长,从而超越预期。用户、维护者和社区开始将它们视为可以永久依赖和信任的公共资源的。”Linux 基金会称。“PyTorch 通过良好的维护和开源社区管理达到了目前的状态。我们不会改变 PyTorch 的任何优点。”Linux 基金会称。来源:https://pytorch.org/blog/PyTorchfoundation/https://venturebeat.com/ai/pytorch-has-a-new-home-meta-announces-independent-foundation/https://linuxfoundation.org/zh/blog/welcoming-pytorch-to-the-linux-foundation/
-
摘要:我们可以对这个 bash 补全进行加速,并使用 complete 命令将其提升到一个新的水平。本文分享自华为云社区《有用的 Linux Bash_Completion 命令示例(Steroids 上的 Bash 命令行补全)》,作者:Tiamo_T 。在 Linux 中,在键入命令时,如果按两次 TAB,它将列出所有以键入字符开头的可用命令。这不是什么新鲜事,可能你已经知道了。此功能称为 bash 完成。默认情况下,基本文件和目录名称补全在 bash 命令行中可用。但是,我们可以对这个 bash 补全进行加速,并使用 complete 命令将其提升到一个新的水平。本教程解释了我们如何使用可编程完成将自动完成应用于选项和命令的参数。例如,在输入 write 命令后,如果按两次 tab,自动补全会提供用户列表来执行 write 操作。$ write [TAB][TAB] bala raj jason randy john ritu mayla thomas nisha www-data在以下示例中,它将显示 telnet 命令的可用主机名:$ telnet [TAB][TAB] localhost dev-db fileserver要在终端中获得可编程完成,您只需要运行 /etc/bash_completion ,如下所示,# . /etc/bash_completion您还可以取消注释 /etc/bash.bashrc(来自 ubuntu linux 13.04)中的以下行,这样您就不必显式运行上述命令, enable bash completion in interactive shells if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi如果你没有找到这些行和 /etc/bash_completion 文件,那么你只需要通过apt-get安装名为 bash_completion 的包1.查看现有的bash-completion启用可编程 bash 完成后,定义了一组 bash 完成。命令 complete 用于定义 bash 完成。要查看现有的 bash 完成,请使用如下所示的 complete 命令。 complete -p | less在上面的示例中,选项 -p 是可选的。2. Bash 标准补全列表Bash 默认为 Linux 用户提供以下标准补全。变量名完成用户名完成主机名完成路径名完成文件名完成我们在之前的bash 标准完成文章中讨论了这些内容。3. 定义获取命令的完成使用 -c 命令定义完成以获取可用命令列表作为参数。在以下示例中,完成是为哪个命令定义的,$ complete -c which $ which [TAB][TAB] Display all 2116 possibilities? (y or n)如上所示,通过按“y”,所有命令将被列出。4. 定义获取目录的完成使用选项 d,可以将完成定义为仅获取目录名称作为参数。在以下示例中,为 ls 定义了完成,$ ls countfiles.sh dir1/ dir2/ dir3/ $ complete -d ls $ ls [TAB][TAB] dir1/ dir2/ dir3/如上所示,按 Tab 仅显示目录。5. 定义获取后台作业名称的完成使用完成,还可以获取作业名称作为命令的参数。选项 j 用于将作业名称作为参数传递给命令作业,如下所示,$ jobs [1]- Stopped cat [2]+ Stopped sed 'p' $ complete -j ./list_job_attrib.sh $ ./list_job_attrib.sh [TAB][TAB] cat sed谈到后台作业,您还应该知道如何使用这些示例管理Linux 后台作业。6. 前缀和后缀补全可以使用要添加的所需前缀和要附加实际完成的后缀来定义完成。在以下示例中,为 list_job_attrib.sh 定义了前缀和后缀,$ jobs [1]+ Stopped cat $ complete -P '">' -S '<"' ./list_job_attrib.sh $ ./list_job_attrib.sh [TAB][TAB] $ ./list_job_attrib.sh ">cat<"7. 文件名和目录完成与排除考虑脚本完成运行,输出被写入输出目录,如下所示$ cd output/ $ ls all_calls.txt incoming_calls.txt outgoing_calls.txt missed_calls.txt parser_mod.tmp extract.o在上面,如果您需要忽略 .tmp 和 .o 文件以使用 ls 命令自动完成,那么,$ export FIGNORE='.tmp:.o' $ complete -f -d ls $ cd output $ ls [TAB][TAB] all_calls.txt incoming_calls.txt outgoing_calls.txt missed_calls.txtFIGNORE 是包含文件名后缀的 shell 变量,这些后缀在自动完成中被排除。8. 通过 IFS 拆分字符串以获得完成值可以使用 -W 选项提及单词列表,并使用 IFS 变量中的值进行拆分。然后每个结果单词都被扩展并显示为完成,$ export IFS=" " $ complete -W "bubble quick" ./sort_numbers.sh $ ./sort_numbers.sh [TAB][TAB] bubble quick如上所述,通过IFS分隔符分割字符串后,单词得到扩展,因此也可以将这些作为变量,如下所示,$ echo $SORT_TYPE1 bubble $ echo $SORT_TYPE2 quick $ complete -W "$SORT_TYPE1 $SORT_TYPE2" ./sort_numbers.sh $ ./sort_numbers.sh [TAB][TAB] bubble quick9. 编写你自己的函数来生成完成它允许您包含一个函数来定义完成。使用 -F 选项,传递给完成命令的函数名称并被执行以生成完成。例如,函数编写如下所示,_parser_options() { local curr_arg; curr_arg=${COMP_WORDS[COMP_CWORD]} COMPREPLY=( $(compgen -W '-i --incoming -o --outgoing -m --missed' -- $curr_arg ) ); }在上述函数中,COMPREPLY :数组保存按 [TAB][TAB] 后显示的完成结果COMP_WORDS :在命令行上键入的单词数组COMP_CWORD :COMP_WORDS 数组的索引,并且可以在命令行上使用此不同位置的单词进行访问。compgen : -W 保存可能的完成,并根据 $current_arg 选择相应的参数文件 parser_option 中存在的此函数的来源如下所示,$ source parser_option将此函数链接到您的解析器脚本,如下所示,$ complete -F _parser_options ./parser.pl $ ./parser.pl [TAB][TAB] -i --incoming -o --outgoing -m --missed如上所示,解析器的选项由函数 _parser_options() 生成。注意:查看 /etc/bash_completion 以查看可编程完成的更多功能。10. 当主要不生成任何辅助规范时如果定义的完成规范没有生成匹配项,则使用 comp-option 来完成 -o 选项提到的完成。$ complete -F _count_files -o dirnames ./countfiles.sh如上所述,完成是用文件 ./countfiles.sh 的 _count_files 函数定义的。如果 _count_files() 函数未生成任何匹配项,则尝试完成目录。$ ls countfiles.sh dir1/ dir2/ dir3/ $./countfiles.sh [TAB][TAB] dir1 dir2 dir3
-
UKUI是麒麟软件团队历经多年打造的一款Linux 桌面,主要基于 GTK 和 QT开发。与其它UI界面相比,UKUI更加注重易用性和敏捷度,各元件相依性小,可以不依赖其它套件而独自运行,给用户带来亲切和高效的使用体验。UKUI支持x86_64和aarch64两种架构1、UKUI的安装目前UKUI可以在终端上总结输入yum install ukui直接安装输出如下内容,一直根据提示按y,回车就好根据提示回车显示complete即安装完成2、然后安装字体库输入yum groupinstall fonts 进行字体库安装输出如下内容显示如下complete即安装成功3、设置开机默认使用图形界面在终端输入systemctl set-default graphical.target输出如下4、重启使用UKUI输入reboot重新启动
-
摘要:简单来讲audit是Linux上的审计工具,可以用来记录和监控对文件、目录、系统资源的更改;Audit无法直接增强系统的安全性,但是它可以用于发现违反系统安全政策的行为。本文分享自华为云社区《Linux-Audit工具使用简介》,作者: 云存储开发者支持团队。简单来讲audit是Linux上的审计工具,可以用来记录和监控对文件、目录、系统资源的更改;Audit无法直接增强系统的安全性,但是它可以用于发现违反系统安全政策的行为。1. 查看audit服务是否起来查看状态:systemctl status auditd.service开启auditd服务:service auditd start重启服务:service auditd restart / service auditd reload2. 配置需要监控的目录auditctl -w /var/crash/coredump-w path : 指定要监控的路径,上面的命令指定了监控的文件路径 var/crash/coredump-p : 指定触发审计的文件/目录的访问权限rwxa : 指定的触发条件,r 读取权限,w 写入权限,x 执行权限,a 属性(attr)配置方法A配置方法B (A方法失败)上述回显异常,需在audit规则内配置监控项。查看规则:auditctl –l(若查询不到,请重启节点-reboot)3. 查看日志到/var/log/audit目录下面。 敲这个命令行就可以:grep -rn 搜索的字符串*grep -rn core*4. 日志解析/var/crash/coredump 目录下创建了 test 文件。时间:2021-01-16 17:10:44/var/crash/coredump 目录下删除了 test 文件。时间:2021-01-16 17:12:23audit已经提供了一个更好的事件查看工具——ausearch,使用auserach -h查看下该命令的用法。日志参数解读参考:cid:link_1附录查看auditctl命令使用规则:auditctl –h查看定义的规则:auditctl –l清空定义的规则:auditctl -DCWD类型:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security_guide/sec-audit_record_types时间戳转换工具:http://tool.chinaz.com/Tools/unixtime.aspx
-
Linux stat命令Blocks字段与IO Block字段的理解原因在之前了解文件系统的时候,为理解块与扇区的概念,用到了stat命令。关于这个命令输出的信息的文章有很多,其他字段是没有争议的,但是在一些文章中对Blocks与IO Block理解有错误。结论先说结论Blocks字段指的是512字节构成的块的个数,IO Block是指文件系统的块的大小一般为4096字节。它们关系如下I O B l o c k = B l o c k s × 512 B IO\space Block = Blocks\times 512BIO Block=Blocks×512B网上有很多文章说Blocks字段指的是文件系统中块的个数,这个是错误的。实践是检验真理的唯一标准,下面我们就直接查看Linux的stat命令的源码验证一下。验证首先终端执行以下命令,搜索stat所在目录which stat1得到如下结果然后再搜索软件所在包dpkg -S /usr/bin/stat1发现是在coreutils包下去GNU的网站下载这个包然后解压缩,于src文件夹下和lib文件夹下分别查看stat.c这个源文件发现并没有与这两个字段相关的类型定义,这看似我们寻找失败了。但是经过一段时间摸索,在lib下的stat.c中包含了sys/stat.h头文件,我们想要找的答案很可能就在这里面利用清华大学镜像源加速,获取glibc,解压后在usr/include目录下终于找到了stat.h头文件查看内容,果然有一个名为stat的结构体,代码片段如下struct stat { unsigned int st_dev; /* Device. */ unsigned int st_ino; /* File serial number. */ unsigned int st_mode; /* File mode. */ unsigned int st_nlink; /* Link count. */ unsigned int st_uid; /* User ID of the file's owner. */ unsigned int st_gid; /* Group ID of the file's group.*/ unsigned int st_rdev; /* Device number, if device. */ long int st_size; /* Size of file, in bytes. */ unsigned long int st_atime; /* Time of last access. */ unsigned long int st_mtime; /* Time of last modification. */ unsigned long int st_ctime; /* Time of last status change. */ unsigned int st_blksize; /* Optimal block size for I/O. */#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ int st_blocks; /* Nr. of 512-byte blocks allocated. */ unsigned int st_flags; unsigned int st_gen; };找到名st_blocks的结构体成员,左边的注释写着“512-byte blocks”,这显然说明stat命令的Blocks字段含义就是以512字节为单位的个数。为什么是512?因为早期的机械硬盘扇区大小为512字节,但现在无论SSD还是机械,存储单位都是4096字节的了,正好是512的整数倍。而IO Block是指文件系统中的块的大小,对应st_blksize成员,相当于8个512字节块(对于512字节扇区的磁盘来讲,在物理上表现为8个连续的扇区),即4096字节。而这个512字节的块究竟是物理块还是逻辑块?由于现在存储设备的发展,以及不同文档中有不同定义,这些东西的概念十分模糊,所以我并不建议把它理解成一个实际存在的块,而是作为一个基本单位。笔者认为在学习文件系统的时候只需要知道,文件系统中的块相当于8个这样的连续的基本单位组成就足够了。其他通过阅读代码可以发现在Linux中,stat命令所说的Size字段指的是文本大小,而不是文件实际占用大小。Size字段对应stat结构体st_size成员,该字段数值并不等于IO Block*Blocks(而Windows中是这样)。文件的实际占用空间应该为 文件系统的块大小*文件文件系统块的个数即T r u e S i z e = F i l e B l o c k × F i l e B l o c k N u m TrueSize = FileBlock \times FileBlockNumTrueSize=FileBlock×FileBlockNum————————————————版权声明:本文为CSDN博主「CairBin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_42759112/article/details/126249990
-
前言:有一些小伙伴在客户现场布置了一套ADC的OP环境。在前端页面显示的报错也许会不全,这个时候就需要登录到后台去看日志,才能分析出是什么问题。以下为一些术语,帮助了解:OC:On Cloud,从字面上理解是要把应用构建和运行在云上。OP:On Premises,指部署在客户服务器上的环境,一般是在客户内部的局域网FS:FusionStage,华为的GDE微服务容器管理平台。也是俗称的“管理面”准备工作需要知道以下信息,才能进行后续操作:FS的登录地址FS登录账号密码登录虚拟机的密码虚拟机root权限的密码需要知道自己要看那个微服务的日志,如我有RPA管理中心的报错,那我就要去看adc-rpa的日志(可以看“模块与服务对照表”)以上信息如果不知道,要找给你装环境的人提供模块与服务对照表领域服务名模块错误码前缀描述编排adc-model编排引擎ADC.RT.MODELADC模型adc-trigger网络业务编排ADC.RT.TRIGGER表数据变更触发器(ADC2ModelBatch中的模型数据同步依赖此微服务)adc-model-batch编排引擎ADC.RT.MODBAT模型数据集中处理(模型数据归档、模型数据同步)adc-service资产服务组ADC.RT.SERVICE运行态逻辑流 (模型服务业务处理:模型服务、模型规则、脚本,翻译器)adc-app-mgt资产服务组ADC.RT.APPMGTapp运行态管理adc-app-mgt-web资产服务组 app管理运行态前端adc-batch资产服务组ADC.RT.BATCHExcel导入导出/文件服务adc-ui用户体验ADC.RT.UI运行态UI(页面、卡片)adc-ui-web用户体验-运行态前台adc-static(微服务名重复)用户体验ADC.RT.STC静态资源adc-intg编排引擎ADC.RT.INTG运行态集成服务adc-mobile终端服务ADC.RT.UI终端SPL引擎运行态微服务adc-mobile-web终端服务-终端SPL引擎运行态静态资源RPAadc-rpaRPAADC_RT_RPARPA运行态管理中心adc-rpa-webRPA-RPA运行态页面日志查看方法下面用查看adc-intg的日志作为例子。1、 找到intg的虚拟机节点1.1、 登录FS管理面管理面信息:访问链接:https://xx.xx.xx.xx:xxxx(如果不知道,要找装环境的人要访问地址)账号:xxxxxx密码:xxxxxx登录页面如下1.2、查看K8S应用部署1.3、搜索找到intg得知adc-intg在这两个节点:(每个环境都不一样,按照实际情况获取)10.151.37.1610.151.37.142.登录虚拟机节点2.1、下载MobaXterm需要下载一个MobaXterm去访问linux虚拟机(也可以去使用其他的工具,方法自定)MobaXterm官网下载地址:https://mobaxterm.mobatek.net/download.html2.2、安装完后,双击点开,新增Session配置完后,双击进入Linux虚拟机,输入密码:xxxxxx。输入密码时,屏幕不会显示密码,继续输入,完成enter即可当显示“Authorized users only, All activities may be monitored and reported”,则说明登录成功2.3、切换root用户控制台输入su root填入密码 xxxxx2.4、 找到intg的PID控制台输入:docker ps | grep intg以上图为例,52396c1bbe02 为pid2.5、进入docker容器控制台输入:docker exec -it 52396c1bbe02 bash2.6、查看日志tailf -n 200 /opt/mateinfo/logs/app/adc-intg.log某些linux镜像没有tailf 可以尝试tailtail -f -n 200 /opt/mateinfo/logs/app/adc-intg.log或者使用less, vi 命令都可以上图为日志,可以拿着这个日志去找华为工程师注意:intg在两个虚拟机节点上,因为系统是负载均衡,所以需要同时登录到两个节点查看。只登录一个节点,如果日志报在另外一个节点,就会miss掉。想要查看其他的微服务也是同样的操作。
-
【功能模块】在鲲鹏openlab , openEuler 20.03 (LTS-SP1)上安装Hyper-tuner_2.5.RC1【操作步骤&问题现象】1、新建任务-进程/线程性能分析, 采样类型:系统性能,进程性能,2、任务状态:任务采集失败,pidstat命令执行失败,请确认pidstat命令能否正常执行。3、后台可执行pidstat【截图信息】【日志信息】(可选,上传日志内容或者附件)2022-08-06 04:17:57 Sat|509023:281460682279808|process_sampling.py:137|sampling_task|CRITICAL|start the collect task2022-08-06 04:18:57 Sat|509023:281460682279808|process_sampling.py:147|sampling_task|WARNING|[ERROR] SysPerf.SysProcess.Collect.SampleStartError
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签