• [技术干货] linux shell编写一个简单的菜单
    shell中,使用select语句生成一个简单的菜单选项。[root@k8s-master-c71e shell]# vi sec.sh#!/bin/shPS3="What you like most of the open source system?"select i in CentOS RedHat Ubuntudoecho "Your Select System: "$idone[root@k8s-master-c71e shell]# chomd o+x sec.sh[root@k8s-master-c71e shell]# ./sec.sh1) CentOS2) RedHat3) UbuntuWhat you like most of the open source system?1Your Select System: CentOSWhat you like most of the open source system?2Your Select System: RedHatWhat you like most of the open source system?3Your Select System: UbuntuWhat you like most of the open source system?^C[root@k8s-master-c71e shell]# 
  • [技术干货] D2120-00-I-P产品【SDK Linux二次开发功能】
    想请问一下sdk 哪里可以找到,找了好久都木有看见
  • [技术干货] LINUX云服务器进程D状态问题分析
           问题描述在Linux系统环境,进程在内核模式下等待I/O完成时通常会进入不间断睡眠状态,此时使用ps或top命令输出的进程显示为D状态。       问题分析在正常情况下,不间断状态只持续几分之一秒。但是,异常情况下,进程可能会停留在此状态更长的时间或(在最坏的情况下)无限期地停留。这种状态下,即使使用“kill -9”也无法杀死进程,因为在进程唤醒之前,kill信号无法传递给进程。要确定进程不可中断的原因,就需要找出进程正在等待什么的更多信息。从RHEL5.5 版开始,RHEL包含一个内核线程,用于监视停留在D状态超过指定超时时间的进程。默认情况下,超时时间为120秒,可以使用内核参数 kernel.hung_task_timeout 修改或禁用它。当检测到此类进程时,该内核线程将有关该进程的信息(包括其内核堆栈跟踪)转储到 /var/log/messages。      我们也可以使用sysrq工具将有关进程的信息发送到/var/log/messages。       实验模拟在CentOS 8.2环境模拟一个处于D状态的进程并进行实验分析:使用LVM卷的 suspend 特性,暂停IO,使得上层应用程序处于D状态。   (1)使用losetup创建一个卷作为pv的磁盘。# dd if=/dev/zero of=/tmp/diskfile count=2048 bs=1M# losetup --show -f /tmp/diskfile         (2)使用/dev/loop0创建pv, vg和lv。# pvcreate /dev/loop0# vgcreate vg01 /dev/loop0# lvcreate -n lv01 -L 1G vg01(3)在lv上创建一个文件系统并挂载到/mnt目录。# mkfs.ext4 /dev/vg01/lv01# mount /dev/vg01/lv01 /mnt           (4)写IO同时暂停 lv。# dmsetup suspend /dev/vg01/lv01 && dd if=/dev/urandom of=/mnt/iotest.img count=1024 bs=1M      此时,该进程就会处于D状态,命令不会返回到shell提示符。可以通过另一个 shell 终端来查看这个进程:# ps axl | awk ‘$10 ~ /D/’        (5)分析/var/log/messages日志文件。在当前实验场景,我们通过暂停进程使用的lv,使进程的IO操作发生阻塞,模拟出D进程现象。我们从/var/log/messages也看到了较为详细的相关日志信息。        在实际生产环境中,当出现D进程时,进程无法被杀死,通常需要重新启动系统来解决问题。/var/log/messages日志中也并不一定会有相关日志信息输出。这时我们可以使用sysrq工具手动从内核收集D进程信息,以进行问题分析。# less /var/log/messages我们依旧在当前实验环境使用sysrq工具进行手动从内核收集D进程信息的实验操作:启用sysrq的功能:# echo 1 > /proc/sys/kernel/sysrq转储处于不可中断(阻塞)状态的任务。# echo w > /proc/sysrq-trigger将当前任务列表及其信息转储到您的控制台。# echo t > /proc/sysrq-trigger显示所有活动 CPU 的堆栈回溯。# echo l > /proc/sysrq-trigger这会将任务和线程信息转储到/var/log/messages:           问题解决将任务和线程信息转储到/var/log/messages,恢复lv的IO:# dmsetup resume /dev/vg01/lv01恢复LV的IO后,进程状态也由D变为R:         背景知识    1、LINUX进程的几种状态:(1)TASK_RUNNING:(R)进程当前正在运行,或者正在运行队列中等待调度。只有在该状态的进程才可能在CPU上运行,同一时刻可能有多个进程处于运行状态。(2)TASK_INTERRUPTIBLE:(S)进程处于睡眠状态,处于这个状态的进程因为等待某事件的发生(比如等待socket连接、等待信号量),而被挂起。当这些事件发生时,对应的等待队列中的一个或多个进程将被唤醒。一般情况下,进程列表中的绝大多数进程都处于TASK_INTERRUPTIBLE状态。进程可以被信号中断。接收到信号或被显式的唤醒呼叫唤醒之后,进程将转变为TASK_RUNNING 状态。(3)TASK_UNINTERRUPTIBLE:(D)不可中断的睡眠状态,此进程状态类似于 TASK_INTERRUPTIBLE,只是它不会处理信号。不可中断,指的是进程不响应异步信号,无法用kill命令关闭处于TASK_UNINTERRUPTIBLE状态的进程。(4)TASK_STOPPED:进程已中止执行,它没有运行,并且不能运行。接收到 SIGSTOP 和 SIGTSTP 等信号时,进程将进入这种状态。接收到 SIGCONT 信号之后,进程将再次变得可运行。(5)TASK_TRACED:(T)正被调试程序等其他进程监控时,进程将进入这种状态。(6)EXIT_ZOMBIE:(Z)进程已终止,它正等待其父进程收集关于它的一些统计信息。不可被kill, 即不响应任务信号, 无法用SIGKILL杀死(7)EXIT_DEAD:(X)最终状态(正如其名)。将进程从系统中删除时,它将进入此状态,因为其父进程已经通过 wait4() 或 waitpid() 调用收集了所有统计信息。EXIT_DEAD状态是非常短暂的,几乎不可能通过ps命令捕捉到。(8)TASK_KILLABLE:Linux® kernel 2.6.25 引入了这种进程状态,用于将进程置为睡眠状态,它可以替代有效但可能无法终止的 TASK_UNINTERRUPTIBLE 进程状态,以及易于唤醒但更加安全的 TASK_INTERRUPTIBLE 进程状态。     2、关于SysRq:(1)什么是SysRq键?“SysRq”键也称为“Print Screen”键,按下SysRq键,LINUX内核会响应,除非内核完全崩溃。关于SysRq的参考链接:https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html(2)如何启用SysRq键:在配置LINUX内核时,如果对CONFIG_MAGIC_SYSRQ配置Y选项,完成内核编译后,可以通过/proc/sys/kernel/sysrq来调用SysRq 键调用的函数。以下是 /proc/sys/kernel/sysrq 中支持的值列表: 0 完全禁用 sysrq。 1 启用 sysrq 的所有功能。 >1 允许的 sysrq 函数的位掩码(有关详细的函数说明,请参见下文):2 =   0x2 - enable control of console logging level4 =   0x4 - enable control of keyboard (SAK, unraw)8 =   0x8 - enable debugging dumps of processes etc.16 =  0x10 - enable sync command32 =  0x20 - enable remount read-only64 =  0x40 - enable signalling of processes (term, kill, oom-kill)128 =  0x80 - allow reboot/poweroff256 = 0x100 - allow nicing of all RT tasks您可以通过以下命令在文件中设置值:echo "number" >/proc/sys/kernel/sysrq注意: /proc/sys/kernel/sysrq的值仅影响通过键盘进行的调用;/proc/sysrq-trigger则允许通过命令进行操作(需要具有管理员权限)。/proc/sysrq-trigger支持的命令及对应的功能如下: 命令功能b将立即重新启动系统而不同步或卸载您的磁盘。c如果配置,将执行系统崩溃并进行故障转储。d显示持有的所有锁。e向除 init 之外的所有进程发送 SIGTERM。f将调用 oom 杀手来杀死一个内存占用进程,但如果没有任何东西可以杀死,请不要惊慌。g由 kgdb(内核调试器)使用h将显示帮助(实际上,此处列出的任何其他键都将显示帮助。但h很容易记住:-)i向除 init 之外的所有进程发送 SIGKILL。j强行“解冻” - 文件系统被 FIFREEZE ioctl 冻结。k安全访问密钥 (SAK) 杀死当前虚拟控制台上的所有程序。注意:请参阅下面 SAK 部分中的重要注释。l显示所有活动 CPU 的堆栈回溯。m将当前内存信息转储到您的控制台。n用于使 RT 任务变得很好o将关闭您的系统(如果已配置和支持)。p将当前的寄存器和标志转储到您的控制台。q将转储每个 CPU 的所有武装 hrtimer 列表(但不是常规 timer_list 计时器)以及有关所有时钟事件设备的详细信息。r关闭键盘原始模式并将其设置为 XLATE。s将尝试同步所有已安装的文件系统。t将当前任务列表及其信息转储到您的控制台。u将尝试以只读方式重新挂载所有已挂载的文件系统。v强制恢复帧缓冲控制台。v导致 ETM 缓冲区转储 [ARM 特定]w转储处于不可中断(阻塞)状态的任务。x由 ppc/powerpc 平台上的 xmon 接口使用。在 sparc64 上显示全局 PMU 寄存器。转储 MIPS 上的所有 TLB 条目。y显示全局 CPU 寄存器 [SPARC-64 特定]。z转储 ftrace 缓冲区。0——9设置控制台日志级别,控制将打印到控制台的内核消息。(0,例如,将使得只有像 PANICs 或 OOPSes 这样的紧急消息才能发送到您的控制台。) 
  • [技术干货] yum命令和apt命令仅下载rpm或deb安装包的方式
    1、yum命令仅下载rpm安装包的方式添加--downloadonly选项命令示例:yum install gfortran --downloadonly如果gfortran已经安装则执行yum reinstall gfortran --downloadonly下载的rpm安装包在/var/cache/yum/ 路径下2、apt命令仅下载deb安装包的方式添加-d选项命令示例:apt install  gfortran -d如果gfortran已经安装则执行apt reinstall  gfortran -d下载的deb安装包在/var/cache/apt/archives 路径下
  • [技术干货] Linux安装cuda10.1,cudnn7.6.4 (深度学习) MindSporeGPU计算框架
    CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。当我们在进行深度学习任务时,我们有时需要使用GPU版本的框架,比如tensorflow-gpu或者mindspore-gpu版本就需要安装CUDA和CUDNN进行GPU加速支持1.下载cuda10.1CUDA Toolkit 10.1官方下载地址2.下载cudnn7.6.4cuDNN官方下载地址注意要下载与cuda版本对应的cudnn工具3.安装cuda10.1sudo bash cuda_10.1.105_4188.39_linux.run1看到如下界面,在控制台输入accept进行下一步安装然后再下述界面只需要勾选CUDA Toolkit 10.1即可,第一个为显卡驱动,如果当前驱动版本较低需要勾选安装4.添加软链接sudo cp ./include/* /usr/localcuda/includesudo cp ./lib64/* /usr/local/cuda/lib645.配置环境变量下图是已经安装好的cuda路径vim ~/.bashrc#cuda 配置cuda的安装路径,默认是在/usr/localexport CUDA_HOME=/usr/local/cuda-10.1export LD_LIBRARY_PATH=${CUDA_HOME}/lib64export PATH=${CUDA_HOME}/bin:${PATH}source ~/.bashrc6.验证是否安装成功nvcc -V1如果出现该提示,说明安装成功————————————————原文链接:https://blog.csdn.net/m0_47256162/article/details/119572924
  • [问题求助] linux禁用了sudo命令对数据库有什么影响
    linux禁用了sudo命令对数据库有什么影响
  • [技术干货] linux系统目录切换 cd
    cd / 切换到根目录cd /usr 切换到根目录下的usr目录cd ../ 切换到上一级目录 或者 cd ..cd ~ 切换到home目录cd - 切换到上次访问的目录
  • [技术干货] linux帮助命令
    --help命令 shutdown --help: ifconfig --help:查看网卡信息 man命令(命令说明书)  man shutdown 注意:man shutdown打开命令说明书之后,使用按键q退出
  • [技术干货] linux系统重启命令
    重启 shutdown -r now 立刻重启 shutdown -r 5 5分钟后重启 reboot 立刻重启
  • [技术干货] linux系统关机命令
    关机 shutdown -h now 立刻关机 shutdown -h 5 5分钟后关机 poweroff 立刻关机
  • [技术干货] linux系统管理命令 date 命令
    显示或设定系统的日期与时间。命令参数:1 ‐d<字符串> 显示字符串所指的日期与时间。字符串前后必须加上双引号。2 ‐s<字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号。3 ‐u 显示GMT。4 %H 小时(00‐23)5 %I 小时(00‐12)6 %M 分钟(以00‐59来表示)7 %s 总秒数。起算时间为1970‐01‐01 00:00:00 UTC。8 %S 秒(以本地的惯用法来表示) 9 %a 星期的缩写。10 %A 星期的完整名称。11 %d 日期(以01‐31来表示)。12 %D 日期(含年月日)。13 %m 月份(以01‐12来表示)。14 %y 年份(以00‐99来表示)。15 %Y 年份(以四位数来表示)。
  • [问题求助] 【众智】【AICPU】linux ut测试报错
    这个错误应该如何解决呀?
  • [技术干货] Linux:vi编辑器启动和退出以及保存文件
    vi是一个特殊的命令,也不光是命令还是Linux下的编辑器,由于篇幅关系就不在这边多做举例说明,讲在以后配置网络服务时介绍一些vi的实际应用。vi命令是Linux下全屏幕文本编辑,vi编辑提供了丰富的编辑功能。这个编辑器十分简陋,对初学者很不友好。但是因为Linux的vi编辑器作用非常大,尤其是在配置各种服务器时修改配置文件十分有用。vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。vi的启动和退出直接输入命令vi不指定文件名,由于这是一个没有命名的空文件,显示了vi的版本信息。vim是vi编辑器的改进版本,在vi编辑器的基础上扩展了很多实用的功能。大多数linux/unix版本都使用vim代替了原有的vi编辑器。或者直接使用vi打开文件,如果文件存在打开存在文件;如果不存在的话,将以我们指定的参数作为文件名。输入q!是强制退出,同时没有保存当前文件内容。如果文件没有进行修改,或者已经保存完毕也可以使用q退出。保存退出使用wq,保存强制退出wq!保存文件如果文件已经有文件名,我们在末行模式直接输入w保存,如果没有文件名,输入w 文件名进行保存。例如:w test其中test是文件名。那么在vi中也可以另存为,就是在保存完以后,我们再使用w 另存为文件名。转载:传智教育
  • [技术干货] Unix和Linux有什么区别?
    Linux和Unix都是功能强大的操作系统,都是应用广泛的服务器操作系统,有很 多相似之处,甚至有一部分人错误地认为Unix和Linux操作系统是一样的,然 而,事实并非如此,以下是两者的区别。开源性 Linux是一款开源操作系统,不需要付费,即可使用;Unix是一款对源码实行知 识产权保护的传统商业软件,使用需要付费授权使用。
  • [技术干货] nginx安装(linux版)
    Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品。一、安装前的准备在正式安装 Nginx 之前,我们需要先安装 安装编译工具及库文件 : gcc、PCRE、zlib、openssl 。1、下载 PCRE 安装包,下载地址:  http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz[ root@bogon src ]# cd / usr / local / src /[ root@bogon src ]# wget http : //downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz2、解压安装包:[ root@bogon src ]# tar zxvf pcre - 8.35 . tar . gz3、进入安装包目录[ root@bogon src ]# cd pcre - 8.354、编译安装 [ root@bogon pcre - 8.35 ]# ./ configure [ root@bogon pcre - 8.35 ]# make  && make install5、查看pcre版本[ root@bogon pcre - 8.35 ]# pcre - config -- version二、 安装 Nginx1、下载 Nginx,下载地址: https://nginx.org/en/download.html[ root@bogon src ]# cd / usr / local / src /[ root@bogon src ]# wget http : //nginx.org/download/nginx-1.6.2.tar.gz 2、解压安装包[ root@bogon src ]# tar zxvf nginx - 1.6 . 2.tar . gz3、进入安装包目录[ root@bogon src ]# cd nginx - 1.6 . 24、编译安装[ root@bogon nginx - 1.6 . 2 ]# ./ configure -- prefix = /usr/ local / webserver / nginx -- with - http_stub_status_module -- with - http_ssl_module -- with - pcre = /usr/ local / src / pcre - 8.35 [ root@bogon nginx - 1.6 . 2 ]# make [ root@bogon nginx - 1.6 . 2 ]# make install5、查看nginx版本[ root@bogon nginx - 1.6 . 2 ]# / usr / local / webserver / nginx / sbin / nginx - v到此,nginx安装完成。6、 启动nginx在nginx目录下执行如下命令./sbin/nginx7、 停止nginx    方式一:快速停止,此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。./sbin/nginx -s stop    方式二:完整停止(建议使用),此方式停止步骤是待nginx进程处理任务完毕进行停止。./sbin/nginx -s quit  8 、 安装测试,nginx安装成功,启动nginx,即可访问虚拟机上的nginx     
总条数:574 到第
上滑加载中