Linux自动探测网卡名称

Linux上需要自动探测通信的网卡名称,有时会有多网卡 方案一 通过ip命令提取默认路由,来找到默认通信的网卡 获取IP命令:

  获取网卡名称

  方案二 通过ansible_default_ipv4变量 获取IP:

获取网卡名称:

 

PaaS私有化产品部署离线安装源适配问题解决指南

前言 最新在适配我司产品在信创操作系统各个版本上的安装,在踩了很多坑后, 总结出了一套有效的适配流程,在此记录一下。 由于信创国产化操作系统都是基于openEuler系统或Centos系统来的,包括系统软件包名字,release号等都修改了,在信创服务器上安装产品其实最大的工作量是需要适配跟系统相关的软件,和编译arm64版的二进制文件,尤其前一个比较难弄,因为有很多信创系统和发行版本,我们的目标是, 利用一台x86_64或者arm64架构的机器来构建所有的软件源,基本思路就是: 由于官方没有信创docker镜像,需要自己做,首先需要制作信创os docker镜像的流程是: 启动一个容器做构建环境(如:centos) –> 配置官方源 –> 通过yum –installroot=… 来创建基本的系统目录 –> 通过tar打包系统 –> docker import做成镜像 docker run起来信创系统docker镜像用作构建环境—> 配置官方源 —通过repotrack下载–> 打包成nexus 适配细节 首先是制作os docker镜像,下面是制作脚本:

脚本逻辑解析: 由于一些信创操作系统中安装软件时需要认证机制,所以需要提前将认证放入对应目录(可以从安装好的os虚机中获取),此认证文件经过测试可以用到其它发行版本上,所以以后版本更新不用再更新此文件 脚本参数解析:

  –image_arch: 构建的架构,默认两种架构同时构建 –iso_path: 官方发行版.iso后缀的镜像文件地址,如果提供此参数,则os镜像从.iso文件中的repo源进行制作,构建出来的镜像软件版本与.iso文件中的版本保持一致,如果不提供此参数, 则脚本默认会从官方在线的repo软件源中去下载发行版对应的软件版本,可能会存在某些软件跟.iso文件中不一致(经过测试,仅中科方德安装openssl时出现了依赖不一致)   定义软件清单 下载离线源时,通过定义一下packages.yaml文件,来定义全部所需的软件包: packages.yaml:

定义各系统构建使用的Dockerfile 下面是制作麒麟离线源的Dockerfile:

中科方德在适配过程中出现了很多问题,总结如下: 官方没有docker-ce-20.10.17版本,需要配置docker el8源 官方没有sshpass等包,需要配置centos7的源 Read more…

一键自动创建磁盘并挂载

一键自动创建磁盘并挂载

 

WSL报:The attempted operation is not supported for the type of object referenced

在windows上打开wsl ubuntu的时候,报错: The attempted operation is not supported for the type of object referenced.   解决方式: 需要在注册表添加一个key 创建一个名为wsl2.reg(或任何其他带有 .reg 后缀的文件名)的文件 在 中打开此文件notepad.exe,将下面的文本粘贴到其中。 保存存档。 双击这个文件,给它Administrator权限 打开wsl.exe wsl2.reg 代码,我从这个问题复制

或者你可以wsl2.reg直接下载我的: https://baijifeilong.github.io/wsl2.reg 参考: https://jon.sprig.gs/blog/post/2140 https://github.com/microsoft/WSL/issues/4177

编译安装jq

编译安装jq   #下载源码 git clone https://github.com/stedolan/jq.git cd jq git checkout jq-1.6 # 拉取子模块 git submodule update –init #生成makefile.in文件 autoreconf -fi #生成makefile ./configure –with-oniguruma=builtin –prefix=/usr/local #编译 make

使screen支持滚动

  在Linux中,常用的串口工具有minicom和screen,minicom可能使用得比较多,但是我比较喜欢screen,因为它的输出是彩色的,更舒服、更能突出重点。 使用screen来打开串口也非常简单,如:screen /dev/ttyS0 115200 默认情况下,screen使用自己的缓冲区,使得无法方便地使用鼠标的滚轮或者终端(如konsole)的滚动条来拖动查看之前的输出信息。实际上,我们完全可以简单地通过配置文件(~/.screenrc)来实现这个功能:

  其实,只需要第一句就够了。第二句干嘛用的?其实我也不知道。。。 参考资料: http://unix.stackexchange.com/questions/43229/is-there-a-way-to-make-screen-scroll-like-a-normal-terminal http://www.saltycrane.com/blog/2008/01/how-to-scroll-in-gnu-screen/

.vimrc.local配置

 

CentOS7 yum 升级vim 8

 

rsyslog日志服务介绍以及日志收集

rsyslog日志服务介绍以及日志收集 一、Rsyslog服务介绍 1.1 rsyslog简介 rsyslog,是Centos系统自带的很强大的一块系统日志工具。 /var/log/messages这个日志大家并不陌生,是我们出现问题经常去查看的一个日志记录文件,这个日志里面信息的填写是由rsyslog服务维护的。 以前旧版本Centos 5系列的时候,此服务叫做syslog,从Centos 6版本开始,更名为rsyslog服务。以前是两个进程,rsyslogd(系统日志包括用户空间的各应用程序相关的日志)进程,klogd(内核日志包括kernel相关的日志)进程但是此进程由rsyslogd代为管理。所以只看到了rsyslogd一个进程。 以前旧版本syslog不能进行并行数据存储、效率低,不能实现放在专用数据管理文件中,升级到rsyslog之后有了下面的优点: (1). 多线程的服务,并发性能好。 (2). 可以使用udp、tcp、ssl、tls、relp等协议完成信息收集,可以集中存储在远程日志服务器中,早期的syslog仅支持简单的文本传输模式实现日志发送,不安全。 (3). 支持将日志放到mysql,pgsql,oracle等多种数据库中,这种行级锁的存储形式,不仅可以让多主机的信息写入更快,而且可以为web的界面展示提供很好的支持。 (4). 强大的过滤器,自定义过滤器,可实现过滤系统信息中的任意部分。 (5). 支持完整的自定义格式的输出格式配置。 1.2 rsyslog日志格式 完整的rsyslog日志中包含产生日志的程序模块(Facility)、严重性(Severity或Level)、时间、主机名或IP、进程名、进程ID和正文。 按照RFC 3164格式的话,rsyslog包分为3个部分,RPI,HEADER以及MSG总长度不能超过1024个字节: PRI(代表了facility以及severity)此字段只存在于rsyslog报文包头部分在log中并不常见。 HEADER部分包含一个时间戳以及发送方的主机名或ip地址,并且HEADER部分必须是一些可打印字符,时间戳部分是格式为“Mmm dd hh:mm:ss”的本地时间,其中Mmm是3个字母的英文缩写,如果日期小于10,必须空格代替缺少的一个数字,主机部分一般使用主机名,如果没有的话可以使用IPv4或者IPv6的地址。需要注意的是主机名中不能包含任何空格,时间戳和主机名后面都各自跟一个空格。 MSG部分一般包含生成消息的进程信息(TAG field)以及消息正文(CONTENT field)。TAG部分主要是包含生成消息的进程信息,不能超过32个字符。消息体必须是一些可见字符,这部分就是消息正文。TAG与CONTENT之间的间隔用非字母表字母隔开,一般用[或者:或者空格隔开。 1.3  Facility 包含 Facility(产生日志的设施,从功能和程序上对日志收集进行分类)在rsyslog中指定了产生日志消息的子系统,可选值为: auth : 身份认证 aupriv : 授权 cron : 计划任务 daemon:守护进程 kern : 内核 lpr Read more…