
Unix Like
Linux, Unix相关
王万林 Ben
CAD/IT,熟悉芯片设计流程,操作系统,存储。欢迎交流,技术支持请加微信 wanlinxiong。https://icinfra.cn
展开
-
ipset restore命令维护set,但原已存在的条目未删除掉
如下,初始创建了若干个set,每个set下若干条目,维护/etc/ipset.conf文件,并调用ipsetrestore命令应用它,发现172.31.94.228,tcp80这条原来已有的条目并未被移除。原创 2022-07-29 09:30:28 · 945 阅读 · 0 评论 -
Linux各文件夹用途
sbin与/bin类似,放给启动相关的文件,主要给root使用。/boot放静态文件,给bootloader使用的。有朋友问,Linux这么多文件夹,是干什么用的?/tmp放临时文件,删除不会给任何提示。/dev放特殊文件或设备文件。/root是root的家目录。/bin放可执行文件的。/opt放额外安装的包。/lib放共享库文件。/mnt临时挂载目录。在Linux系统执行。/etc放配置文件。...原创 2022-07-24 13:48:54 · 264 阅读 · 0 评论 -
CentOS 7.9 Xfce桌面安装中文输入法
芯片HPC环境,大部分使用英文输入法,并显示英文即可。随着国内对芯片行业的越来越重视,芯片HPC环境使用人员越来越多母语中文的同学加入。在HPC环境内既要支持英文,又要支持中文的输入与显示。使用root账号,安装需要的包使用使用wanlinwang账号,登陆登陆进去后,没有输入法选择器。执行im-chooser打开input method选择器,并选择Use IBus,随后在右上角出现了IBus输入法选择器,如下图所示: 选择中文输入法,选中中文输入法, 输入中文,可以了:...原创 2022-07-04 11:05:58 · 2527 阅读 · 2 评论 -
Xfce4 panel is broken, how to restore it to the default panel without exiting the current desktop?
Problem: Xfce4 panel is broken.if you selected 'One empyt panel', then your desktop will look like below,minimize the terminal, and it is gone nowhere,So, how to restore xfce4-panel to default?1. bakcup your xfce4 configcp -r ~/.原创 2022-05-15 10:36:31 · 555 阅读 · 0 评论 -
Katacoda - 创建课程
创建课程也可以自行设计并上传课程,以供其它用户学习。新建组织与仓库在kadacoda.com新建好组织,配置好Git仓库(主流的如GitHub、Gitee等都可以)与Webhook。(本篇具体步骤略)创建完成后,就可以在您的 Git仓库上找到名为 katacoda-scenarios 的代码仓库。Courses与ScenariosCourses与Scenarios ,由一组 Markdown、bash 脚本和一个 JSON 文件组成,这些文件保存了所有配置。Katacoda 官方提供了 CLI原创 2021-10-18 09:54:42 · 400 阅读 · 0 评论 -
Katacoda - 在线学习平台学习Environment Modules
Katacoda 在浏览器中使用真实环境学习新技术,是软件工程师互动学习和培训平台。使开发人员能够使用自进度实验室学习Kubernetes、机器学习和云平台等技术;定制内容和实验室共享知识,以演示内部工具、模式和实践。原创 2021-10-17 15:51:31 · 1077 阅读 · 0 评论 -
NFS - LSF执行机跑VCS时报错No locks available
NFS - LSF执行机跑VCS时报错No locks available问题描述如图所示,将vcs编译脚本提交到LSF执行,报错No locks available并且退出。但是该脚本在本机执行时work的,如图所示,问题排查根据提示,是文件锁相关的报错。由于任务文件在NFS上,我们对比两台机器上NFS的挂载选项。本机的挂载选项(能跑)LSF执行机的挂载选项(不能跑)经对比,应该是挂载选项差异导致。我们来仔细分析一下nolock与local_lock两个选项的用途。lock /原创 2021-10-16 20:05:42 · 3427 阅读 · 3 评论 -
bash - 两台机器,在相同的文件夹下双击table键(auto-complete),相同的文件有些有后缀,有些没有后缀
bash - 两台机器,在相同的文件夹下双击table键(auto-complete),相同的文件有些有后缀,有些没有后缀问题描述如图,两台机器同一个目录下的libjava.so文件,在执行ls命令时双击table键(auto-complete),其中一台机器是显示libjava.so,另一台机器显示libjava.so*。这是为何?用户疑惑。问题解决经查看资料,用户的shell环境的auto-complete打开了append indicator的功能(也可参考ls命令的-F选项)。它可以在文件原创 2021-10-15 16:28:38 · 100 阅读 · 0 评论 -
spack - 无法下载的包怎么办?
spack安装包时,遇到一些无法下载的情况如何解决?资料查看官网介绍https://spack.readthedocs.io/en/latest/basic_usage.html#non-downloadable-tarballs,针对无法下载的,可以设定一个mirror目录,然后执行spack install <package>时自动从mirror目录找。延伸解决了无法下载的问题。...原创 2021-10-13 17:56:43 · 1315 阅读 · 0 评论 -
Linux - CentOS 7.9安装proc手册
CentOS 7.9安装proc手册问题查看proc文件系统的手册,没找到。解决查看需要装什么谷歌搜索man proc,找到官网 https://man7.org/linux/man-pages/man5/proc.5.html ,它是来自于man-pages项目的。我们在terminal上找一下这个包,查看这个包的信息安装它查找proc手册...原创 2021-10-13 09:09:08 · 478 阅读 · 0 评论 -
freedesktop.org规范中定义的环境变量,用于存放配置文件、数据、缓存等
freedesktop.org规范中定义的环境变量,用于存放配置文件、数据、缓存等变量$XDG_DATA_HOME defines the base directory relative to which user-specific data files should be stored. If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used.$XDG_CO原创 2021-09-25 11:25:32 · 429 阅读 · 0 评论 -
Linux - 大量小文件拷贝/同步的性能
Linux - 大量小文件拷贝/同步的性能参考资料https://access.redhat.com/solutions/5652631原创 2021-09-25 09:43:10 · 584 阅读 · 0 评论 -
Linux - 多个桌面,如何定制默认启动桌面,与选择顺序
Linux - 在greeter中选择多个桌面,如何定制它们的顺序?需求需要定制多种桌面的顺序。解决logout后,点开桌面选择器可以看到原创 2021-09-23 22:25:49 · 1976 阅读 · 2 评论 -
Linux - 从系统调用分析应用问题
Linux - 从系统调用分析应用性能问题背景Linux下应用的执行,遇到性能问题时,可参考下图对应的工具进行收集分析,其中System Call Interface层,可以使用strace命令进行日志收集。strace收集System Call Interface日志$ strace -ttTffy -o /path/to/strace.log <command>$ #或追踪已运行的进程,如下$ strace -ttTffy -o /path/to/strace.log -p原创 2021-09-19 15:44:49 · 148 阅读 · 0 评论 -
Linux - 使用dlsym()的RTLD_NEXT来实现库函数拦截
Linux下,用户对文件的打开与执行,加上日志收集。原创 2021-09-08 23:36:59 · 1515 阅读 · 0 评论 -
Linux - 内存回收
Linux - 内存回收内存回收时,会优先释放Inactive(file)中的数据,来满足应用对内存的需求,此时匿名页会增长。匿名页不会被系统直接释放,如果有swap的时候,会把一些inactive(anon)放入swap。如果没有swap,会一直保持在内存中。当然,程序可以通过比如free这些glibc函数,把相关匿名页释放掉,从而释放一些内存。然后会把active(file)链表中,相对不是经常被调用的缓存放入inactive链表。如果再有新的内存申请,则会重复此过程。直至没有cache可释放的情况原创 2021-09-03 07:11:38 · 1421 阅读 · 0 评论 -
GVIM - 左键双击、左键三击、左键四击默认的功能、以及定制方法
GVIM - 左键双击、三击、四击默认的功能、以及定制方法问题描述GVIM下左键的双击默认是选中单词三击默认是选中一行四击默认是选中一个矩阵块而用户的双击是选中一行,三击是选中单词。资料查看从 http://vimdoc.sourceforge.net/htmldoc/term.html 查看问题解决是用户的.gvimrc里设置了map <2-LeftMouse> 到选中一行了。可以将其注释掉,让其恢复默认的功能。参考资料http://vimdoc.sourcefo原创 2021-09-03 06:47:58 · 1472 阅读 · 0 评论 -
Linux - 段错误的分析
Linux - 段错误的分析段错误表现$ appSegmentation fault (core dumped)分析在C Shell中执行limit coredumpsize unlimited开启core dump,重新执行case,获取dump file。$ gdb(gdb) l1 ../../../src/lin64/libgcc/libgcc2.c: No such file or directory.(gdb) bt#0 0x00000036c200be71 in _dl_r原创 2021-09-02 22:04:41 · 464 阅读 · 0 评论 -
Linux - 因执行机光模块故障导致LSF job的idle_factor为0
Linux - 因执行机光模块故障导致LSF job的idle_factor为0问题描述某台执行机hostA上的任务,任务无进展,对应的log无内容。问题查看登陆上去,使用top -u $USER -> H查看用户的进程大多是S状态,一两个是D状态,占用的CPU都是0;使用top - H - 1查看所有CPU情况,发现多数CPU都是0%,有4个是100%,都是IO wait。查看网卡数据$ watch "cat /proc/net/dev| column -t"可以看到网卡的er原创 2021-09-01 22:29:03 · 282 阅读 · 0 评论 -
Linux - CentOS 8的gnome-terminal无法弹到CentOS 7.9桌面
CentOS 8的gnome-terminal无法弹到CentOS 7.9桌面原创 2021-06-29 20:31:30 · 646 阅读 · 0 评论 -
Linux - 进度条
Linux - 进度条bash脚本脚本一#!/bin/bash -f# Filename: process_bar_with_printf.sh# Date: 24/08/2021i=0bar=index=0arr=( "|" "/" "-" "\\" )while [ $i -le 100 ]do let index=index%4 printf "[%-100s][%d%%][\e[43;46;1m%c\e[0m]\r" "$bar" "$i" "${arr[$index]原创 2021-08-24 21:02:21 · 360 阅读 · 0 评论 -
性能优化可能使用到的几种平均值
性能优化可能使用到的几种平均值几何平均值(Geometric mean)如果分析内核网络栈每一层的性能提升,那么每一层的性能应该等于总的性能的几何平均值,也就是数值乘积的n次方根。调和平均值(Harmonic Mean)是数值的个数除以所有数值的倒数之和,这种方法更适用于利用速率求平均值。例如,计算传输800MB数据的平均速率,其中前100MB以50MB/s传输,剩下的700MB以10MB/s的速度传输,它的调和平均值是多少?800/(100/50 + 700/10) = 11.1 Mbytes/原创 2021-08-20 07:10:24 · 601 阅读 · 0 评论 -
磁盘的响应时间 - M/D/1排队理论与60%使用率
磁盘的响应时间 - M/D/1排队理论与60%使用率问题随着使用率的增加,磁盘的响应时间是如何变化的?分析根据排队理论,M/D/1的响应时间可以计算如下:r = s(2 - ρ)/2(1 - ρ)此处的响应时间r,由服务时间s和使用率ρ决定。对于1ms的服务时间,使用率为0%~100%,响应时间和使用率的关系如图所示使用率超过60%时,平均响应时间会变成两倍;超过80%时会变成三倍。使用率越高,性能下降得越快。R统计svc_ms <- 1 # a原创 2021-08-19 22:47:36 · 1896 阅读 · 0 评论 -
Linux - 桌面的窗口的标题栏与边框缺失
Linux - 桌面的窗口的标题栏与边框缺失原因是Window Manager进程异常了,需要重启。方法以xfce桌面为例,方法一:执行xfwm4 --replace方法二:执行killall xfwm4原创 2021-08-19 20:28:43 · 2032 阅读 · 2 评论 -
Linux - 服务日志写入失败导致服务宕掉的解决方案
服务日志写入失败导致服务宕掉的解决方案原创 2021-06-29 20:30:48 · 569 阅读 · 0 评论 -
文本处理 - 连续出现一行空行则删除这行空行,连续出现两行空行时则只删除一行空行留一行空行
文本处理 - 连续出现一行空行则删除这行空行,连续出现两行空行时则只删除一行空行留一行空行处理需求最近在编辑Markdown文本,从普通文本拷贝到code block时,总会多一行空行,链接在这。如何能删除多出来的空行?文本/tmp/test.txt╭─ben at MacBook Pro in ~ 2021/08/16 - 21:18:29╰─○ cat /tmp/test.txt group cpunode0 {原创 2021-08-16 21:24:29 · 267 阅读 · 0 评论 -
Linux - 命令alias grep “grep -r“引起的卡慢报错问题
Linux - 命令alias grep "grep -r"引起的卡慢报错问题问题描述用户环境下有别名ml,实际命令是module load与其它包含grep的命令组成。用户执行ml python会停住,过了很久报了一堆奇怪的报错,加载失败。问题分析由于现象是加载工具时卡住,需要找到卡在哪里。然后再分析为何报错。用户先开好两个shell,称为shellA与shellB,shellA进程ID为pid_A。在shellB中,执行strace -ttTffy -o /tmp/${USER}_stra原创 2021-08-16 18:24:37 · 1505 阅读 · 0 评论 -
开发与运行不同账号的一个小误区
在生产环境部署东西,应谨记恰当授权、最小授权的原则。原创 2021-08-15 15:32:28 · 93 阅读 · 0 评论 -
Linux - 通过操作文件锁来实现shell script进程单实例
Linux - 通过操作文件锁来实现shell script进程单实例需求描述在日常的工作中,经常遇到这样的场景:一个脚本程序,一次只能允许其运行一个实例。如采集系统指标,传输到日志存储系统。如果脚本同时运行了多个实例,那么可能会导致数据在存储系统中储存了多份重复的(片段)数据。为了解决这个问题,我们提出了一个需求:这种程序,我们希望在一台服务器上运行时,有且仅有一个实例在运行。需求分析由于实例对应的就是程序的(单个或多个)进程,我最初想到的就是判断当前用户是否有command为当前程序名称的进原创 2021-08-15 12:47:51 · 379 阅读 · 0 评论 -
Error:Couldn‘t perform atomic initializationSQLite. Compiled for 3.7.17,but running with 3.7.7.1
系统升级后应用在调用svn命令时报错,提示Error: Couldn't perform atomic initializationSQLite. Compiled for 3.7.17, but running with 3.7.7.1问题分析这里是因为应用目录下的/tools.lnx86/lib/64bit/libsqlite3.so.0文件是为3.7.7.1编译的,而系统下的库是/usr/lib64/libsqlite3.so.0是为3.7.17编译的。svn是在该系统下编译安装的,被应用调用时,原创 2021-08-09 22:07:00 · 873 阅读 · 0 评论 -
Linux - C SHELL报错提示“Missing }.“
Linux - C SHELL报错提示"Missing }."问题描述Last login: Mon Aug 9 20:07:43 2021Welcome to Alibaba Cloud Elastic Compute Service ![thesre@centos8 ~]$ source .cshrcMissing }.[thesre@centos8 ~]$ 问题分析为了便于演示,本案例将二分法定位故障域、source(间接)语句以及其余无关语句都移除。将.cshrc文件备份,原创 2021-08-09 21:19:13 · 2266 阅读 · 2 评论 -
Linux - 加载工具前后,环境表的大小分析
Linux - 加载工具前后,环境表的大小分析需求在HPC环境中,工程师在加载工具前后,环境表的大小如何确定?(以为进一步优化提供数据支持。)解决如上图所示,在执行module load autoconf-2.69-gcc-4.8.5-ilifme7 gdbm-1.19-gcc-4.8.5-7xgz4k2 pkgconf-1.7.4-gcc-4.8.5-jqegzwv前,环境变量占用大小为3184字节。在执行后,环境变量占用大小为7486字节。后续优化待补充参考资料xargs手册原创 2021-08-04 22:29:15 · 149 阅读 · 0 评论 -
Linux - bash while subshell中变量操作的问题
Linux - bash while subshell中变量操作的问题需求使用bash语言,对1到5进行累加,并输出结果。代码$ cat while_loop_operate_global_variable.sh#!/bin/bash# Author: thesre# Date: total=0echo "Let's check the initial value of total:"echo "$total"echo ""num_list=`seq 1 5`echo "$n原创 2021-08-04 22:00:56 · 218 阅读 · 0 评论 -
Linux - 专用登陆机器上,禁止指定命令运行
在登陆机器上,禁止指定命令运行,以确保这类机器足够流畅。原创 2021-06-29 20:29:16 · 589 阅读 · 0 评论 -
LSF - bjobs频繁查询导致集群性能问题的debug分析
LSF - bjobs频繁查询导致集群性能问题的debug分析问题描述用户执行正常的bjobs很慢,有时候甚至失败。用户将问题报告给LSF管理员。问题分析根据Diagnose query requests说明,LSF管理员查看对应的性能日志,发现有大量的bjobs查询来自于机器host01的用户user01。查询每分钟高达700次。找用户user01核对,他正在跑synopsys sentaurus TCAD任务,会在GUI上提交LSF任务。用户将任务停掉后,频繁的查询随后消失。可以确认是user原创 2021-07-29 13:02:50 · 1560 阅读 · 0 评论 -
C SHELL - 修改默认群组
C SHELL - 修改默认群组需求描述因存储16群组数量的限制,排在17th以及以后的群组,如何能提前使得用户有权限访问对应的项目数据?需求分析将需求总结一下:如何修改默认群组?需求解决方式一假设用户信息存储在域控,并且服务器使用该域控进行认证,则在域控修改对应的default shell信息即可;方式二假设用户信息存储在本机,并且服务器使用本机认证,则修改/etc/passwd对应条目中的default shell信息即可;方式三假设因各种原因,用户无法(或无法立即)修改,则可以在原创 2021-07-28 13:01:03 · 566 阅读 · 3 评论 -
X11 - X client数量达到上限并报错Maximum number of clients reachedxlsclients
X11 - X client数量达到上限并报错Maximum number of clients reachedxlsclients报错thesre@HP-Z420-Workstation:~$ xlsclients Maximum number of clients reachedxlsclients: unable to open display ":0"定位看报错是X client数量达到上限了,我们来看下当前X server打开了多少X client。thesre@HP-Z420-W原创 2021-07-21 23:39:42 · 3853 阅读 · 1 评论 -
/tmp目录不可写,引起module load部分modulefile报错
/tmp目录满了引起module load部分modulefile报错问题描述在机器A上,使用3.2.10版本的Modules,执行module load命令加载部分工具报错提示ERROR:102: Tcl command execution failed: puts stderr [exec hostname],如下所示:[thesre@centos8 ~]$ module avail python---------------------------------- /home/thesre/p原创 2021-07-19 23:22:54 · 1526 阅读 · 0 评论 -
简单的资源预留修正流程图
简单的资源预留修正流程图假设有群组两级,先根据1级群组获取到所有的2级群组,然后遍历这些2级群组,并得到全部JOB,再根据黑白名单以及几个阈值,来修正预留值。原创 2021-07-16 22:49:28 · 302 阅读 · 0 评论 -
Linux - 内存占用分析
Linux - 内存占用分析(TODO)https://stackoverflow.com/a/21049737/7855819原创 2021-07-13 23:55:43 · 121 阅读 · 0 评论