Linux
文章平均质量分 53
Captain_zw
这个作者很懒,什么都没留下…
展开
-
【Linux】使用Wake-on-lan配置Linux服务器远程开机
1、配置要求目的主机:处于关机状态的待开机服务器 源主机:控制目的主机开机的服务器,源主机处于开机状态 目的主机和源主机要处在同一局域网内2、配置目的主机开启wake-on-lan选项目的主机在BIOS里开启Wake On Lan 源主机安装wol工具2. 查看是否属于同一局域网# 在源主机ping一下目的主机# 能ping同则属于同一局域网ping 192.168.3.xx3. 查看目的主机是否开启了网络唤醒首先查看当前使用的网卡,记录IP和mac地址ifc.原创 2021-01-29 19:37:24 · 4766 阅读 · 1 评论 -
【Lua】lua的全局变量、局部变量、函数闭包和非局部变量(upvalue)
Lua脚本语言的变量是弱类型的,即变量没有类型,值才有类型,同一名称的变量具体类型要看所赋值的类型,如下a=1 --整型a=1.0 --浮点型a="ab" --string型a={} --table型a=function() ... end --function型1、全局变量和局部变量,类似于shell脚本全局变量:顾名思义,其生命有效期是全局的,整个lua文件中都可以使用,可以在任意地方定义(函数参数除外),但有个原则,使用时必须是先定义好的,否则就是nil,请看下面的代...转载 2020-06-17 20:15:54 · 3712 阅读 · 0 评论 -
【Linux】Shell脚本:while read line无法读取最后一行???
一、Shell脚本:while read line无法读取最后一行的问题今天利用shell脚本处理园区bucket信息时,发现在脚本中使用while read line循环逐行读取文件时总是无法处理到最后一行,脚本大致执行流程源码如下(红色部分为while循环,逐行读取命令行第一个参数指定的文件)。经过简单的查询学习后,将该问题的背景、原因、解决方案整理如下第二章节。 #!bin/bash while read line do data=`...line...` echo "${da原创 2020-06-12 17:05:38 · 6593 阅读 · 0 评论 -
【Linux】symbol lookup error: undefined symbol + nm指令定位错误
一、undefined symbol错误今天在运行模块执行文件时,出现了如下报错 "symbol lookup error"、"undefined symbol",提示 cos_getfile_mcd 可执行文件在加载 .so 文件时,出现了无法找到符号的错误,并给出了具体错误:_ZN20CCosGetfileTimerInfoC2Ev 符号未定义。那么如何定位该错误呢?一般可以先使用 ldd指令 去查看一下可执行文件的链接库,但是我的可执行文件是在加载调用.so文件的过程中出现报错,ldd指令原创 2020-06-05 17:16:01 · 22158 阅读 · 4 评论 -
【Linux】shell 脚本中$$、$#、$?、$1等分别代表什么意思?
$0 当前脚本的执行名字 $n 当前脚本执行命令的第n个参数值,n = 1..9 $* 当前脚本执行命令的所有参数,此选项参数可超过9个 $# 当前脚本执行命令的输入参数个数 $$ 当前shell的PID(即脚本运行的当前进程号) $! 上一个执行指令的PID(后台运行的最后一个进程的进程ID号) $? 上一个执行指令的返回值(显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误),如下所示...grep xxx a.txtecho $?...//就会 echo 上一条命令原创 2020-06-03 17:06:15 · 12042 阅读 · 0 评论 -
【Linux】“grep -v grep”命令的作用 + 为什么需要使用该命令
一、简介我们经常会在shell脚本中见到如下命令:"ps -ef | grep test_sever| grep -v grep | wc -l",各子命令其作用如下ps -ef 指令用来查询所有进程; grep test_server通过管道来过滤指定 test_server 进程; grep -v 是反向查询的意思,即过滤出不包含 -v 参数后指定字符的信息; grep -v grep 的作用是即反向过滤除结果集中包含 grep 的项; wc -l 是统计结果的行数整条指令的作用就..原创 2020-06-03 15:26:41 · 7200 阅读 · 1 评论 -
【Linux】Shell脚本中使用变量替换Curl指令中的参数
一、shell中使用变量替换curl中的部分参数需要注意的是:shell脚本单引号中的变量也需要使用单引号括起来,使用双引号参数解析会不正确。这个问题折腾了我很久,切记!!!下面的例子完成的工作是:从 GARDEN_ID.txt 文件中通过 awk 命令获取指定的变量 Bucket_ID; 之后在curl 指令中使用Bucket_ID 变量替换部分参数; 对 curl 获取到的返回结果进行格式化处理,输出到目标文件中。Shell脚本中循环的使用请参考,Shell脚本中如何使用“循环”遍..原创 2020-05-22 20:25:14 · 4987 阅读 · 1 评论 -
【Linux】Shell脚本中如何使用“循环”遍历“数组”中的元素(包括MySQL的常用指令介绍)
一、背景实习过程中,今天mentor突然让我拉取一下远端园区数据库中的部分信息,因为包含很多不同园区的数据信息而且要以园区为单位生成文件来对数据进行存放,因此自然是需要使用shell脚本来自动生成文件。起初我写了一个一次生成一个文件的脚本,但是因为园区数量众多,生成一个数据文件就去修改脚本中的园区ID变量显然过于复杂,于是乎想到了能不能在shell脚本中创建一个园区ID的数组 + 使用循环遍历数组元素,只需填写一次数组就能通过循环自动将所有的文件拉取并生成出来。本来在C/C++、Python、J原创 2020-05-21 20:27:41 · 12779 阅读 · 0 评论 -
【Linux】ipcs命令介绍
一、ICPSIpcs是Linux自带的用于查看共享内存、消息队列、信号量使用情况的工具,用于帮助定位多进程通信中出现的问题。二、命令介绍# 查看该命令的使用帮助ipcs -h以下命令中没有的请查看上图中的介绍。# 查看当前使用的共享内存、消息队列及信号量的所有信息ipcs -a# 查看与共享内存、消息队列相关的进程消息ipcs -p# 查看各个资源的使用总结信息,其中可以看到使用的信号量集的个数、信号量的个数,以及消息队列中当前使用的消息个数总数、占用的空间字节数.原创 2020-05-19 20:09:10 · 861 阅读 · 0 评论 -
【Linux】GDB调试CoreDump
1、背景介绍Core Dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIGSEGV信号,然后就会core dump)。造成CoreDump的原因主要如下。内存访问越界 多线程程序使用了线程不安全的函数。 多线程读写的数据未加锁保护。 非法指针 堆栈溢出2、调试命令# 查看是否开启dump core功能,为0表示未开启ulimit -c # 开原创 2020-05-19 19:33:18 · 413 阅读 · 0 评论 -
【Linux】Linux的五种I/O方式
一、背景在搞清楚Linux的五种I/O方式之前,我们首先需要弄清楚的是同步/异步、以及阻塞/非阻塞的概念,下面先用一个事例做一个简单的介绍。某一天你去银行办理某个业务,而这个时候有很多人在办理业务,因此你需要等待,现在有下面4种情况:你自己主动去排队(同步),然后排队过程中你担心会漏掉你,于是不玩手机不干其他事情只是专心的等待队伍前进(阻塞); 你自己主动去排队(同步),但是在这个过程中你觉得很无聊,于是开始边玩手机边等(非阻塞); 银行有一个排号机器可以帮你排号并播放到号提醒(异步),于是原创 2020-05-19 17:10:52 · 1068 阅读 · 0 评论 -
【Linux】Tmux报错:sessions should be nested with care, unset $TMUX to force
Tmux开启报错:#--> tmux#--> error: sessions should be nested with care, unset $TMUX to force错误原因:已经打开了一个tmux 会话,然后在这个tmux会话中试图打开另一个tmux会话;这种嵌套的,一层套一层的,在虚拟会话中声明活着打开另一个虚拟回话,是不好的。解决方式:直接在命...原创 2020-01-17 11:03:59 · 8901 阅读 · 0 评论 -
【Linux】ssh连接内网服务器速度缓慢
问题描述:使用SSH命令行或者 xshell工具 连接内网服务器,卡在如下图状态很久才能连接上。故障原因:1、ssh登录过程中用到了DNS解析服务和GSSAPI认证(GSSAPI是一种用于在网络应用中执行强加密认证的ITEF 标准,在支持SSH V2的服务器上都是默认开启的) 2、默认情况下,GSSAPIAuthentication在服务器端和客户端都激活的。如果DNS服务出...原创 2020-01-15 17:06:02 · 955 阅读 · 0 评论 -
【Linux】Git常用命令
相关命令查看当前库的用户名和邮箱命令:git config user.name git config user.email设置当前库的用户名和密码git config user.name "Sallenkey" git config user.email "xxx@163.com"设置全局的用户名和密码git config --global user.name ...原创 2019-11-15 10:05:17 · 110 阅读 · 0 评论 -
【Linux】通过xshell从远端服务器“下载/上传”文件或文件夹
1、如果是文件夹针对文件夹,需要先做压缩操作,因为用于传输的lrzsz工具不支持文件夹的传输。# tar -zvcf cntr.tar.gz cntrMig///当前在~目录下,需要传输~/cntrMig/文件夹//先对其执行压缩操作2、通过lrzsz工具进行文件传输首先在Linux上需要安装安装lrzsz工具包(如果没有安装请执行以下命令,安装完的请跳过),安装完毕即可...原创 2019-11-11 21:10:45 · 5036 阅读 · 4 评论 -
【Linux】tmux常用命令
tmux是什么tmux(terminal multiplexer)是Linux上的终端复用神器,可从一个屏幕上管理多个终端(准确说是伪终端)。使用该工具,用户可以连接或断开会话,而保持终端在后台运行。类似的工具还有screen,个人对这二者的使用感受是,用过tmux就再也不想用screen了。tmux基本结构tmux的结构包括会话(session)、窗口(window)、窗格(pane...原创 2019-09-23 13:10:16 · 416 阅读 · 0 评论 -
【虚拟化】KVM、Qemu、Virsh的区别与联系
开始前,请看上一篇背景:虚拟化的简单理解背景首先看qemu,其中关键字emu,全称emulator模拟器,所以单纯使用qemu是采用的完全虚拟化的模式。Qemu向Guest OS模拟CPU,也模拟其他的硬件,GuestOS认为自己和硬件直接打交道,其实是同Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。由于所有的指令都要从Qemu里面过一手,因而性能比较差。按...原创 2019-09-23 10:18:20 · 3294 阅读 · 1 评论 -
【虚拟化】虚拟化的简单理解
原文:我是虚拟机我困惑!?内核指操作系统内核。所有的操作系统都有内核,无论是Windows还是Linux,都管理着三个重要的资源:计算,网络,存储。计算指CPU和内存,网络即网络设备,存储即硬盘之类的。内核是个大管家,想象你的机器上跑着很多的程序,有word,有excel,看着视频,听着音乐,每个程序都要使用CPU和内存,都要上网,都要存硬盘,如果没有一个大管家管着,大家随便用...转载 2019-09-23 09:46:49 · 683 阅读 · 0 评论 -
【Linux】快照技术整理
https://www.cnblogs.com/knitmesh/p/5444439.html(快照技术发展综述) https://www.ibm.com/developerworks/tivoli/library/t-snaptsm1/index.html(快照技术概述) https://www.cnblogs.com/qcloud1001/p/9322321.html(快照是什么?揭秘存储...原创 2019-08-27 11:08:24 · 1490 阅读 · 0 评论 -
【Docker】切换存储驱动【以 Overlay2 存储驱动切换为 Aufs 存储驱动为例】
一、更改存储驱动须知在切换Docker存储驱动前,需要了解支持其所需要的Linux操作系统类型、Linux内核版本、后端文件系统、Docker版本等,确认满足需要切换的存储驱动的要求。此外,每个存储驱动都有其自身的性能特征,对比不同存储驱动所适合的应用场景,选择最适合的:aufs、overlay和overlay2的所有操作都在文件级而不是块级。这更有效地使用内存,但容器的...原创 2019-08-26 17:30:42 · 2256 阅读 · 0 评论 -
【Mac】MAC下使用Terminal通过SSH远程登陆服务器
由于xshell没有mac的版本,一般情况下可以在mac终端里使用ssh命令来实现登陆服务器,其中username为要连接服务器的用户名,serverIP为要连接服务器的ip地址。sudo ssh <username>@<serverIP># username为连接服务器的用户名,serverIP为请求连接的服务器IP地址但是当连接机房服务器时,机房服...原创 2019-06-25 10:23:47 · 5252 阅读 · 1 评论 -
【Docker】bash: -c: line 0: syntax error near unexpected token `newline'
问题如下: docker-machine ssh myvm1 "docker swarm init --advertise-addr <myvm1 ip>"根据Docker官方文档,在使用上面docker-machine命令始化虚拟机myvm1的swarm服务时,出现报错如下图所示因为 ' < ' 和 ' > ' 是特殊字符,命令端输入命令时应该把 ...原创 2019-06-25 11:44:44 · 1251 阅读 · 0 评论 -
【Linux】shell编程入门
背景什么是shell编程?shell编程就是对一堆Linux命令的逻辑化处理。以简单的web程序开发为例,在以前如果要在本地将程序打包,然后部署到远程服务器,通常会经历如下几个步骤:拉取最新代码(git pull) 编译打包 上传并部署到远程服务器每次打包都要经历这一个阶段,效率低又烦躁。而此时,可以编写一个shell脚本,然后每次只需要运行一下这个shell脚本,即可实现打包部...转载 2019-07-01 16:45:04 · 110 阅读 · 0 评论 -
【Linux】/bin/bash和/bin/sh的区别
几种shellLinux中的shell有多种类型;其中最常用的几种是Bourne shell (sh)、C shell (csh) 和Korn shell (ksh),三者各有优缺点。Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourneshell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。 Li...原创 2019-07-01 17:16:22 · 3722 阅读 · 1 评论 -
【Docker】Docker常用命令行解析
# Docker CLI ### Docker CLI ##docker container --help # List Docker CLI commandsdocker login # Log in CLI session using your Docker credentialsdocker --version # Docker versiondocker versio...原创 2019-07-01 20:11:20 · 278 阅读 · 0 评论 -
【Docker】docker build高效利用cache
# 前言Dockerfile 可以通过docker build命令构建为一个新的镜像,Dockerfile 中每一条命令都会构建出一个新的镜像层。当你重新build相同的Docker时,Docker会逐条语句check自身的cache镜像层,如果命中相同的,就使用cache而不执行这条语句继续往下逐条check直至build完成。Docker build cache相关知识可以参考docker...原创 2019-07-02 09:34:56 · 3927 阅读 · 0 评论 -
【Docker】什么是“ apk add --virtual ”command?
在以下“ apk add --virtual ”命令中什么是.build-deps?无法在Alpine文档中找到解释,在许多Dockerfiles中看到这个引用。RUN apk add --no-cache --virtual .build-deps \gcc \freetype-dev \musl-devRUN pip install --no-cache-dir <pac...原创 2019-07-02 09:49:00 · 9138 阅读 · 0 评论 -
【Docker】如何在Docker容器中安装IOzone测试工具用于测试Docker存储驱动的性能
# 前言Github链接:https://github.com/acrelle/iozone-docker Dockerhub链接:https://hub.docker.com/r/acrelle/iozone在之前的博客中我已经介绍过了Docker的五种存储驱动(如下链接所示),目前Docker支持AUFS、Btrfs、Device mapper、OverlayFS、ZFS五种存储驱动。...原创 2019-07-02 10:39:10 · 419 阅读 · 0 评论 -
【Linux】IOzone测试工具部分参数解析
# IOzone简介IOzone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。可以测试 Read、write、re-read、re-write、read backwards、read strided、fread、fwrite、random read、pread、mmap、aio_read、aio_write 等等不同的模式下的硬盘的性能。 测试的时候请注意...原创 2019-07-02 16:17:08 · 5018 阅读 · 0 评论 -
【Docker】报错:Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: no such host
Docker Pull 镜像时报错:Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: no such host如下图所示:抓住结尾no such host 报错这个是因为dns域名没有解析的原因,编辑/etc/resolv.conf 文件,增加一行dns地址,例如:n...原创 2019-06-24 10:03:23 · 23181 阅读 · 1 评论 -
【Docker】报错:error pulling image configuration: ......net/http: TLS handshake timeout
Docker Pull 镜像时报错:error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/ca/ca96bab3e2aa5e8b7dbeef9b3197e573e7c13742b4eddbfc6473e...原创 2019-06-24 10:16:11 · 4867 阅读 · 0 评论 -
【Docker】以Overlay2存储驱动为例:分析Docker容器与镜像(底层只读镜像层+上层可读写容器层)在联合文件系统中的目录组织结构
【Docker】Docker的五种存储驱动原理及其应用场景 【Docker】容器存储管理综述【容器持久化数据管理+应用场景+与传统存储的对比】# Docker镜像与层Docker 镜像作为Docker容器的基础,由一系列层堆叠组成,每个层代表镜像的Dockerfile中的一条指令。除了最上层可写的容器层外,每个层都是只读了,且每个层与之前的层只有一部分差异。当创建并启动一个新的容器时,Do...原创 2019-07-04 21:37:24 · 2501 阅读 · 0 评论 -
【Docker】Docker之操作系统Alpine
简介Alpine Linux 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk,可以通过 https://pkgs.alpi...转载 2019-07-01 11:53:31 · 493 阅读 · 0 评论 -
【Docker】核心技术介绍
Docker 核心是一个操作系统级虚拟化方法, 理解起来可能并不像 VM 那样直观。我们从虚拟化方法的四个方面:隔离性、可配额/可度量、便携性、安全性来详细介绍 Docker 的技术细节。一、隔离性:Linux Namespace (ns)每个用户实例之间相互隔离, 互不影响。 一般的硬件虚拟化方法给出的方法是 VM,而 LXC 给出的方法是 container,更细一点讲就是 kerne...原创 2019-07-24 16:33:27 · 321 阅读 · 0 评论 -
【Linux】浅谈linux中的根文件系统(rootfs的原理和介绍)
linux中有一个让很多初学者都不是特别清楚的概念,叫做“根文件系统”。我接触linux前前后后也好几年了,但是对这个问题,至今也不是特别的清楚,至少没法给出一个很全面很到位的解释。于是,今天我们就来理一理这个话题。一、先交代一下文件系统在开始讨论根文件系统这个话题之前,我们必首先交代一下文件系统这个概念。毕竟,根文件系统只是文件系统中的一种比较特殊的形式而已。根据伟大的百度百科:文件...转载 2019-07-24 18:02:07 · 226 阅读 · 0 评论 -
【Docker】分析Overlay2存储驱动对于镜像的目录组织结构
接上一篇: 【Docker】以Overlay2存储驱动为例:分析Docker容器与镜像(底层只读镜像层+上层可读写容器层)在联合文件系统中的目录组织结构分别依次打开Overlay2目录中的python镜像自底向上的每一层目录,如下所示:在当前镜像运行的容器中创建 a.py 文件后,commit当前镜像,并kill当前容器,去查看刚刚commit的镜像驱动。会发现前一个镜像的可写层/...原创 2019-07-17 20:52:08 · 726 阅读 · 0 评论 -
【Linux】Ubuntu各版本号和名称对照
版本 开发代号 中译 发布日期 支持结束时间 内核版本 桌面版 服务器版 4.10 Warty Warthog 多疣的疣猪 2004-10-20 2006-04-30 2.6.8 5.04 Hoary Hedgehog 白发的刺猬 2005-04-08 2006-10-31 2.6.10 ...原创 2019-06-19 10:25:52 · 3311 阅读 · 0 评论