关于linux:linux-密钥登录

一。创立公钥和私钥应用命令: ssh-keygen -t rsa -b 4096 -C “youremail@qq.com”指定密钥类型,默认是 rsa,能够省略。设置正文文字,比方邮箱。指定密钥文件存储文件名。 而后始终回车搞定对了有个坑如果 win 下没有这个文件夹须要先创立文件夹否则生成不了默认地址为 C:\Users\Administrator.ssh二. linux 上的操作,至于如果登录 linux 等就不具体赘述,个别状况下是 root 账号登录,防止权限有余等问题 创立账户 useradd -g groupName userName切换至新的用户 sudo su userName具体操作cd ~ #进入该账户的 homemkdir .ssh # 创立 .ssh 文件夹cd .sshrz -bye #上传公钥cp id_rsa.pub authorized_keys #复制改名chmod 600 * #给这个文件夹权限其实这里就能够用对应的私钥登录了 三。将 SSH 密钥增加到 ssh-agent;备用地址 : https://help.github.com/artic... eval $(ssh-agent -s)Agent pid 59566ssh-add ~/.ssh/id_rsa 源码附件曾经打包好上传到百度云了,大家自行下载即可~ 链接: https://pan.baidu.com/s/14G-b...提取码: yu27百度云链接不稳固,随时可能会生效,大家放松保留哈。 如果百度云链接生效了的话,请留言通知我,我看到后会及时更新~ 开源地址码云地址:http://github.crmeb.net/u/defu Github 地址:http://github.crmeb.net/u/defu

June 21, 2022 · 1 min · jiezi

关于linux:Linux解决Ubuntu虚拟机手动扩容后无法进入系统问题

前言最近在钻研瑞芯微的rv1109开发板,在编译SDK的时候发现虚拟机的空间有余,扩容之后开机发现零碎卡在开机加载,网上冲浪发现是零碎无奈辨认新扩容的空间,如是开启排雷之旅。 1、解决方案通过虚拟机的ISO映像从CD/DVD (SATA)进入零碎后实现扩大空间的调配。 1.1 设置虚拟机启动项先设置虚拟机的启动形式,在CD/DVD (SATA)选项下,勾选“启动时连贯”和“应用ISO映像文件”,并抉择须要加载的Ubuntu的ISO文件。设置实现后,重新启动虚拟机,启动后按键盘“F2”进入BIOS设置界面。这里可能会呈现无奈进入BIOS界面的状况,这是因为虚拟机进入BIOS的提醒工夫很短,来不及点击F2,这里从以下两个办法进入BIOS界面 1.2 批改虚拟机文件,进入BIOS进入虚拟机的存储目录,找到虚拟机文件(后缀为.vmx)应用记事本关上虚拟机文件,在最初加一行 bios.forcesetuponce=“TRUE”这里是单次设置,下次须要开机启动BIOS,须要从新增加此设置。在虚拟机文件的最初一行增加代码 bios.bootdelay=“5000”,这个代码是缩短系统启动画面工夫,这样在启动时按F2就能够顺利进入BIOS 1.3 设置开机启动项重新启动虚拟机,进入BIOS设置界面,切换到Boot下,通过键盘上"Shift"+"="将CD-ROM Drive移到最下面。设置实现后切换到EXIT,保留bios设置后退出。 ## 1.4 进入零碎调配扩大空间从新进入零碎,此时零碎显示Welcom界面,抉择Try Ubuntu进入零碎后,点击左下角抉择程序,搜寻软件GParted,关上该软件,此时会显示新扩大的20G未调配空间将未调配的20G空间先挂在/dev/sda2,先右键抉择/dev/sda2,而后抉择Resize/Move。将标尺空间拉到最大值。而后再将空间挂到/dev/sda5下,操作如上,挂载胜利之后,点击软件上方的“√”,而后抉择“Apply”,实现空间的理论扩大过程。实现整个空间扩大之后,重新启动虚拟机,这时查看虚拟机的可用空间就为扩大之后的空间容量了。

June 20, 2022 · 1 min · jiezi

关于linux:故障纪实-一次-Linux-虚拟机启动故障

VMware 虚拟机因为笔记本忽然断电故障了,开机提醒“Entering emergency mode. Exit the shell to continue.”,如下图所示: 依照提醒,应用 journalctl 命令查看日志,找出要害的提醒。这里倡议应用 journalctl 去翻页查找,或者相似 journalctl -n 100 这样多打印一些日志。要害的谬误日志会“红色”显示,如下图所示,提醒:XFS(dm-0): Internal error XFS_WANT_CORRUPTED_GOTO at line 1700 of file fs/xfs/libxfs/xfs_alloc.c. 通过该提醒初步判断文件系统曾经损坏。能够应用 xfs_check 命令对文件系统进行查看: xfs_check /dev/mapper/centos-root /顺便说一下,/dev/mapper/centos-root 是啥?就是 centos 虚拟机默认的文件系统: [root@k8s-slave1 ~]# df -h文件系统 容量 已用 可用 已用% 挂载点devtmpfs 899M 0 899M 0% /devtmpfs 910M 0 910M 0% /dev/shmtmpfs 910M 9.9M 900M 2% /runtmpfs 910M 0 910M 0% /sys/fs/cgroup/dev/mapper/centos-root 27G 3.9G 24G 15% /解决办法: ...

June 20, 2022 · 1 min · jiezi

关于linux:Linux-Centos-搭建集群图文教程

本周写看线程池的源码、设计模式都卡文,然而想想本人还差几个中间件没学习,就打算先搭建一下这个Linux的服务环境。前面咱们搭建集群、大数据, 都是用这个环境来搭建。先装上Linux我本机是windows,所以就须要一个Vm Ware,装置教程参看: https://zhuanlan.zhihu.com/p/...。这个教程十分具体。接下来咱们须要操作系统的镜像,在搜索引擎中搜寻Centos 进去之后选第一个就行。 接着点下一步,到时区那里抉择上海。设置用户名,咱们输出bigdata01。 安排网络在终端中输出命令 hostname,查看主机名字设置hostname: hostnamectl set-hostname bigdata01网关对立设置为 192.168.2.1,前面搭建集群, 调配的IP为 192.168.2.128 bigdata01192.168.2.129 bigdata02192.168.2.130 bigdata03终端中输出halt,关机 而后进入Linux终端, 咱们配置一下网络. cd /etc/sysconfig/network-scripts/ vi ifcfg-ens33将BOOTPROTO改为staticONBOOT由no改为yes新加配置IPADDR=192.168.2.128GATEWAY=192.168.2.1BROADCAST=192.168.2.255DNS1=114.114.114.114DNS2=8.8.8.8vi /etc/hosts 改下主机名 追加配置 192.168.2.128 bigdata01service NetworkManager stop/etc/init.d/network restartchkconfig NetworkManager offvi /etc/resolv.conf 追加 nameserver=192.168.2.1systemctl restart network而后ping www.baidu.com 这台虚拟机就能连互联网了而后就能够通过XShell 连贯虚拟机了装置服务器上必要的软件# 工夫同步yum -y install npt ntpdatentpdate cn.pool.ntp.orghwclock --systochyum install lrzszwget https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.rpmrpm -ivh jdk-8u151-linux-x64.rpm# 配置环境变量vi /etc/profile# 追加上面这样export JAVA_HOME=/usr/java/jdk1.8.0_151export CLASSPATH=$JAVA_HOMT\lib:$CLASSPATHexport PATH=$JAVA_HOME\bin:$PATHsource /etc/profile那说好的集群呢? 每一台都要这样来一次,太麻烦了吧? VM Ware 有个复制性能,咱们复制就行。复制之前先关机一下。 ...

June 19, 2022 · 1 min · jiezi

关于linux:docker容器操作宿主机执行命令

需要失常状况下这种操作比拟反设计,须要审慎应用有些时候咱们应用docker的时候会须要用到宿主机命令操作,比方 执行 netplan apply失效机器网络配置查看宿主机网络信息应用ifconfig或者 ip addr从容器收回命令重启宿主机具体实现最简略的实现应用docker运行一个ubuntu容器进入容器之后执行nsenter命令查看宿主机网络配置信息 $ sudo docker run -it --pid=host --privileged=true ubuntu /bin/bash# 进入容器外部之后执行/# nsenter -a -t 1 sh -c "ip addr"实现原理docker run 参数--pid=host 应用宿主机命名空间,不便容器获取到宿主机所有过程信息把宿主机的/proc文件夹挂载进入容器的/proc门路,其中/proc/1作为nsenter的target,作为容器向宿主机发送命令的要害局部--privileged=true 使得docker容器有root权限执行宿主机命令,确保从容器执行命令的时候不会产生权限有余谬误nsenter命令nsenter命令是一个能够在指定过程的命令空间下运行指定程序的命令 $ nsenter --help用法: nsenter [选项] [<程序> [<参数>...]]以其余程序的名字空间运行某个程序。选项: -a, --all enter all namespaces -t, --target <pid> 要获取名字空间的指标过程 -m, --mount[=<文件>] 进入 mount 名字空间 -u, --uts[=<文件>] 进入 UTS 名字空间(主机名等) -i, --ipc[=<文件>] 进入 System V IPC 名字空间 -n, --net[=<文件>] 进入网络名字空间 -p, --pid[=<文件>] 进入 pid 名字空间 -C, --cgroup[=<文件>] 进入 cgroup 名字空间 -U, --user[=<文件>] 进入用户名字空间 -S, --setuid <uid> 设置进入空间中的 uid -G, --setgid <gid> 设置进入名字空间中的 gid --preserve-credentials 不干预 uid 或 gid -r, --root[=<目录>] 设置根目录 -w, --wd[=<dir>] 设置工作目录 -F, --no-fork 执行 <程序> 前不 fork -Z, --follow-context 依据 --target PID 设置 SELinux 环境 -h, --help display this help -V, --version display version更多信息请参阅 nsenter(1)。具体执行 ...

June 18, 2022 · 1 min · jiezi

关于linux:使用代理加速apt和git

vpn信息(应用V2ray)本地提供基于http和sock5的vpn服务,凋谢端口如下 socks5://127.0.0.1:20170http://127.0.0.1:20171apt 减速配置办法批改环境变量办法$ export http_proxy=http://127.0.0.1:20171$ sudo apt update批改apt配置文件办法$ cd /etc/apt/apt.conf.d$ vim proxy# 写入如下程序Acquire::http::proxy "http://127.0.0.1:20171/";Acquire::https::proxy "https://127.0.0.1:20171/";命令行长期写入办法这个是比拟举荐的办法$ sudo apt -o Acquire::https::proxy="http://127.0.0.1:20171/" install -y cmakegit减速举荐应用socks5协定目前次要是减速github.com的我的项目,配置的时候能够抉择具体的网址进行减速个别在国内如果是gitee.com的我的项目不须要应用减速如果只配置https代理,理论应用的时候发现没有什么减速成果须要同时配置https和http协定代理,减速成果最好配置命令 $ git config --global http.https://github.com.proxy socks5://127.0.0.1:20170$ git config --global https.https://github.com.proxy socks5://127.0.0.1:20170配置实现之后能够在$HOME目录下查看增加的项,也能够间接批改这个文件 $ cat ~/.gitconfig [https "https://github.com"] proxy = socks5://127.0.0.1:20170[http "https://github.com"] proxy = socks5://127.0.0.1:20170感受一下减速后场景 $ git clone https://github.com/torvalds/linux.git正克隆到 'linux'...remote: Enumerating objects: 8843638, done.^C收对象中: 0% (31554/8843638), 15.20 MiB | 9.81 MiB/s

June 18, 2022 · 1 min · jiezi

关于linux:tips利用netstat去查找应用占用的端口

背景:正吃饭来电话,说数据不更新了,要迅速解决问题!而后排查,发现xxl-job的执行器没有主动注册进去,接手他人的我的项目,代码不熟,其实xxl-job也不是很熟,哈这个时候通过代码排查晓得执行器的ip,不晓得端口啊,其实最初发现就是默认的9999操作:去服务器上查找服务,执行 ps -ef | grep java,发现服务过程id:23342再执行netstat -nap|grep 23342,看到LISTEN的一共有四个端口,别离是8899、46276、99、99、20882,此时不晓得xxl-job默认端口的前提下,一个个试一下,疾速解决问题!总结:一些常见的中间件的默认端口还是要熟记于心,或者至多有个中央能够查问;netstat命令也用,但并没有深刻理解它的各个参数的作用留坑1、常见中间件的默认端口整顿;2、以上两条命令执行后每列数据代表的意义详解;附该命令的个别格局为 :netstat [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]选项命令中各选项的含意如下:-a 显示所有socket,包含正在监听的。-n 以数字模式显示地址和端口号。-r 显示外围路由表,格局同“route -e”。-t 显示以后连贯卸载状态。-v 显示正在进行的工作。-p proto 显示proto指定的协定的连贯。-b 显示在创立每个连贯或侦听端口时波及的可执行程序。-e 显示以太网统计。此选项能够与 -s 选项联合应用。-f 显示内部地址的齐全限定域名(FQDN)。-o 显示领有的与每个连贯关联的过程PID。-q 显示所有连贯、侦听端口和绑定的非侦听 TCP 端口。-s 显示每个协定的统计。-x 显示 NetworkDirect 连贯、侦听器和共享端点。-y 显示所有连贯的 TCP 连贯模板。无奈与其余选项联合应用。interval 从新显示选定的统计,各个显示间暂停的 距离秒数。按 CTRL+C 进行从新显示统计。如果省略,则 netstat 将打印以后的配置信息一次。 [root@beijing-192-168-1-144 ~]# ps -ef | grep javaroot 23342 1 25 Apr24 ? 13-20:18:20 /usr/bin/java -server -Xms1024m -Xmx1024m -jar /opt/levi/sc/projects/sc-beijing-web/sc-beijing-web.jar --spring.config.location=/opt/beijing-sc-profiles/bootstrap.properties --spring.profiles.active=prod --spring.application.name=sc-beijing-web --spring.profiles.active=prod[root@beijing-192-168-1-144 ~]#[root@beijing-192-168-1-144 ~]#[root@beijing-192-168-1-144 ~]#[root@beijing-192-168-1-144 ~]# netstat -nap|grep 23342tcp6 0 0 :::8899 :::* LISTEN 23342/javatcp6 0 0 :::46276 :::* LISTEN 23342/javatcp6 0 0 :::9999 :::* LISTEN 23342/javatcp6 0 0 :::20882 :::* LISTEN 23342/javatcp6 0 0 192.168.1.144:46276 192.168.1.144:35214 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:35488 192.168.1.122:5672 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:51200 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:49702 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:51916 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:50124 192.168.1.144:18701 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:59396 192.168.1.144:20881 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:60710 192.168.1.9:8848 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:51188 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:52458 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 594 0 192.168.1.144:46276 192.168.1.144:60272 CLOSE_WAIT 23342/javatcp6 0 0 192.168.1.144:49478 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:50626 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:50800 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:51340 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:50858 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 1079 0 192.168.1.144:46276 192.168.1.144:59648 CLOSE_WAIT 23342/javatcp6 0 0 192.168.1.144:49812 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:46276 192.168.1.144:37754 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:60770 192.168.1.9:8848 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:60772 192.168.1.9:8848 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:60774 192.168.1.9:8848 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:50672 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:49662 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:51948 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:38610 192.168.1.9:9090 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:50314 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:52582 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:49318 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:46276 192.168.1.144:37756 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:52460 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:60728 192.168.1.9:8848 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:51710 192.168.1.233:3307 ESTABLISHED 23342/javatcp6 0 0 192.168.1.144:50784 192.168.1.233:3307 ESTABLISHED 23342/javaudp6 0 0 :::46993 :::* 23342/javaudp6 0 0 :::33620 :::* 23342/javaudp6 0 0 :::35309 :::* 23342/javaudp6 0 0 :::55380 :::* 23342/javaudp6 53504 0 :::39410 :::* 23342/javaunix 2 [ ] STREAM CONNECTED 93873754 23342/javaunix 2 [ ] STREAM CONNECTED 93880838 23342/java[root@beijing-192-168-1-144 ~]#

June 18, 2022 · 2 min · jiezi

关于linux:Linux-添加用户和组

原文地址: Linux 增加用户和组 欢送拜访我的博客: http://blog.duhbb.com/ 引言本文记录了 Linux 中增加用户和组的一些实用命令, 将其会集到一起不便查找和排查问题. 缘起于一次启动 nginx 报错了, 起初发现是 nginx 这个用户没有, 随想到须要减少组和用户, 将相干命令记录于此. cannot open /etc/groupgroupadd :cannot open /etc/group, 起初看他人的博客介绍, 原来是在增加用户时, 须要波及到 /etc/group, /etc/gshadow, /etc/shadow, /etc/passwd 这是个文件. 而且这四个文件的权限都是暗藏权限, 起初批改这四个文件的权限后在增加用户和组就能够了. 批改文件权限chattr -i /etc/gshadowchattr -i /etc/shadowchattr -i /etc/groupchattr -i /etc/passwd增加用户和组groupadd apacheuseradd -g apache apacheuseradd -s /sbin/nologin -M nginx -g nginxuseradd 命令的选项: --badnames do not check for bad names -b, --base-dir BASE_DIR 新账户的主目录的基目录 --btrfs-subvolume-home use BTRFS subvolume for home directory -c, --comment COMMENT 新账户的 GECOS 字段 -d, --home-dir HOME_DIR 新账户的主目录 -D, --defaults 显示或更改默认的 useradd 配置 -e, --expiredate EXPIRE_DATE 新账户的过期日期 -f, --inactive INACTIVE 新账户的明码不活动期 -g, --gid GROUP 新账户主组的名称或 ID -G, --groups GROUPS 新账户的附加组列表 -h, --help 显示此帮忙信息并退出 -k, --skel SKEL_DIR 应用此目录作为骨架目录 -K, --key KEY=VALUE 不应用 /etc/login.defs 中的默认值 -l, --no-log-init 不要将此用户增加到最近登录和登录失败数据库 -m, --create-home 创立用户的主目录 -M, --no-create-home 不创立用户的主目录 -N, --no-user-group 不创立同名的组 -o, --non-unique 容许应用反复的 UID 创立用户 -p, --password PASSWORD 加密后的新账户明码 -r, --system 创立一个零碎账户 -R, --root CHROOT_DIR chroot 到的目录 -P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files -s, --shell SHELL 新账户的登录 shell -u, --uid UID 新账户的用户 ID -U, --user-group 创立与用户同名的组 -Z, --selinux-user SEUSER 为 SELinux 用户映射应用指定 SEUSER其余命令# 建用户:adduser phpq # 新建 phpq 用户passwd phpq # 给 phpq 用户设置明码# 建工作组groupadd test # 新建 test 工作组# 新建用户同时减少工作组useradd -g test phpq # 新建 phpq 用户并减少到 test 工作组# 注::-g 所属组 -d 家目录 -s 所用的 SHELL# 给已有的用户减少工作组usermod -G groupname usernamegpasswd -a user group# 长期敞开: 在/etc/shadow 文件中属于该用户的行的第二个字段 (明码) 后面加上*就能够了. 想复原该用户, 去掉*即可.# 或者应用如下命令敞开用户账号:passwd peter –l# 从新开释:passwd peter –u# 永久性删除用户账号userdel petergroupdel peterusermod –G peter peter # (强制删除该用户的主目录和主目录下的所有文件和子目录)# 从组中删除用户# 编辑/etc/group 找到 GROUP1 那一行, 删除 A 或者用命令 gpasswd -d A GROUP# 显示用户信息id usercat /etc/passwd# 查看用户和用户组的办法/etc/passwd # 用户列表文件/etc/group # 用户组列表文件cut -d : -f 1 /etc/passwd # 查看零碎中有哪些用户cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1 # 查看能够登录零碎的用户# 查看用户操作:w 命令 (须要 root 权限)w [username] # 查看某一用户who # 查看登录用户last # 查看用户登录历史记录原文地址: Linux 增加用户和组 ...

June 17, 2022 · 2 min · jiezi

关于linux:技术干货|浅析Linux如何解析网络帧

从初学者角度,介绍 Linux 内核如何接管网络帧:从网卡设施实现数据帧的接管开始,到数据帧被传递到网络栈中的第三层完结。重点介绍内核的工作机制,不会深刻过多代码层面的细节,示例代码来自 Linux 2.6。 设施的告诉伎俩 从计算机硬件的角度,一个数据帧从进入网卡到最初被内核解决的整体示意图如下: 当网卡设施实现一个数据帧的接管后,可能将数据帧暂存于设施内存,也可能通过 DMA(Direct memory access) 间接写入到主内存的接管环(rx ring),接着必须告诉操作系统内核对已接管的数据进行解决。上面将探讨几种可能的告诉伎俩。 轮询 轮询(Polling)指的是由内核被动地去查看设施,比方定期读取设施的内存寄存器,判断是否有新的接管帧须要解决。这种形式在设施负载较高时响应效率低,在设施负载低时又占用系统资源,操作系统很少独自采纳,联合其余机制后能力实现较现实的成果。 硬件中断 当接管到新的数据帧等事件产生时,设施将生成一个硬件中断信号。该信号通常由设施发送给中断控制器,由中断控制器分发给 CPU。CPU 承受信号后将从以后执行的工作中被打断,转而执行由设施驱动注册的中断处理程序来解决设施事件。中断处理程序会将数据帧拷贝到内核的输出队列中,并告诉内核做进一步解决。这种技术在低负载时体现良好,因为每一个数据帧都会失去及时响应,但在负载较高时,CPU 会被频繁的中断从而影响到其余工作的执行。 对接管帧的解决通常分为两个局部:首先驱动注册的中断处理程序将帧复制到内核可拜访的输出队列中,而后内核将其传递给相干协定的处理程序直到最初被应用程序生产。第一局部的中断处理程序是在中断上下文中执行的,能够抢占第二局部的执行,这意味着复制接管帧到输出队列的程序比生产数据帧的协定栈程序有更高的优先级。 在高流量负载下,中断处理程序会一直抢占 CPU。结果不言而喻:输出队列最终将被填满,但应该去出队并解决这些帧的程序处于较低优先级没有机会执行。后果新的接管帧因为输出队列已满无奈退出队列,而旧的帧因为没有可用的 CPU 资源不会被解决。这种状况被称为接管活锁(receive-livelock)。 硬件中断的长处是帧的接管和解决之间的提早非常低,但在高负载下会重大影响其余内核或用户程序的执行。大多数网络驱动会应用硬件中断的某种优化版本。 一次解决多个帧 一些设施驱动会采纳一种改进形式,当中断处理程序被执行时,会在指定的窗口工夫或帧数量下限内继续地入队数据帧。因为中断处理程序执行时其余中断将被禁用,因而必须设置正当的执行策略来和其余工作共享 CPU 资源。 该形式还可进一步优化,设施仅通过硬件中断来告诉内核有待解决的接管帧,将入队并解决接管帧的工作交给内核的其余处理程序来执行。这也是 Linux 的新接口 NAPI 的工作形式。 在实践中的组合 不同的告诉机制有其适宜的工作场景:低负载下纯中断模型保障了极低提早,但在高负载下体现蹩脚;计时中断在低负载下可能会引入过高提早并节约 CPU 工夫,但在高负载下对缩小 CPU 占用和解决接管活锁有很大帮忙。在实践中,网络设备往往不依赖某种繁多模型,而是采取组合计划。 以 Linux 2.6 Vortex 设施所注册的中断处理函数 vortex_interrupt(位于 /drivers/net/3c59x.c)为例: 设施会将多个事件归类为一种中断类型(甚至还能够在发送中断信号前期待一段时间,将多个中断聚合成一个信号发送)。中断触发 vortex_interrupt 的执行并禁用该 CPU 上的中断。如果中断是由接管帧事件 RxComplete 引发,处理程序调用其余代码解决设施接管的帧。vortex_interrupt 在执行期间继续读取设施寄存器,查看设施是否有新的中断信号收回。如果有且中断事件为 RxComplete,处理程序将持续解决接管帧,直到已解决帧的数量达到预设的 work_done值才完结。而其余类型的中断将被处理程序疏忽。软中断解决机制 当硬件中断信号达到 CPU 后,须要通过正当的任务调度机制,能力以较低提早解决接管帧,又防止接管活锁和饥饿等资源抢占问题。 一个中断通常会触发以下事件: 设施产生一个中断并通过硬件告诉内核。如果内核没有正在解决另一个中断(即中断没有被禁用),它将收到这个告诉。内核禁用本地 CPU 的中断,并执行与收到的中断类型相关联的处理程序。内核退出中断处理程序,从新启用本地 CPU 的中断。CPU 在执行中断号对应处理程序的期间处于中断上下文,中断会被禁用。这意味着 CPU 在解决某个中断期间,它既不会解决其余中断,也不能被其余过程抢占,CPU 资源由该中断处理程序独占。这种设计决定缩小了竞争条件的可能性,但也带来了潜在的性能影响。 显然,中断处理程序该当尽可能快地实现工作。不同的中断事件所须要的解决工作量并不相同,比方当键盘的按键被按下时,触发的中断处理函数只须要将该按键的编码记录下来,而且这种事件的产生频率不会很高;而解决网络设备收到的新数据帧时,须要为 skb 分配内存空间,拷贝接管到的数据,同时实现一些初始化工作比方判断数据所属的网络协议等。 为了尽量减少 CPU 处于中断上下文的工夫,操作系统为中断处理程序引入了上、下半部的概念。 ...

June 17, 2022 · 4 min · jiezi

关于linux:快速部署Ceph分布式高可用集群

疾速部署Ceph分布式高可用集群Ceph简介Ceph是一个PB,EB级别的分布式存储系统,能够提供文件存储,对象存储、和块存储,它可靠性高,易扩大,治理简便,其中对象存储和块存储能够和其余云平台集成。一个Ceph集群中有Monitor节点、MDS节点(用于文件存储)、OSD守护过程。 Ceph根底概念ceph-deploy 一个集群自动化部署工具,应用较久,成熟稳固,被很多自动化工具所集成,可用于生产部署; cephadm 从Octopus开始提供的新集群部署工具,反对通过图形界面或者命令行界面增加节点,目前不倡议用于生产环境,有趣味能够尝试; manual 手动部署,一步步部署Ceph集群,反对较多定制化和理解部署细节,装置难度较大,但能够清晰把握装置部署的细节。 admin-node: 须要一个装置治理节点,装置节点负责集群整体部署,这里咱们用CephNode01为admin-node和Ceph-Mon节点; mon: monitor节点,即是Ceph的监督治理节点,承当Ceph集群重要的治理工作,个别须要3或5个节点,此处部署简略的一个Monitor节点; osd: OSD即Object Storage Daemon,理论负责数据存储的节点,3个节点上别离有2块100G的磁盘充当OSD角色。 Ceph零碎初始化配置主机信息# 设置主机名#node1hostnamectl set-hostname node1#node2hostnamectl set-hostname node2#node3hostnamectl set-hostname node3# 写入hostscat >> /etc/hosts <<EOF192.168.1.156 node1192.168.1.157 node2192.168.1.159 node3EOFcat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.1.156 node1192.168.1.157 node2192.168.1.159 node3配置免密# 配置免密 (二选一)ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:nK3CqSGRBGZfrE5rncPEQ2eU/Gq6dttYMLIiesXHyO8 root@ceph-01The key's randomart image is:+---[RSA 3072]----+|.o ..o.. ||o.. .o = || ..+ o . || . + + . + || =o=+ooS . || ==*=+o. || .oo.+B .. ||. o..=.o+ ||.. ooEo.. |+----[SHA256]-----+# 将免密传输到各个主机上ssh-copy-id root@node1ssh-copy-id root@node2ssh-copy-id root@node3# 应用懒人形式配置免密 (二选一)yum install -y sshpassssh-keygen -f /root/.ssh/id_rsa -P ''export IP="node1 node2 node3"export SSHPASS=123123for HOST in $IP;do sshpass -e ssh-copy-id -o StrictHostKeyChecking=no $HOSTdone配置根底环境# 敞开防火墙systemctl stop firewalldsystemctl disable firewalldRemoved /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.# 敞开swapswapoff -ased -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab# 敞开selinuxsetenforce 0sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config配置YUM源# 配置yum源sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \ -i.bak \ /etc/yum.repos.d/CentOS-*.repo# 配置ceph源cat > /etc/yum.repos.d/ceph.repo <<EOF[noarch] name=Ceph noarch baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-17.2.0/el8/noarch/ enabled=1 gpgcheck=0 [x86_64] name=Ceph x86_64 baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-17.2.0/el8/x86_64/ enabled=1 gpgcheck=0EOF装置根底环境# 更新yum源yum update -y# 装置工具包、python-setuptools肯定要装置、不然会报错的yum install -y chrony conntrack ipset jq iptables curl sysstat libseccomp wget socat git vim epel-release epel-next-release调整时区\间# 配置零碎时区timedatectl set-timezone Asia/Shanghai# 配置时钟同步timedatectl status# 注:System clock synchronized: yes,示意时钟已同步;NTP service: active,示意开启了时钟同步服务# 写入硬件时钟# 将以后的 UTC 工夫写入硬件时钟timedatectl set-local-rtc 0# 重启依赖于零碎工夫的服务systemctl restart rsyslog systemctl restart crond杂项# 敞开无关服务systemctl stop postfix && systemctl disable postfix# 重启rebootCeph零碎装置初始化monitor节点yum install ceph -y# 初始化monitor节点# 在node1节点生成uuid,并在所有节点导入uuid环境变量[root@node1 ~]# uuidgen8d2cfd33-9132-48a7-8c00-3ef10cb5ddeb#node1export cephuid=8d2cfd33-9132-48a7-8c00-3ef10cb5ddeb#node2export cephuid=8d2cfd33-9132-48a7-8c00-3ef10cb5ddeb#node3export cephuid=8d2cfd33-9132-48a7-8c00-3ef10cb5ddeb# 所有节点创立Ceph配置文件:cat > /etc/ceph/ceph.conf <<EOF[global]fsid = 8d2cfd33-9132-48a7-8c00-3ef10cb5ddebmon initial members = node1, node2, node3mon host = 192.168.1.156, 192.168.1.157, 192.168.1.159public network = 192.168.1.0/24auth cluster required = cephxauth service required = cephxauth client required = cephxosd journal size = 1024osd pool default size = 3osd pool default min size = 2osd pool default pg num = 333osd pool default pgp num = 333osd crush chooseleaf type = 1EOF# 以下操作在node1节点执行# 为集群创立一个keyring,并生成一个monitor密钥。#node1ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'# 生成administrator keyring,生成client.admin用户并将用户增加到keyring。#node1ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'# 生成bootstrap-osd keyring,生成client.bootstrap-osd用户并将用户增加到keyring。#node1ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'# 将生成的密钥增加到中ceph.mon.keyring。#node1ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyringceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring# 将所有者更改为ceph.mon.keyring。#node1chown ceph:ceph /tmp/ceph.mon.keyring# 应用主机名,主机IP地址和FSID生成monitor map。另存为/tmp/monmap:#node1monmaptool --create --add node1 192.168.1.156 --add node2 192.168.1.157 --add node3 192.168.1.159 --fsid $cephuid /tmp/monmap# 复制monitor map到另外2个节点#node1scp /tmp/monmap root@node2:/tmpscp /tmp/monmap root@node3:/tmp# 复制ceph.client.admin.keyring到另外2个节点#node1scp /etc/ceph/ceph.client.admin.keyring root@node2:/etc/ceph/scp /etc/ceph/ceph.client.admin.keyring root@node3:/etc/ceph/# 复制ceph.mon.keyring到另外2个节点#node1scp /tmp/ceph.mon.keyring root@node2:/tmp/scp /tmp/ceph.mon.keyring root@node3:/tmp/#留神批改文件权限#node2chown ceph:ceph /tmp/ceph.mon.keyring#node3chown ceph:ceph /tmp/ceph.mon.keyring# 创立monitor数据目录#node1sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node1#node2sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node2#node3sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node3# 用monitor map和keyring填充monitor守护程序。#node1sudo -u ceph ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring#node2sudo -u ceph ceph-mon --mkfs -i node2 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring#node3sudo -u ceph ceph-mon --mkfs -i node3 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring# 查看生成的文件#node1ls /var/lib/ceph/mon/ceph-node1/keyring kv_backend store.db# 启动monitor服务#node1systemctl restart ceph-mon@node1systemctl enable ceph-mon@node1#node2systemctl restart ceph-mon@node2systemctl enable ceph-mon@node2#node3systemctl restart ceph-mon@node3systemctl enable ceph-mon@node3# 查看以后集群状态ceph -s cluster: id: 8d2cfd33-9132-48a7-8c00-3ef10cb5ddeb health: HEALTH_OK services: mon: 3 daemons, quorum node1,node2,node3 (age 0.35737s) mgr: no daemons active osd: 0 osds: 0 up, 0 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 0 B used, 0 B / 0 B avail pgs: # 若异样则启用msgr2# ceph mon enable-msgr2初始化manager节点#node1ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-node1sudo -u ceph vim /var/lib/ceph/mgr/ceph-node1/keyring[mgr.node1] key = AQBk7aZiZD1NDRAAfXyfT2ovmsJwADzkbioHzQ== #node2ceph auth get-or-create mgr.node2 mon 'allow profile mgr' osd 'allow *' mds 'allow *'sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-node2sudo -u ceph vim /var/lib/ceph/mgr/ceph-node2/keyring[mgr.node2] key = AQB67aZicvq7DhAAKEUipQSIDZEUZVv740mEuA==#node3ceph auth get-or-create mgr.node3 mon 'allow profile mgr' osd 'allow *' mds 'allow *'sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-node3sudo -u ceph vim /var/lib/ceph/mgr/ceph-node3/keyring[mgr.node3] key = AQCS7aZiC75UIhAA2aue7yr1XGiBs4cRt8ru3A==# 启动ceph-mgr守护程序:#node1systemctl restart ceph-mgr@node1systemctl enable ceph-mgr@node1#node2systemctl restart ceph-mgr@node2systemctl enable ceph-mgr@node2#node3systemctl restart ceph-mgr@node3systemctl enable ceph-mgr@node3# 通过ceph status查看输入来查看mgr是否呈现ceph status cluster: id: 8d2cfd33-9132-48a7-8c00-3ef10cb5ddeb health: HEALTH_WARN mons are allowing insecure global_id reclaim clock skew detected on mon.node2, mon.node3 OSD count 0 < osd_pool_default_size 3 services: mon: 3 daemons, quorum node1,node2,node3 (age 29s) mgr: node3(active, since 19s), standbys: node1, node2 osd: 0 osds: 0 up, 0 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 0 B used, 0 B / 0 B avail pgs: 增加OSD# 复制keyring到其余2个节点#node1scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@node2:/var/lib/ceph/bootstrap-osd/scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@node3:/var/lib/ceph/bootstrap-osd/# 创立OSD[root@node1 ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 100G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 99G 0 part ├─cs-root 253:0 0 61.2G 0 lvm / ├─cs-swap 253:1 0 7.9G 0 lvm └─cs-home 253:2 0 29.9G 0 lvm /homesdb 8:16 0 10G 0 disk # 3个节点上执行yum install ceph-volumeceph-volume lvm create --data /dev/sdb# 启动各个节点osd过程#node1systemctl restart ceph-osd@0systemctl enable ceph-osd@0#node2systemctl restart ceph-osd@1systemctl enable ceph-osd@1#node3systemctl restart ceph-osd@2systemctl enable ceph-osd@2# 查看集群状态ceph -s cluster: id: 8d2cfd33-9132-48a7-8c00-3ef10cb5ddeb health: HEALTH_WARN mons are allowing insecure global_id reclaim services: mon: 3 daemons, quorum node1,node2,node3 (age 5m) mgr: node3(active, since 4m), standbys: node1, node2 osd: 3 osds: 3 up (since 7s), 3 in (since 62s) data: pools: 1 pools, 1 pgs objects: 2 objects, 577 KiB usage: 18 MiB used, 30 GiB / 30 GiB avail pgs: 1 active+clean io: client: 1.2 KiB/s rd, 36 KiB/s wr, 1 op/s rd, 1 op/s wr recovery: 27 KiB/s, 0 objects/s增加MDS# 创立mds数据目录。#node1sudo -u ceph mkdir -p /var/lib/ceph/mds/ceph-node1#node2sudo -u ceph mkdir -p /var/lib/ceph/mds/ceph-node2#node3sudo -u ceph mkdir -p /var/lib/ceph/mds/ceph-node3# 创立keyring:#node1ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-node1/keyring --gen-key -n mds.node1#node2ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-node2/keyring --gen-key -n mds.node2#node3ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-node3/keyring --gen-key -n mds.node3# 导入keyring并设置权限:#node1ceph auth add mds.node1 osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-node1/keyringchown ceph:ceph /var/lib/ceph/mds/ceph-node1/keyring#node2ceph auth add mds.node2 osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-node2/keyringchown ceph:ceph /var/lib/ceph/mds/ceph-node2/keyring#node3ceph auth add mds.node3 osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-node3/keyringchown ceph:ceph /var/lib/ceph/mds/ceph-node3/keyring收尾所有节点批改ceph.conf配置文件,追加以下内容cat >> /etc/ceph/ceph.conf <<EOF[mds.node1]host = node1[mds.node2]host = node2[mds.node3]host = node3EOF重新启动所有服务#node1systemctl restart ceph-mon@node1systemctl restart ceph-mgr@node1systemctl restart ceph-mds@node1systemctl enable ceph-mds@node1systemctl restart ceph-osd@0#node2systemctl restart ceph-mon@node2systemctl restart ceph-mgr@node2systemctl restart ceph-mds@node2systemctl enable ceph-mds@node2systemctl restart ceph-osd@1#node3systemctl restart ceph-mon@node3systemctl restart ceph-mgr@node3systemctl restart ceph-mds@node3systemctl enable ceph-mds@node3systemctl restart ceph-osd@2查看集群状态ceph -s cluster: id: 8d2cfd33-9132-48a7-8c00-3ef10cb5ddeb health: HEALTH_WARN mons are allowing insecure global_id reclaim services: mon: 3 daemons, quorum node1,node2,node3 (age 9s) mgr: node3(active, since 4s), standbys: node1, node2 osd: 3 osds: 3 up (since 4s), 3 in (since 2m) data: pools: 1 pools, 1 pgs objects: 2 objects, 577 KiB usage: 18 MiB used, 30 GiB / 30 GiB avail pgs: 1 active+clean查看osd状态[root@node1 ~]# ceph osd treeID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF-1 0.02939 root default -3 0.00980 host node1 0 hdd 0.00980 osd.0 up 1.00000 1.00000-5 0.00980 host node2 1 hdd 0.00980 osd.1 up 1.00000 1.00000-7 0.00980 host node3 2 hdd 0.00980 osd.2 up 1.00000 1.00000对于 ...

June 15, 2022 · 6 min · jiezi

关于linux:linux-命令笔记

文件占用查看 # a示意显示目录下所有的文件和文件夹(不含子目录),h示意以人类能看懂的形式,max-depth示意目录的深度。du -ah --max-depth=1 du -lh --max-depth=1

June 13, 2022 · 1 min · jiezi

关于linux:Linux查看日志文件写入速度的4种方法

原创:扣钉日记(微信公众号ID:codelogs),欢送分享,转载请保留出处。简介有时,咱们须要查看某个文件的增长速度,如日志文件,以此来感触零碎的负载状况,因为个别状况下,日志写入越快,阐明零碎负载越重。 本文就来介绍下Linux中查看日志增长速度的几种办法,如下: 应用dd首先要介绍的是dd,因为dd命令简直所有支流发行版都自带,无需额定装置,如下: $ tail -F app.log | dd of=/dev/null status=progress3875840 bytes (3.9 MB) copied, 8.228797 s, 471 kB/s如上,应用tail -F获取新写入的数据,而后用管道将数据交给dd,dd将数据拷贝到/dev/null,其中status=progress是用来显示拷贝速度的,可见,咱们日志的写入速度是471 kB/s。 应用pvpv命令能够看做是带进度的cp,如下: $ yum install -y pv$ tail -F app.log | pv >/dev/null2.05MiB 0:00:03 [ 330kiB/s] [ <=> ]原理与dd相似,不过命令换成了pv。 应用cv命令因为日志数据都是程序(如java)写入的,而在如下的伪文件中,寄存着程序关上的文件信息,如下: /proc/<pid>/fd:寄存着关上的文件描述符/proc/<pid>/fdinfo:寄存着文件描述符写入到的offset于是定期的读取这个offset就能够晓得文件的写入速度了,这也是cv命令的实现原理,如下: $ yum install -y cv$ cv -mc java[ 1] java app.log 100.0% (6.1 GiB / 6.1 GiB) 390.2 KiB/s# 实际上,因为Linux上大多数命令(如cp)没自带进度查看性能,而cv就成了很好的补充# 比方查看cp复制文件的进度$ cp app.log app.log.bak & cv -mc cp 新版cv命令曾经改名为progress,装置不到cv包时,可试着装置progress包。编写小脚本通过写一个小脚本,定期察看文件大小,也可查看文件写入速度,如下: ...

June 11, 2022 · 1 min · jiezi

关于linux:麒麟操作系统-kylinos-从入门到精通-研发环境-第十篇-Java开发及环境准备

1.需要背景将长城国产电脑当成研发主力,充分利用其价值 2.JDK装置关上命令行,装置默认的jdk和jre先,保障大部分java利用能够运行(默认应该装的是openjdk11),但理论的开发过程中,咱们会须要多个雷同的jdk版本共存,这个前面咱们再讲。 sudo apt-get install default-jdk default-jre 其余jdk能够从官网oracle下载不便在idea外面进行切换(下载二进制)https://www.oracle.com/java/t... 3.装置maven,gradlesudo apt-get install maven gradle4.IDE的配置以idea系列与eclipse为主,其余如netbeans没有再尝试。idea运行后,也能够通过插件反对其余 语言(我集体的习惯将会是java用idea,其余都用vscode) 4.1 ideaidea编辑器官网并没有间接发行针对PKS的版本,咱们通过下载页面中的其余,抉择不带JDK的二进制版本下载。https://www.jetbrains.com/zh-...左下角点下载其余版本https://www.jetbrains.com.cn/...抉择no jbr版本 Linux without JBR (tar.gz)https://download.jetbrains.co...下载实现后,解压到特定的文件夹运行(为了不便,我全副放在主文件夹)抉择ultimate还是community版本能够依据集体需要,这里我抉择社区免费版,已满足tar -zxvf ideaIC-2021.3.3-no-jdk.tar.gz #这里能够通过图形工具包解决cd idea-IC-213.7172.25/bin/ # 进入装置目录./idea.sh # 在bin目录下输出命令启动IDEA附:idea中我的项目对不同SDK版本的反对剩下的就和大家平时在windows和linux x86是一样的了 4.2 ecipseeclipse绝对更不便一点,从装置上来说。提供官网的装置工具https://www.eclipse.org/downl...抉择download pacakgeshttps://www.eclipse.org/downl...抉择eclipse对应版本的aarch版本即可,咱们这里抉择通过installer进行装置https://www.eclipse.org/downl...下载后并解压运行./eclipse-inst这里抉择的是java enterprise和web版本装置结束之后,启动运行,其余操作和windows与Linux x86版本统一 4.2.1 一些其余的设置关上eclipse 的市场(help/market place),搜寻spring,装置spring tools 4。eclipse抉择Help --> Install New Software输出地址http://download.jboss.org/jbo...把选项勾上,而后期待它下载安装,实现之后重启 eclipse 即可 lombokYou can install lombok directly from within eclipse, and in that way, you can also include lombok as part of your team eclipse deployment configuration. To do this, use update site https://projectlombok.org/p2:装置这个,重启eclipse,如果不失效下载lombok.jar(加执行权限), 双击lombok.jar ,对话框中 Specify location...抉择你要装置插件的Eclipse,接着点右下角的Install / Update,很快就装置结束,点击Quit Installer。改的是eclipse.ini中指定了lombok.jar的绝对路径 ...

June 11, 2022 · 1 min · jiezi

关于linux:兜兜转转Linux容器的权限Capabilities控制模型

引如果有人问我,程序员做的事,最没理论价值,最容易让用户不爽的是什么? 答复: —— 平安 如果有人问我,程序员做的事,最必要的是什么? 答复: —— 平安 如果有人问我,平安外围问题是什么? 答复: —— 认证与受权 当初 Cloud Native 的容器,大都是在 Linux 上运行。而 Linux 的权限(Capabilities)说到底,是以过程(或更精确说是线程)为受权单位来管制的。而博学如你也晓得,容器在 Linux 角度来说,不过是放在子 kernel namespace 的过程集。所以只有理解 Linux 权限(Capabilities)机制,就理解容器权限的外围。 本文的由来最近因为一些工作须要,要应用 Linux Capabilities 来管制容器权限。我不是平安专家,但为了生存,我钻研了一翻 Linux Capabilities。翻阅了大量的网上 Blog 和书籍,收集整理老本文。搜寻和读书是件累人的事件,但找到真经是件有意义的事件。将真经整顿,不便别人查阅,更是……。心愿对其它人有用。<mark>我最喜爱是的本文的几个图解,所谓一图胜千言。</mark> https://hackernoon.com/whats-... https://blog.ploetzli.ch/2014... 本文的排版和格调如果有人问我,学习 Linux 最难的是什么。我会毫不犹豫地说:术语和方言。 术语大家明确,就不解释了。对于非拉丁系母语的人,人造就有个学习的门槛。看到一个词,能够查字典。但如果没中央和生存中的理论应用这个单词的教训,再多的词典解释,也不可能让你很快的明确一个术语的选用用意。如,为何叫 Linux Capabilities,而不是叫 Linux Permission。 方言是指,有肯定历史的我的项目,应用一个词。经验过的人就心领神会。没经验的人就一面朦圈。如 Kernel 的 Runnable queue。其实早曾经不是用 queue 构造实现了,但当初还是叫 queue。 说家些,是想说,有的术语还是不翻译为好。所以上面就间接应用 Capabilities。 本文比拟长,构造也简单,倡议在电脑中关上原文浏览: https://blog.mygraphql.com/zh...原味我翻阅了大量的网上 Blog 和书籍,收集整理老本文。因为工夫无限,我不能作翻译了,也不想简略地机器翻译,因机器翻译还不如不翻译。援用的中央,我均写出出处。有趣味深刻的读者倡议间接看出处原文。 什么是 Linux 的权限(Capabilities)一个可能不那么乏味,但有点"哲学"的答复是: 只有你想操作一个对象,而被以权限有余为由回绝时,才会发现什么是权限。举个栗子: $ ping localhostping: socket: Operation not permitted残缺的 Linux Capabilities 列表如下: ...

June 10, 2022 · 31 min · jiezi

关于linux:Ubuntu2004设置静态IP

前言Web零碎每次断电重启后IP就会产生扭转,之前拜访链接也会生效,很无耐,然而设置动态IP后就不一样了,每次重启服务器IP都不会扭转。 本文解说Linux服务器 Ubuntu20.04 设置动态IP办法。 操作1. 查看网卡名称查看网卡名称命令: ip link 我的网卡名称ens160。 2. 批改配置文件配置文件在目录/etc/netplan/目录下的yaml文件,文件名可能有差异,批改内容如下: # This is the network config written by 'subiquity'network: ethernets: ens160: #网卡名称 dhcp4: no addresses: [10.17.137.227/23] #动态IP及掩码 optional: true gateway4: 10.17.137.254 #网关 nameservers: addresses: [10.2.100.250,10.2.101.250] #DNS version: 2其中: ens160 为配置的网卡名称addresses: [10.17.137.227/23] 为配置的动态IP及掩码gateway4: 10.17.137.254 为配置的网关addresses: [10.2.100.250,10.2.101.250] 为配置的DNS3. 利用新配置执行命令: netplan apply4. 查看IP地址查看命令: ifconfig 5. 测试网络失效重启服务器后,通过ping IP的形式测试: ping 10.17.137.219 能够ping通,阐明没问题,Nice~ 以上就是设置动态IP的办法,是不是很简略~ 你学“废”了么? 参考文章: ubuntu20.04设置配置动态ip办法Ubuntu18.04配置动态ip(完) 文章首发于我的博客 https://echeverra.cn/static-ip,原创文章,转载请注明出处。 欢送关注我的微信公众号 echeverra,一起学习提高!不定时会有资源和福利相送哦!

June 9, 2022 · 1 min · jiezi

关于linux:猫盘-群晖-安装-web文件服务器-go-http-file-server

前言群晖自带的文件共享曾经很好用了,笼罩了大部份应用场景,然而你敌人手机上可能没有装置smb客户端利用。于是就想找一个网页版的文件共享服务器,用来共享些常用工具app,顺便上传点临时文件,内网应用,不设置账号密码。 下载软件公布地址 https://github.com/mjpclab/go... # 查看cpu架构sudo -iroot@DS_cat:~# dpkg --print-architecturearmelroot@DS_cat:~# cat /proc/cpuinfo | grep modelmodel name : ARMv8 Processor rev 4 (v8l)model name : ARMv8 Processor rev 4 (v8l)下载地址 https://github.com/mjpclab/go...解压后失去一个 ghfs 文件 装置配置# 新建软件目录 把ghfs文件传到这个目录mkdir -p /volume1/opt/ghfs# 新建服务器的根目录 和 一个用于上传的目录mkdir -p '/volume1/share/web_file_server/长期文件夹(可上传)'# 创立配置文件cd /volume1/opt/ghfsvi ghfs.ini配置文件内容如下: --listen-plain 192.168.1.8:8888--root /volume1/share/web_file_server/--upload /长期文件夹(可上传)--delete /长期文件夹(可上传)--hide-dir @eaDir--access-log /volume1/opt/ghfs/access.log--error-log /volume1/opt/ghfs/error.log配置文件部份阐明 @eaDir是群晖生成的文件夹 设置为不显示指定IP和端口号 80端口被群晖占用了设置长期文件夹操作权限 可上传 可删除运行测试root@DS_cat:/volume1/opt/ghfs# ./ghfs --config ghfs.iniHost 0 may be accessed by URLs: http://192.168.1.8:8888web_file_server目录轻易放些apk jpg等文件手机浏览器拜访 192.168.1.8:8888 首页是个文件列表apk能够下载安装图片能间接网页浏览 也能下载下来长期文件夹(可上传) 进入这个文件夹能够上传文件增加到零碎服务 开机自启不同零碎的配置可能不太一样 我目前的版本是 DS120j DSM 6.2.4-25556 Update 6 ...

June 9, 2022 · 1 min · jiezi

关于linux:Ubuntu-创建新的用户并且赋予特权

更新 apt update创立普通用户装置必要的组件 apt install python3 python3-pip wget dos2unix sudo lsb-release iproute2输出 passwd root 命令批改root用户的明码 root@6805b104cdc1:/# passwd rootEnter new UNIX password:Retype new UNIX password:输出 adduser jiuzhang 命令创立sudo用户 root@6805b104cdc1:/vagrant# adduser jiuzhangAdding user `jiuzhang' ...Adding new group `jiuzhang' (1000) ...Adding new user `jiuzhang' (1000) with group `jiuzhang' ...Creating home directory `/home/jiuzhang' ...Copying files from `/etc/skel' ...Enter new UNIX password:Retype new UNIX password:passwd: password updated successfullyChanging the user information for jiuzhangEnter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []:Is the information correct? [Y/n] y并给刚刚创立的用户增加 sudo 权限 usermod -aG sudo jiuzhang ...

June 8, 2022 · 1 min · jiezi

关于linux:运维思考-你知道CMDB与监控是什么关系吗

前言企业随着业务的倒退以及新IT技术的一直引入,利用零碎的IT资源规模是越来越大,IT架构的复杂性也一劳永逸。这种状况下,须要通过多种监控零碎,不同的路径来感知业务零碎活没活,活的好不好,用户体验怎么。常见的监控零碎类型就包含:根底环境监控、网络监控、系统监控、数据库监控、利用监控、用户体验监控等等。 在这种场景下,咱们在之前的文章《如何改善监控问题,试试打造企业对立监控平台体系!》一文中探讨过,就须要一个对立的监控中台来对下治理多个告警源,两头进行告警数据的解决,对上提供可生产的监控数据。 整体架构图如下所示: 这里就会存在一个问题,监控和企业的CMDB之间是怎么的关系呢?CMDB与监控咱们的了解有如下两层关系: CMDB须要为监控零碎提供必要的撑持数据,来收敛、立体化、标准化告警信息。CMDB也须要买通到监控零碎的通道,在新的对象退出CMDB的时候可能主动将该对象退出监控零碎;同时在配置数据发生变化的时候,可能通过监控零碎收回必要的告警信息。咱们先开展聊下第一层关系。监控零碎,比方zabbix,在某个对象的某个监控指标达到阈值时候,会登程告警:XX对象的XX指标告警和详情信息等。并且能够在zabbix中配置监控项之间的依赖关系,实现告警的收敛和关联。 然而这里有一个问题,咱们构想一个场景:你是一家大型2C公司的DBA,冬夜凌晨3点钟,里面西北风凛冽,忽然手机铃声大作,有告警信息提醒利用零碎A数据库节点01呈现连贯异样告警。告警信息提醒内容无限,此时的你是否要起来关上电脑做进一步的解决呢? 很纠结,对吧。其实作为管理员,收到这条告警信息的时候,除了须要晓得这个数据库有问题,其实还想晓得更多的信息,比方:这个数据库属于什么利用零碎、位于什么环境、是否是高可用的集群、利用负责人是谁、哪些利用零碎须要依赖这个利用零碎、这个数据库最新是否有配置变更产生等等,以便做出进一步的判断和安顿下一步的操作:比方在大冬天的凌晨,要不要起来关上电脑。那么这个时候,咱们就须要一个零碎可能提供:利用档次拓扑、集群信息、模块信息、资源实例、关联关系等信息,这个零碎就是CMDB。 两者的集成与交融有了CMDB之后,在告警产生的时候呢,咱们就能够让告警零碎返回CMDB中查问跟这一告警对象无关的综合配置信息,以便提供最为精确、丰盛和规范的告警信息。举例来说,上个场景中,如果咱们晓得数据库实例01是属于利用零碎A的测试环境的,并且有高可用集群,以后实践上是没有用户拜访这个数据库的,管理员又何苦受冻起床开电脑呢? 反过来讲,如果发现这个数据库是零碎A的生产环境的数据库,并且因为最近在降级,以后是单点模式,同时还有零碎B和C须要依赖零碎A,那就连忙麻溜的起来解决故障,并告诉B和C启动相应的预案机制以尽可能升高影响。 这里,就须要CMDB具备提供数据给监控零碎的能力,须要具备相应的数据查问、读取的接口信息,并且可能不便的集成。 另外一方面,CMDB也须要被动同步本人的数据到监控零碎中。举个例子,咱们上线了某个零碎的一批新的虚拟机节点,提竣工单,录完CMDB配置信息,再手动到监控外面配置一遍吗?显然不是很正当,对吧?这个时候就须要CMDB可能被动将新的对象信息推送给监控零碎,监控零碎依照既有监控模板,下发agent、配置监控协定、启动监控等。 另外,如果CMDB通过扫描发现某个主机的理论配置信息与以后CMDB库中存储的信息不统一,是不是也应该通过监控零碎告警进去,告诉到管理员进一步解决呢? 所以这里你看,监控零碎与CMDB之间是严密关联的。而更要命的是企业外面往往监控零碎不只一个,如果每个监控零碎都要与CMDB做一遍集成,非累死不可。这外面就须要有监控中台和对立告警治理的概念,咱们不须要每个监控零碎间接与CMDB集成,只须要把所有的监控零碎接入到对立告警核心模块中来,由对立告警模块来与CMDB监控对接,共享信息。这样,咱们的每一条告警在收回的时候,都能够根据CMDB中的信息,变成标准化、立体化的告警,而不是扁平的告警。这样的告警能力真正凸显价值。 本文由腾讯蓝鲸智云编辑公布,腾讯蓝鲸智云(简称蓝鲸)软件体系是一套基于PaaS的技术解决方案,致力于打造行业当先的一站式自动化运维平台。目前曾经推出社区版、企业版,欢送体验。官网:https://bk.tencent.com/下载链接:https://bk.tencent.com/download/社区:https://bk.tencent.com/s-mart/community/question

June 6, 2022 · 1 min · jiezi

关于linux:如何更好的保证自己以及公司的安全

随着咱们互联网的倒退,越来越多的企业和集体都不得已受到影响。那么怎么做能力更好的保障己以及公司的平安,以求最大水平躲避信息泄露后造成的信用降落、产业中断等负向倒退。 网络安全最后就是随同互联网而生的一个词,起初也与工业、手工业、制造业各个领域穿插倒退。企业互联网安全与营收相干,若又一个不小心受到内部攻打而企业运维人员又没能排查到攻打源,那就有可能会造成上万的资产散失。这时就不得不依附技术部门的网络工程师、运维工程师来排查企业网络安全日志,进而锁定攻打路径来破解难题了。 既然如此,咱们为何不下载平安最先进的平安检测与运维监控的猎报平安到用户端,做到从源头切断。自启用时算起,猎报就可能后盾收集保留设施的平安日志,这么一来,就算你的IP地址受到病毒入侵、内部攻打你只须要关上猎报,导出平安检测报告就能够疾速发现以上威月办,而后采取紧急措施躲避产值中断,以达到企业继续高速运转。 市面上,运维产品各有其长,每个公司也各有所爱。如何晓得猎报是不是你心中完满的运维工具能?我想市面上其余的运维产品可能就是灰姑凉的水晶鞋,肯定要找到适合的ta能力用得得心应手。而猎报就像是一双平平无奇的帆布鞋,穿上它你不肯定能成为人群中万众瞩目的那个,但肯定会是走得最稳最虚浮的那个。所以,下载猎报你肯定会被它全面的性能给深深吸引的。

June 6, 2022 · 1 min · jiezi

关于linux:优雅解决-A-start-job-is-running-for-raise-network-interfaces

环境VPS,Ubuntu 18.04 降级为 Ubuntu 20.04 背景随着 Ubuntu 20.04 的公布,我也想降级一下手头上的 18.04 的 VPS,于是执行 sudo do-release-upgrade 来更新。更新过程绝对顺利,解决了很多个 prompt 后,来到了重启的步骤。 依照过往的教训,这台 VPS 重启只须要十几秒就能通过 SSH 连上去,但这一次却等了一两分钟还是没有响应。我连上 VPS 的控制台看是什么状况,发现它卡在 A start job is running for raise network interfaces(5min 1s) 这是仿佛是网络连接的配置问题。 解决方案批改超时工夫我一开始等了五分钟,就等到它超时后,的确能通过 SSH 连上。按此思路,有人提出把超时工夫缩短,就能“看起来很快地失常开机了” 。 但我认为这种办法治标不治本,于是持续寻找优雅的办法。 批改配置在这个问答中,我发现题主也遇到相似的问题 而答主所介绍的文件在 /etc/network/interfaces.d/setup,我在 Ubuntu 20.04 中没有找到这个文件。 但我发现了 /etc/network/interfaces 文件,内容为 auto loiface lo inet loopbackauto eth0iface eth0 inet dhcpauto eth1iface eth1 inet dhcp嗯,与答主所提供的配置很相似,只多了 eth1 的局部。应该是发行版或者版本的差别造成的不同。 于是我按着他的思路, 将原 interfaces 文件复制一份,命名为 interfaces.bak 作为备份批改 interfaces 内容为: ...

June 4, 2022 · 1 min · jiezi

关于linux:Linux模拟弱网丢包延时和限制带宽

Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量管制,次要是通过在输入端口处建设一个队列来实现流量管制。通过tc命令咱们能够模仿弱网进行测试。 note:命令中eth0是须要模仿弱网的网卡,可通过ifconfig查看。 以下是一些常用命令: 查看规定信息tc -s qdisc ls dev eth0tc qdisc show删除规定tc qdisc del dev eth0 root丢包率tc qdisc add dev eth0 root netem loss 10% : 丢包率为10%tc qdisc add dev eth0 root netem loss 10% 30% : 丢包率为范畴(10%- 30%)延时tc qdisc add dev eth0 root netem delay 100ms :廷时100mstc qdisc add dev eth0 root netem delay 100ms 10ms :廷时100ms ± 10mstc qdisc add dev eth0 root netem delay 100ms 10ms 25% :廷时100ms 25%概率以±10ms稳定提早最大带宽1Mbittc qdisc add dev enp0s8 root handle 1: htb default 1tc class add dev enp0s8 parent 1:0 classid 1:1 htb rate 1Mbit

June 2, 2022 · 1 min · jiezi

关于linux:Linux网络流量监控iftop

iftop 是 Linux 零碎一个收费的网卡实时流量监控工具,相似于 top 命令。iftop 能够监控指定网卡的实时流量、端口连贯信息、反向解析 IP 等,还能够准确显示本机网络流量及网络内各主机和本机互相通信的流量汇合,非常适合于监控代理服务器或路由器的网络流量。 装置# CentOS$ sudo yum install iftop# Ubuntu$ sudo apt install iftop罕用参数-i 指定须要检测的网卡, 如果有多个网络接口,则须要留神网络接口的抉择,如:# iftop -i eth1-B 将输入以 byte 为单位显示网卡流量,默认是 bit-n 将输入的主机信息都通过 IP 显示,不进行 DNS 解析 -N 只显示连贯端口号,不显示端口对应的服务名称-F 显示特定网段的网卡进出流量 如: iftop -F 192.168.85.0/24-h 帮忙,显示参数信息-p 以混淆模式运行 iftop,此时 iftop 能够用作网络嗅探器-P 显示主机以及端口信息-m 设置输入界面中最下面的流量刻度最大值,流量刻度分 5 个大段显示 如:# iftop -m 100M-f 应用筛选码抉择数据包来计数 如 iftop -f filter code-b 不显示流量图形条-c 指定可选的配置文件,如:iftop -c config file-t 应用不带 ncurses 的文本界面, 以下两个是只和 -t 一起用的: -s num num 秒后打印一次文本输入而后退出,-t -s 60 组合应用,示意取 60 秒网络流量输入到终端 -L num 打印的行数-f 参数反对 tcpdump 的语法,能够应用各种过滤条件。显示界面阐明=> / <= 流量方向TX 发送流量RX 接管流量TOTAL 总流量cumm 运行iftop到目前工夫的总流量peak流量峰值rates 过来2s 10s 40s 的均匀流量交互操作阐明P 通过此键可切换暂停/持续显示h 通过此键可在交互参数界面/状态输入界面之间来回切换b 通过此键可切换是否显示均匀流量图形条B 通过此键可切换显示2秒、10秒、40秒内的均匀流量T 通过此键可切换是否显示每个连贯的总流量j/k 按j键或k键能够向上或向下滚动屏幕显示以后的连贯信息l 通过此键可关上iftop输入过滤性能,比方输出要显示的IP,按回车后,屏幕就只显示与这个IP相干的流量信息L 通过此键可切换显示流量刻度范畴,刻度不同,流量图形条会跟着变动q 通过此键可退出iftop流量监控界面n 通过此键可使iftop输入后果以IP或主机名的形式显示s 通过此键可切换是否显示源主机信息d 通过此键可切换是否显示远端指标主机信息t 通过此键可切换iftop显示格局,间断按此键可顺次显示:以两行显示发送接管流量、以一行显示发送接管流量、只显示发送流量/接管流量N 通过此键可切换显示端口号/端口号对应服务名称S 通过此键可切换是否显示本地源主机的端口信息D 通过此键可切换是否显示远端指标主机的端口信息p 通过此键可切换是否显示端口信息1/2/3 依据最近 2 秒、10 秒、40 秒的均匀网络流量排序< 通过此键可依据右边的本地主机名或IP地址进行排序> 通过此键可依据远端指标主机的主机名或IP地址进行排序o 通过此键可切换是否固定显示以后的连贯罕用示例显示网卡 eth0 的信息 ...

June 2, 2022 · 1 min · jiezi

关于linux:CS162操作系统课程第二课4个核心OS概念

熟肉视频地址: CS162操作系统课程第二课-4个外围OS概念(上)CS162操作系统课程第二课-4个外围OS概念(下) 咱们探讨了操作系统如何表演裁判,魔术师和粘合剂的角色,裁判是指对于资源爱护的治理;魔术师是指咱们要让它看起来像咱们有一套十分洁净易用的资源的形象,而不是应用理论的没有对立接口的物理资源。粘合剂是一组通用服务,它们使在操作系统上编写程序变得更容易,例如文件系统服务、网络服务等等。 明天咱们要讲操作系统四个基本概念:咱们将从什么是线程(Thread)开始探讨,线程会残缺地形容一个程序状态或者一个线性执行上下文,它会有一个程序计数器,寄存器,执行标记,线程栈等等。而后是地址空间(Address Space),这是程序可拜访的一组内存地址。而后咱们会介绍什么是过程(Process),过程包含地址空间以及一个或者多个线程。最初,咱们将探讨在这门课的后期特地重要的硬件机制也就是双模式操作(dual mode operation),即一个典型的处理器至多有两种不同的模式,咱们能够松散地称之为内核模式(Kernel mode)和用户模式(User mode)。咱们要学习如何编写和编译程序成为可执行文件,而后从文件系统中取出这些可执行文件后,建设运行的过程,文件被加载到内存中,咱们会具体探讨那个过程运行须要提供的栈和堆。而后是转移管制(Transfer Control),意思是处理器的程序计数器将会指向该过程的用户代码中的指令,而后程序就会开始执行。操作系统须要给这些过程提供各种零碎服务,同时操作系统须要爱护操作系统和过程不受其余过程和其余用户的影响。咱们来回顾下 CS61B + CS61C 课程的内容: 处理器一开始有一个程序计数器(PC,Program Counter),还有一个能够读取的内存(Memory),内存外面有一组指令(Instruction)。程序计数器会指向内存中的指令,让处理器读取下一条指令。咱们把指令从内存中拉进去,解码,而后把它输出到执行流水线中。咱们在 CS61C 中常常议论的是一种危险类型的处理器(risk style processor),有五个执行流水线。解码后,它们会输出一组寄存器和 ALU 来进行实际操作,而后递增程序计数器并持续下一条指令。 咱们的第一个操作系统概念是一个控制线程(Thread of Control),线程实际上是一个惟一的执行上下文,它有程序计数器,寄存器,执行标记,线程栈,内存状态。线程就像上一张幻灯片中你看到的处理器的虚构版本。一个线程正在处理器或外围上执行,顺便说一下,我当初混用处理器和外围这两个概念,前面咱们就能更分明地了解这两个概念的区别。但它是在处理器寄存器中常驻(Resident)时才会执行的。寄存器中有线程的上下文(Context)或根状态(Root State),有些货色在寄存器中,剩下的在内存中: 包含一个程序计数器,以后正在执行的指令,程序计数器指向内存中的下一条指令,所有的指令都存储在内存中包含用于进行计算的两头值有一个栈指针,它有一个指向内存中栈的顶部的指针,线程的其余部分都在内存中。当线程的状态不在寄存器中即不是常驻的时候,线程就被挂起(suspended)或不再执行。被挂起的线程实际上是在内存中,还没有执行或者基本没有执行,有其余线程正在执行。 这是另一个对于执行过程的视图(冯·诺依曼体系)这是一组地址,咱们稍后会把它叫做地址空间,从 0 到 2^32 -1。外面有一组将要执行的指令,粉色的是你的处理器。过程有一个与之相干的爱护状态,处理器包含寄存器和流水线的汇合,咱们的执行序列(Execution Sequence)包含:在程序计数器上获取一条指令,解码它,执行它,写回寄存器,获取下一条指令,并反复这个执行循环。 那么咱们是如何产生多处理器的错觉的呢?咱们上次讲过在你的笔记本电脑上做一个ps -aux或者其余的操作唤起工作管理器,如果你认真看,你会发现有数百个过程在运行,大部分在休眠状态。但它们都能够在你以后的处理器上应用,那么它是如何工作的呢?让咱们假如只有一个物理处理器上只有一个核,在任何给定的工夫在硬件上只有一个执行线程。但当初咱们想要的是有多个cpu,或者说是多个cpu同时运行的假象,所以咱们能够有多个线程同时运行。从程序员的视图来看是,我有一堆货色都在运行,它们都共享内存。每个线程是一个虚构外围,咱们这里有三个线程,品红色线程,青色线程以及黄色线程,造成他们同时运行的错觉的形式是通过咱们多反复用硬件,咱们运行一段时间的品红色线程,而后运行一会青色线程,而后运行一会黄色线程,以此循环。线程的内容包含什么?显然,每个线程都须要一个程序计数器和一个堆指针,还有所有寄存器状态。如果线程在运行中,寄存器状态就在处理器的寄存器中;如果不在运行中,这些状态就在内存中,被称为线程管制块(TCB,Thread Control Block) 咱们举一个例子:在 T1 的时候 vCPU1 在运行,在 T2 的时候 vCPU2 在运行,在 T1 和 T2 时,产生了上下文切换(Context Switch),在底层是一个事件,咱们把所有的程序计数器,栈指针,所有其余寄存器都保留在内存中的对应线程管制块中。咱们从 vcpu2 加载程序计数器、堆栈指针等,而后运行 vcpu2。 一些 Q&A: 每个线程是否都有本人独占的 CPU 缓存?答案是否定的,个别每个核有一个高速缓存,线程都共享同一个缓存,你能够想到如果切换太快,就没有线程能利用好缓存了。原始处理器中的缓存或 TLB 必须在切换时被刷新,更高级的处理器则不会。缓存自身通常在物理空间中,你从一个线程切换到另一个,你只是扭转了页表,不须要清空缓存。线程上下文切换这须要多长时间?这大略须要几微秒的工夫,须要确保转换的工夫不要太长,不要把大部分工夫都花在转换上。而后是什么触发了上下文切换?全局倒计时器工夫到了,或被迫让出CPU等这样的事件触发的。比方某个线程要做一些 I/O,那么操作系统就会调度其余线程。 咱们可能有一堆内存(蓝色的代表内存),咱们能够设想这些虚构过程中的每一线程都有本人的栈、堆、数据和代码,它们都以某种形式散布在内存中,咱们要做的就是以某种形式记录所有货色的地位。线程管制块是所有货色的所在,当咱们从绿色切换到黄色,咱们要做的第一件事是将所有的绿色线程的寄存器保留到它的线程管制块中,顺便说一下,那是内核内存的一部分。 咱们明天要讲的第二个操作系统概念是地址空间:它是一组可拜访地址和与之相干的状态,这只是处理器对可用地址的视图。对于 32 位处理器,能够拜访的地址空间是 2 的 32 次方大概是 40 亿,对于 64 位的处理器,2 的 64 次方是 18 万亿。然而这并不是说所有的空间里都有对应的物理 DRAM 内存能够应用,只有一部分有对应的物理 DRAM。当你读或写一个地址空间中的地址时,兴许它像一般内存一样运行,或者齐全疏忽写入操作;或者可能是零碎导致一个I/O操作产生,这被称为内存映射 I/O;或者它可能会导致异样,如果你试图在我这里展现的栈和堆之间的某个中央读或写是能够的,然而如果没有物理内存调配给这个过程,就会呈现页面谬误(Page fault);或者写入内存的行为是为了与另一个程序通信。 ...

June 2, 2022 · 1 min · jiezi

关于linux:新型-Linux-僵尸网络变种EnemyBot现身利用-Web-服务器Android-及-CMS-漏洞进行攻击

近日,一款基于 Linux 的僵尸网络新变种“Enemybot”现身,该“Enemybot”被发现已将其攻打指标扩大到针对 Web 服务器、Android 设施和内容管理系统(CMS)的安全漏洞。 上周,美国电话电报公司外星人实验室(AT&T Alien Labs)在公布的一份技术报告中示意:“该恶意软件(Enemybot)正在迅速将 1day 破绽作为其攻击能力的一部分”。“VMware Workspace ONE、Adobe ColdFusion、WordPress、PHP Scriptcase 等服务以及 IoT 和 Android 设施都将成为指标。” 有报道称,早在往年 3 月份,Enemybot 就首次被 Securonix 就披露过,起初又被 Fortinet 披露。Enemybot 与一名被追踪为 Keksec(又名 Kek Security、Necro 和 FreakOut)的威逼行为人有关联,晚期的攻打指标是来自 Seowon Intech、D-Link 和 iRZ 的路由器。 Enemybot:僵尸网络新变种所谓僵尸网络“Botnet”,是指采纳一种或多种流传伎俩将大量主机感化 bot 程序(僵尸程序)病毒,从而在控制者和被感化主机之间所造成的一个可一对多管制的网络 。“攻击者通过各种路径流传僵尸程序感化互联网上的大量主机,而被感化的主机将通过一个管制信道接管攻击者的指令,组成一个僵尸网络”。 据理解,此次可能执行 DDoS 攻打的 Enemybot 是僵尸网络的新变种,且源自其余几个僵尸网络(如 Mirai、Qbot、Zbot、Gafgyt 和 LolFMe)。 此次最新变种的剖析结果表明,Enemybot 由以上四种僵尸网络的不同局部组合而成: 一个 Python 模块,用于下载依赖项并编译不同 OS 架构的恶意软件僵尸网络的外围局部设计用于编码和解码恶意软件字符串的混同段用于接管攻打命令和获取额定有效载荷的命令和管制性能钻研人员指出,如果 Android 设施通过 USB 连贯,或通过机器上运行的 Android 模拟器连贯,EnemyBot 就会尝试通过执行 shell 命令( "adb_infect"性能)来“感化”它。adb 指的是 Android 调试桥,一种用于与Android 设施通信的命令行实用程序。 ...

May 31, 2022 · 1 min · jiezi

关于linux:存储厂商旌存半导体加入龙蜥社区

近日,厦门旌存半导体技术有限公司(以下简称“旌存半导体”)签订了 CLA(Contributor License Agreement,贡献者许可协定),正式退出龙蜥社区(OpenAnolis)。 旌存半导体成立于 2018 年,专一于企业级及嵌入式存储产品的研发与销售,提供基于市场和利用的一站式存储解决方案。目前其自主开发的神可品牌存储产品,实用于一体机、台式电脑、笔记本、超极本、服务器嵌入式零碎及商显等各类产品。 旌存半导体营销总监迟卓示意:“作为企业级及嵌入式存储产品的计划商,旌存半导体在贮存畛域进行重点投入,踊跃推动国产存储。近些年通过一直积攒我的项目教训,发展技术研究,造就了一批业余的技术人才。旌存半导体以踊跃凋谢的态度退出龙蜥社区,心愿以此为契机,施展技术教训和人才劣势,在产品适配、资源共享等方面发展单干,与社区合作伙伴一起为数智化经济服务。” 龙蜥社区技术委员会金运通示意:“旌存半导体专一于嵌入式存储产品的钻研与利用,开发多款无关自研芯片的产品利用计划。其秉持翻新共赢等优良的企业文化,找准本身定位并不断深入开掘。置信旌存半导体的退出在芯片适配等方面搭建起沟通的桥梁,能够让龙蜥社区领有更好的信息技术生态。” 截至目前,已有 200+ 家企业签订 CLA 协定退出龙蜥社区,包含平安厂商格尔软件、海泰方圆,数据库厂商南大通用、巨杉数据库,中间件厂商西方通、中创中间件、宝兰德等,欢送更多企业退出。 —— 完 ——

May 30, 2022 · 1 min · jiezi

关于linux:开箱即用Linux-内核首个原生支持让你的容器体验飞起来-龙蜥技术

文/阿里云内核存储团队,龙蜥社区高性能存储技术 SIG 成员 容器化是最近几年 devops 界风行的趋势,通过业务的容器化咱们将创立一个齐全打包、自蕴含的计算环境,让软件开发人员可能更加疾速地创立和部署本人的应用程序。然而长期以来,因为镜像格局的限度,容器启动镜像的加载是很慢的,相干背景细节能够参考“容器技术之容器镜像篇”。为了减速容器的启动,咱们能够将优化后的容器镜像搭配 P2P 网络等技术,从而无效升高容器部署启动的工夫,并可保障容器继续稳固运行,“让容器利用治理更快更平安,Dragonfly 公布 Nydus 容器镜像减速服务”。 除了启动速度,镜像分层、去重、压缩、按需加载等外围个性在容器镜像畛域也尤为重要。然而因为没有原生的文件系统反对,大多数都抉择了用户态计划,Nydus 最后亦如此。随着计划和需要的一直演进,用户态计划遇到了越来越多的挑战,如性能与原生文件系统相比有较大差距、高密场景下资源开销较大等等。究其原因,次要是在用户态实现镜像格局的解析、按需加载等操作,将带来大量内核态/用户态通信开销。所以看起来解决了启动速度,这些外围性能的研发就会有不小的挑战,有点顾此失彼。 那么有没有可能做到鱼和熊掌兼得呢?为此,龙蜥社区做了一个大胆的尝试,咱们设计并实现了兼容内核原生 EROFS 文件系统的 RAFS v6 格局,心愿将容器镜像计划下沉到内核态。同时为了一劳永逸,咱们也尝试将这个计划推动到内核主线以让更多的人收益。最终,随着 Linux 内核各位大佬的挑战和咱们的不断完善,erofs over fscache 按需加载技术终于被合入 5.19 内核(链接见文末),至此 Nydus 镜像服务的下一代容器镜像散发计划逐步清晰起来。这也是 Linux 主线内核首个原生反对、开箱即用的容器镜像散发计划,容器镜像的高密、高性能、高可用和易用性从此不再是个问题!作者为此也给本人加了个鸡腿,哈哈! 本文将从 Nydus 架构回顾、RAFS v6 镜像格局和 EROFS over Fscache 按需加载技术三个角度来别离介绍这一技术的演变历程,并通过比照数据展现了以后计划的卓越性能,心愿大家可能尽早享受到容器启动飞一样的体验! 一、Nydus 架构回顾一句话总结一下,Nydus 镜像减速服务是一种优化了现有的 OCIv1 容器镜像架构,设计了 RAFS (Registry Acceleration File System) 磁盘格式,最终出现为一种文件系统的容器镜像格局的镜像减速实现。 容器镜像的基本需要,实质上是为了提供容器的根目录 (rootfs),这能够通过文件系统 (file system) 或者是归档格局 (archive format) 来承载,当然也能够在文件系统的根底上二次套娃 (例如通过自定义的块格局来承载),但实质载体是一个目录树,体现为文件接口。 先看一下 OCIv1 规范镜像,OCIv1 格局是一种基于 Docker Image Manifest Version 2 Schema 2 格局的镜像格局标准,由 manifest、镜像索引 (optional)、一系列容器镜像层及配置文件组成,细节能够参见相干文档,本文不再赘述。实质上说 OCI 镜像是一个以层为根本单位的镜像格局,每个层存储了文件级别的 diff data,以 tgz 归档格局存储,如下所示: ...

May 30, 2022 · 3 min · jiezi

关于linux:jq命令用法总结

原创:扣钉日记(微信公众号ID:codelogs),欢送分享,转载请保留出处。简介如果说要给Linux文本三剑客(grep、sed、awk)增加一员的话,我感觉应该是jq命令,因为jq命令是用来解决json数据的工具,而现如今json简直无所不在! 网上的jq命令分享文章也不少,但大多介绍得十分浅,jq的弱小之处齐全没有介绍进去,所以就有了这篇文章,安利一下jq这个命令。 根本用法格式化# jq默认的格式化输入$ echo -n '{"id":1, "name":"zhangsan", "score":[75, 85, 90]}'|jq .{ "id": 1, "name": "zhangsan", "score": [ 75, 85, 90 ]}# -c选项则是压缩到1行输入$ jq -c . <<eof{ "id": 1, "name": "zhangsan", "score": [ 75, 85, 90 ]}eof{"id":1,"name":"zhangsan","score":[75,85,90]}属性提取# 获取id字段$ echo -n '{"id":1, "name":"zhangsan", "score":[75, 85, 90]}'|jq '.id'1# 获取name字段$ echo -n '{"id":1, "name":"zhangsan", "score":[75, 85, 90]}'|jq '.name'"zhangsan"# 获取name字段,-r 解开字符串引号$ echo -n '{"id":1, "name":"zhangsan", "score":[75, 85, 90]}'|jq -r '.name'zhangsan# 多层属性值获取$ echo -n '{"id":1, "name":"zhangsan", "attr":{"height":1.78,"weight":"60kg"}}'|jq '.attr.height'1.78# 获取数组中的值$ echo -n '{"id":1, "name":"zhangsan", "score":[75, 85, 90]}'|jq -r '.score[0]'75$ echo -n '[75, 85, 90]'|jq -r '.[0]'75# 数组截取$ echo -n '[75, 85, 90]'|jq -r '.[1:3]'[ 85, 90]# []开展数组$ echo -n '[75, 85, 90]'|jq '.[]'758590# ..开展所有构造$ echo -n '{"id":1, "name":"zhangsan", "score":[75, 85, 90]}'|jq -c '..'{"id":1,"name":"zhangsan","score":[75,85,90]}1"zhangsan"[75,85,90]758590# 从非对象类型中提取字段,会报错$ echo -n '{"id":1, "name":"zhangsan", "attr":{"height":1.78,"weight":"60kg"}}'|jq '.name.alias'jq: error (at <stdin>:0): Cannot index string with string "alias"# 应用?号能够防止这种报错$ echo -n '{"id":1, "name":"zhangsan", "attr":{"height":1.78,"weight":"60kg"}}'|jq '.name.alias?'# //符号用于,当后面的表达式取不到值时,执行前面的表达式$ echo -n '{"id":1, "name":"zhangsan", "attr":{"height":1.78,"weight":"60kg"}}'|jq '.alias//.name'"zhangsan"管道、逗号与括号# 管道能够将值从前一个命令传送到后一个命令$ echo -n '{"id":1, "name":"zhangsan", "attr":{"height":1.78,"weight":"60kg"}}'|jq '.attr|.height'1.78# jq中做一些根底运算也是能够的$ echo -n '{"id":1, "name":"zhangsan", "attr":{"height":1.78,"weight":"60kg"}}'|jq '.attr|.height*100|tostring + "cm"'"178cm"# 逗号使得能够执行多个jq表达式,使得一个输出可计算出多个输入后果$ echo 1 | jq '., ., .'111# 括号用于晋升表达式的优先级,如下:逗号优先级低于算术运算$ $ echo '1'|jq '.+1, .*2'22$ echo '1'|jq '(.+1, .)*2'42# 管道优先级低于逗号$ echo '1'|jq '., .|tostring'"1""1"$ echo '1'|jq '., (.|tostring)'1"1"了解jq执行过程外表上jq是用来解决json数据的,但实际上jq能解决的是任何json根底元素所造成的流,如integer、string、bool、null、object、array等,jq执行过程大抵如下: ...

May 29, 2022 · 4 min · jiezi

关于linux:周六晚8点如何基于-eBPF-技术构建应用可观测平台

龙蜥社区 iLogtail SIG 核心成员受邀加入 「Linux 内核之旅」组织的系列技术分享,内容将在腾讯会议、哔哩哔哩、CSDN 等多个平台进行直播。龙蜥社区也将在钉钉交换群向社区开发者们同步直播,欢送各位扫描下方二维码入群交换,锁定钉钉交换群,坐等周六晚 8 点开播。 eBPF 的呈现让可观测技术实现了质的飞跃,龙蜥社区始终在关注相干技术的倒退,现已开始将 eBPF 技术利用在多种可观测场景。近年来随着容器化、微服务架构的风行,应用层的监控越来越成为支流。 分享内容及讲师如下:主题:基于 eBPF 的利用可观测技术实际工夫:2022.05.28 20:00讲师:龙蜥社区 iLogtail SIG 核心成员内容简介:次要介绍如何基于 eBPF 技术研发应用层的观测平台,进行无侵入的利用协定剖析,构建更加贴近用户场景的业务监控、拓扑关系、异样诊断、智能根因定位等能力。入群形式:快来扫描下方二维码入群,坐等技术专家带你理解如何基于 eBPF 技术研发应用层的观测平台等。 欢送各位观看本次技术交换盛宴,若在观看过程中有任何疑难,请填加小龙微信(微信号:openanolis_assis)或扫描下面二维码沟通,欢送各位开发者/用户退出,一起打造一个沉闷的、衰弱的开源操作系统生态! —— 完 —— 对于龙蜥社区龙蜥社区(OpenAnolis)由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的Linux 上游发行版社区及翻新平台。 龙蜥社区成立的短期指标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。 目前,龙蜥OS 8.4已公布,反对 X86_64 、Arm64、LoongArch 架构,欠缺适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。欢送下载: https://openanolis.cn/download退出咱们,一起打造面向未来的开源操作系统! https://openanolis.cn

May 27, 2022 · 1 min · jiezi

关于linux:一文学完Linux-Shell编程比书都好懂

一、 Shell 编程完整版参考链接:Linux Shell编程pdf版本1. 简介Shell 是一个用 C 语言编写的程序,通过 Shell 用户能够拜访操作系统内核服务。 Shell 既是一种命令语言,又是一种程序设计语言。 Shell script 是一种为 shell 编写的脚本程序。Shell 编程个别指 shell 脚本编程,不是指开发 shell 本身。 Shell 编程跟 java、php 编程一样,只有有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就能够了。 Linux 的 Shell 解释器 品种泛滥,一个零碎能够存在多个 shell,能够通过 cat /etc/shells 命令查看零碎中装置的 shell 解释器。 Bash 因为易用和收费,在日常工作中被宽泛应用。同时,Bash 也是大多数 Linux 零碎默认的 Shell。 shell 解释器 java 须要虚拟机解释器, 同理 shell 脚本也须要解析器,如下所示: [root@node01 shells] cat /etc/shells/bin/sh/bin/bash/sbin/nologin/bin/dash/bin/tcsh/bin/csh2. 疾速入门1) 编写脚本新建 /export/hello.sh 文件,内容如下: #!/bin/bashecho 'hello world'\#!是一个约定的标记,它通知零碎这个脚本须要什么解释器来执行,即应用哪一种 Shell。 echo 命令用于向窗口输入文本。 2) 执行 shell 脚本执行形式一[root@node01 shells] /bin/sh 01.shhello world或 ...

May 26, 2022 · 4 min · jiezi

关于linux:linux的常用命令

创立快捷方式 sudo ln -s /usr/bin/python3 /usr/bin/python删除\r或^M问题:sed -i 's/\r//g' [filename]trash-cli命令 trash-put #删除文件和目录(仅放入回收站中);trash-list #列出被删除了的文件和目录;trash-restore #从回收站中复原文件或目录;trash-rm #删除回收站中的文件;trash-empty #清空回收站;alias快捷命令 alias rm='trash-put'alias lst='trash-list'alias ret='trash-restore'Vi正文Ctrl+v {choose} I [t] Esc #列正文;Ctrl+v {choose} x Esc #勾销正文;echo色彩输入 echo -e "\033[字背景色彩;字体色彩;高亮m字符串\033[0m" # (eg. echo -e "\e[37;31;1m输入内容\e[0m")背景色:0 通明(应用终端色彩), 40 黑, 41 红, 42 绿, 43 黄, 44 蓝 45 紫, 46 青绿,47白(灰);前景色: 30 黑 31 红, 32绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰);高亮度:高亮是1,不高亮是0。留神m前面紧跟字符串;装置时3种主动输出明码的办法 1. sudo apt install gfortran* < [passwd_file] 2. echo '[passwd]' | sudo apt install gfortran 3. 重定向 sudo -S apt-get update<<EOF #-S是必须的 passwd EOFdeepin装置微信(不举荐,因为一点都不好用) ...

May 26, 2022 · 1 min · jiezi

关于linux:linux使用过程中的一些报错

Sources谬误 Certificate verification failed: The certificate is NOT trusted. The certificate chain uses expired certificate. Could not handshake: Error in the certificate verification.重新安装 sudo apt install ca-certificates来自 https://github.com/zq1997/dee... 继续更新

May 26, 2022 · 1 min · jiezi

关于linux:性能提升-57-SMCR-透明加速-TCP-实战解析-龙蜥技术

简介:SMC-R 是如何减速 TCP 利用? 编者按:TCP 协定作为以后应用最为宽泛的网络协议,场景遍布挪动通信、数据中心等。对于数据中心场景,通过弹性 RDMA 实现高性能网络协议 SMC-R,通明替换利用 TCP 协定,实现利用网络通明减速。本文整顿自龙蜥大讲堂第 15 期,视频精彩回放已上传至龙蜥官网,欢送查看! 为什么须要新的内核网络协议栈? Linux 内核网络协议栈没有银弹,以后 Linux 网络协议栈是在性能(吞吐、CPU 使用率)、时延和通用性衡量下的实现。在实在场景中,咱们可能须要高性能然而并不通用的用户态协定栈,亦或是通用、更高性能更低时延的计划,然而基于传统以太网卡的计划很难有大幅度的晋升,更多是基于硬件的红利,例如 100G/400G 网络。鉴于此,咱们思考是否能够基于其余高性能网络,提供 TCP 兼容的行为和 socket 接口,提供更优的性能。 基于共享内存的网络通信在谈跨主机通信之前,咱们先把眼帘放到单机维度,如何在单机维度实现 IPC?上面是几种常见的 IPC 形式: 不出意外,共享内存是最快的 IPC 形式,然而短少一种 OS 层面的对立实现和接口,少数是在语言的 library 中提供。 这里咱们合成一下单机维度的共享内存 IPC 流程: 发送方写到事后调配好的一块内存区域;告诉对端,并更新新写入内存的偏移量;接管方依照新更新的偏移量读取数据;接管方更新读取内存的偏移量。 如果有一种技术,能够实现在两台机器间“搬运”内存,那么咱们能够把这种高性能 IPC 计划从单机维度拓展到不同的主机间。很显然,Remote Direct Memory Access RDMA 能够帮忙咱们高效地搬运内存。 绝对于单机的共享内存通信流程,基于 RDMA 的流程: 发送方写到本机事后调配好的一块内存区域;通过 RDMA 将该内存写入到对端保护的内存区域的雷同地位;通过 RDMA 告诉接管方,并更新新写入内存的偏移量;接管方依照新更新的偏移量读取数据;接管方通过 RDMA 更新读取内存的偏移量。 基于 RDMA 的共享内存模型,SMC-R 应运而生,SMC-R 缩写即为 Shared Memory Communcation over RDMA。 ...

May 26, 2022 · 1 min · jiezi

关于linux:建立ssh通信

首先,生成密钥 ssh-keygen #默认 rsa,位于 ~/.ssh/id_rsa[.pub]# -f 指定保留密钥的文件名# -t 指定密钥类型# -C 正文server关上服务 sshd批改配置/etc/ssh/sshd_config #批改passwd : yes client建立联系 ssh user@ip [-p port] #默认端口22ps:在termux作server时,port选8022,user默认u0_a340/root client拷贝公钥(位于~/.ssh/id_rsa.pub,也能够手动解决)到server中的~/.ssh/authorized_keys ssh-copy-id user@ip# -i 指定公钥文件(这是感觉像是废话,过后为什么要记呢?)client门路 ~/.ssh/known_hosts 中公钥对应server中/etc/ssh/ssh_host_ecdsa_key.pub (上面也是之前记录的,然而曾经想不起来什么意思了。笔记还是要记得具体点啊) termux : 在termux和ubuntu中生成密钥时,id_rsa.pub尾端用户签名不同(u0_a340/root)wsl/win : 作client时,id_rsa(.pub)不同 补充:ecdsa #ECC(Elliptic Curves Cryptography):椭圆曲线算法RSA 与 DSA 都是非对称加密算法。其中RSA的安全性是基于极其艰难的大整数的合成(两个素数的乘积);DSA 的安全性是基于整数无限域离散对数难题。

May 26, 2022 · 1 min · jiezi

关于linux:SysAK-应用抖动诊断篇-eBPF又立功了-龙蜥技术

简介:且看 SysAK 是如何打造一款性能开销不大、安全可靠、且灵便的关中断检测工具。 文 / 零碎运维 SIG 编者按:还记得已经风行一时的狄仁杰探案系列之《他抖任他抖,IO诊断在我手》、《netinfo:揭开网络抖动面纱的神器》、《coredump 瘦身风波》等带大家领略了青囊在网络、IO、内存等畛域叱咤风云的魅力。现在,零碎运维 SIG 组重磅归来,后面已介绍了 Kernel module 凑合 IO 夯,明天持续分享 eBPF 硬扛零碎中断,快随我一起来看看 SysAK 是如何打造一款性能开销不大、安全可靠、且灵便的关中断检测工具。 一、背景日常业务运行时会常常受到各种各样的烦扰而产生抖动、影响客户体验。其中的一种干扰源是关中断,当关中断过久时可能会导致业务过程调度不及时、数据收发提早等,这种烦扰曾经随同 Linux 内核存在很长时间了,因此 Linux 内核包含业界也有不少相干的关中断检测伎俩。这里列举几个比拟典型计划: 1、内核最大关中断查看内核本身在零碎中所有的关/开中断门路中增加了 TRACE_IRQ_OFF 的 trace 点,以对系统中所有开/关中断进行监控。 长处:关中断检测准确且全面,同时课观测到关中断的工夫、甚至堆栈。 毛病:依赖于 CONFIG_IRQSOFF_TRACER 内核配置,该配置在不少发行版不反对。插桩点太多而且是热门路,对性能影响较大。 2、watchdog/hardlock detecter内核注册一个 PMU 硬件 event 定期检查本人注册的 watchdog hrtimer 中断是否有及时更新工夫戳。 长处:周期性的检测,对性能影响小,实用于零碎中关中断或者中断解决有 BUG 的状况。 毛病:监控的粒度太大,无奈提供更细粒度级别的零碎察看指标。对于一些无 PMU 硬件 event 的虚拟化环境该计划不失效。 3、trace_irq_handler_exit/trace_irq_handler_exit && irq_enter/irq_exit在所有中断处理函数的入口/进口安插 trace 以及工夫记录。 长处:提供所有中断解决时长的原始数据。 毛病:只可能察看到中断解决的工夫状况,对于其余关中断门路无奈监控,没有 threshold 触发机制,须要人工预先剖析。 4、其余开源查看工具在 Github 上也有不少相干的关中断查看工具,它们以 .ko 模块形式提供,利用 hrtimer 定时器查看到期工夫是否超过预期工夫。 长处:周期采样系统开销不大,提供了毫秒级的监控粒度。 ...

May 26, 2022 · 2 min · jiezi

关于linux:腾讯出品运维自动化新玩法标准运维企业应用案例分享

规范运维是一套通过成熟稳固的任务调度引擎,把多零碎间的工作整合到一个流程,助力运维实现跨系统调度自动化的SaaS。 作为蓝鲸体系中兼顾运维操作和运维流程的标准化、自动化的利器,规范运维通过几大性能点去实现它的价值: 1、调度编排服务:基于蓝鲸PaaS平台的API网关服务,不仅集成了腾讯蓝鲸产品各大原子平台的能力;而且可能无侵入地对接企业外部已有零碎的性能,将企业外部多零碎间的工作整合到一个流程模版中,实现一键自动化调度。 2、自助化服务:规范运维通过与蓝鲸PaaS平台的深度整合,为用户提供了“轻利用”和“职能化”性能,通过无效的权限管制,简化入口通道、操作界面,让用户能够将业务日常的运维工作交给产品和职能化人员执行,实现业务的公布、变更等工作自助化。 Ps:“轻利用”的执行人员,在业务中的角色称为“职能化”(区别于“运维人员”、“产品人员”等的一个角色标签)。 3、规范插件自主开发:规范插件提供一套残缺的开发流程标准,通过丰盛的表单界面和验证逻辑将企业外部各个系统、各个平台的API组装成一个规范插件模板。使其余的零碎通过规范插件的开发模板来调动不同零碎间的性能。 如果说大家对于规范运维还没有深刻的意识,别着急,上面小编通过企业内的理论运维场景,带大家体验规范运维给日常工作带来的便捷性,给你带来不一样的体验。 企业理论场景场景实例1——社区用户-龙拳风暴-刘宝星【性能】规范运维“并行网关”实现流程同步进行,并将通用流程编入“子流程”,实现一次编排,屡次应用的成果。缩小工夫消耗,简化流程编排,好看界面。 【背景】用户所在企业是一家游戏公司,家喻户晓,游戏有一套残缺的生命周期,游戏的上线、更新、保护、停服每一个步骤都须要运维人员残缺的参加,而游戏的“更新”更是一个高频率的运维操作。 以下是用户梳理的游戏更新步骤: 用户将所有的更新操作封装成一个脚本,针对执行更新操作的每一台服务器遍历执行。 【问题】 1、如何对多台服务器同时“更新”,进步操作效率呢? 2、人工执行脚本流程繁琐,是否有更简便的形式呢? 通过规范运维的可视化流程编排能够解决上述问题,实现“更新”操作的自主化。上面是社区用户通过规范运维的性能实现了一个游戏业务更新的流程模板。应用规范运维在可视化的界面下,将提前写好的脚本编入规范插件,再串联规范插件进行流程编排,两头可能缩小脚本的逻辑编写,实现自动化执行工作,同时也能防止手工执行脚本带来的失误。 针对不同的更新形式,用户还通过规范运维制订了更多调度编排的操作场景,编排出更多的流程模板。 【结语】对于游戏的更新,不同的企业会有不同的执行规范,任何企业都能够依据本身的需要,联合规范运维产品的灵活性,制订一套满足企业规范的运维自动化流程,即可带来显著的效益。 场景实例2——合作伙伴-嘉为公司经营同学提供【性能】应用规范运维的“分支网关“中分支节点的条件进行判断,确定下一步执行的节点。执行工作期间如果呈现“异常情况”,则通过分支条件给负责人发送邮件提醒,并且暂停工作,通过一步步的编排实现残缺的软件自动化部署。 【背景】近期看到社区群有些同学想通过规范运维实现组件装置、疾速开发,不知如何下手,上面给大家带来蓝鲸技术合作伙伴嘉为科技经营同学分享的企业场景——企业初始化装置Nginx。 黑板,上面开始要讲重点啦!! Nginx初始化装置的流程能够划分为5个重要的节点: 通过组装官网内置的规范插件,就能够造成一套残缺的Nginx初始化装置流程,实现自动化装置Nginx。 咱们能够看到上图中清晰展现了Nginx组件的装置过程,对于异常情况也做了对应的措施,高深莫测。所以,其它装置过程相似的组件(Apache、MySQL、Tomcat等)同样能够实用这套流程模板,只须要针对环境变动,对流程节点的编排和规范插件参数做一些调整即可实现。 依据嘉为同学的反馈,在此基础上,他们参照Nginx流程模板将其余组件的初始化装置流程以雷同的模式编排实现,通过子流程节点串联好所有初始化装置组件的流程,造成一套企业级规范的资源交付流程。 那么,这套交付流程可能为企业本质上带来的改善有多少呢? 以下是嘉为科技资源交付流程不同计划的比照图: 应用传统的办法(人工装置软件包)导致操作步骤简单流程简短,交付效率低下,应用规范运维提供的企业级规范的资源交付计划(实现流程化编排的装置和公布),具备如下特点: 标准规范的安装包,升高技术治理危险;(对立企业规范,便于管理)端到端的流程编排,实现多种简单流程编排;(编排流程,程序执行)全自动化的操作执行,进步软件交付效率;(运维自动化,节省成本)交互式的执行,直观管控工作的进度。(页面好看,操作简便)【结语】 本来须要破费几天工夫的资源交付,通过规范运维标准化、流程化的建设后,只需半个小时的工夫即可实现自动化的资源交付,这样的晋升对于企业的效益是不言而喻的。 蓝鲸智云简介腾讯蓝鲸智云(简称蓝鲸)软件体系是一套基于PaaS的技术解决方案,致力于打造行业当先的一站式自动化运维平台。目前曾经推出社区版、企业版,欢送体验。理解更多:https://bk.tencent.com/

May 18, 2022 · 1 min · jiezi

关于linux:Linux调试常用命令

一、应用curl输入通信的整个过程,用于调试curl -v https://www.example.com Notes:curl是一个利用URL规定在命令行下工作的文件传输工具。它反对文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。反对HTTP、HTTPS、FTP,还反对POST、cookies、认证、从指定偏移处下载局部文件、用户代理字符串、限速、文件大小、进度条等特色 二、为ubuntu系统配置路由删除网络接口为enxf8e43b376055的默认路由配置 route del -net default dev enxf8e43b376055为网络接口enxf8e43b376055减少一个新的路由配置 sudo route add -net 10.0.0.0/8 gw 10.10.86.1 dev enxf8e43b376055意思是为以后主机减少了一个路由到10.0.0.0,子网掩码为255.0.0.0的路由配置。通过的路由器为10.10.86.1

May 18, 2022 · 1 min · jiezi

关于linux:Linux常用命令

目录树结构 色彩示意的文件类型彩色——TXT 蓝色——文件夹 天蓝色——连贯文件(快捷方式) 黄色——块设施文件 绿色——可执行文件 红色——压缩包 绝对路径和相对路径1.绝对路径 惟一一个相对形容文件所在门路的形式“/”根目录是Linux操作系统最顶级的目录2.相对路径 绝对于以后所在门路3.cd命令汇总 Linux命令基本操作Shell是一个命令解释器,它解释由用户输出的命令并且把它们送到内核linux默认应用的shell是bash文件地位:/bin/bash1.mkdir创立目录(文件夹)2.touch创立空文件3.ln 硬连贯和软连贯4.rm删除5.mv移改文件写出把在本人目录中的abc.txt文件挪动到/opt目录中,并把文件名批改成123.txt的命令mv etc/abc.txt /opt/123.txt 6.rename 批量该文件名>[root@localhost kervin24]# lsa c fc.log ff.log fi.log fl.log fo.log fr.log fu.log fx.logaaa d fd.log fg.log fj.log fm.log fp.log fs.log fv.log fy.logb fb.log fe.log fh.log fk.log fn.log fq.log ft.log fw.log fz.log[root@localhost kervin24]# rename log txt * 把所有log文件改为txt文件 ------------------------------------------------------------------------------[root@localhost kervin24]# lsa c fc.txt ff.txt fi.txt fl.txt fo.txt fr.txt fu.txt fx.txtaaa d fd.txt fg.txt fj.txt fm.txt fp.txt fs.txt fv.txt fy.txtb fb.txt fe.txt fh.txt fk.txt fn.txt fq.txt ft.txt fw.txt fz.txt7.cp复制文件或目录8.ls 查看内容 ...

May 17, 2022 · 2 min · jiezi

关于linux:Linux和CentOS两者的关系

1.什么是Linux?Linux 是一套收费应用和自在流传的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、反对多线程和多 CPU 的操作系统。Linux 能运行次要的 UNIX 工具软件、应用程序和网络协议。它反对 32 位和 64 位硬件。Linux 继承了 Unix 以网络为外围的设计思维,是一个性能稳固的多用户网络操作系统。 2.什么是CentOS? CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux按照凋谢源代码规定释出的源代码所编译而成。CentOS 是一个基于Red Hat Linux 提供的可自在应用源代码的企业级Linux发行版本。每个版本的 CentOS都会取得十年的反对(通过安全更新形式)。新版本的 CentOS 大概每两年发行一次,而每个版本的 CentOS 会定期(大略每六个月)更新一次,以便反对新的硬件。这样,建设一个平安、低保护、稳固、高预测性、高重复性的 Linux 环境。[1]CentOS是Community Enterprise Operating System的缩写。CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的根底上修改了不少已知的 Bug ,绝对于其余 Linux 发行版,其稳定性值得信赖。 3.两者的关系1、centos是基于linux建设的操作系统。2、linux属于内核零碎,只有终端命令界面,无图形界面。3、centos同时领有终端命令界面和图形界面。4、linux和centos都是属于开源零碎。

May 17, 2022 · 1 min · jiezi

关于linux:Linux系统下如何下载Mysql

Linux下载Mysql5.x或者8.0具体教程留神:如果曾经有Mysql然而想要换版本号,切记不要间接下载,要先把旧版本的Mysql删除洁净再从新下载。(本文并未提供删除的步骤,请自行百度) 废话少说,咱们间接给出具体步骤:这里,咱们将mysql下载到/usr/local/目录下。 cd /usr/localmkdir mysqlcd mysqlwget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm而后,咱们装置 yum repo文件并更新 yum 缓存;命令如下: rpm -ivh mysql57-community-release-el7-11.noarch.rpm执行完后,咱们能够在/etc/yum.repos.d/ 目录下看到这两个repo文件: yum clean allyum makecache接着,咱们就能够应用咱们的yum装置mysql了。当咱们在应用yum装置mysql时,yum默认会从yum仓库中装置mysql最新的GA版本;咱们能够应用以下命令看一下是不是本人想要下载的版本。 yum repolist all | grep mysql我的显示后果如上图,能够看到,他筹备给我下载的是mysql8.0的版本(从后边的enabled能够看进去)。 如果想要下载mysql5.x版本,那么看上面援用局部。不须要则间接跳过下方的援用。 yum-config-manager --disable mysql80-community #敞开8.0版本yum-config-manager --enable mysql57-community #开启5.7版本抉择完须要下载的版本之后,咱们间接就能够应用yum下载mysql了。命令如下: yum install mysql-community-server期待下载实现后,咱们能够开启咱们的mysql服务: systemctl start mysqld.service刚下载完mysql,他会给一个初试的明码和用户名,初试用户名默认为root,明码寄存在系统文件/var/log/mysqld.log中。这是个随机生成的明码。咱们能够来看一下: cat /var/log/mysqld.log | grep password 这里,我的初试明码是wnw=PjFA.2b.(如果跟我一样最初有一个点的话,最初这个点记得不是句子完结给的句号,而是明码的一部分哈。) 而后咱们应用初试明码登录咱们的mysql。 mysql -u root -p #会提醒输出明码#输出咱们的明码(wnw=PjFA.2b.)而后咱们就能够批改咱们的初试明码了。(新密码必须蕴含大小写字母、数字和特殊符号,缺一不可) ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码(大小写字母+数字+特殊符号)’;之后,咱们要记得开启咱们的3306端口,当然,咱们也能够更改mysql的端口号为其余的,比方8090。 #须要批改端口号的看这个援用vim /etc/my.cnf#增加代码port=8090即可。#批改完端口号,咱们还得重启一下mysql服务,让配置失效。service mysqld restart(systemctl restart mysqld) 这里,咱们以如何开启8090端口号为例: #查看曾经凋谢的端口号firewall-cmd --list-all#增加8090端口号(–permanent示意永恒增加)firewall-cmd --add-port=8090/tcp --permanent#重启防火墙使之失效firewall-cmd --reload而后咱们设置mysql服务为开启启动项并启动mysql服务。 ...

May 17, 2022 · 1 min · jiezi

关于linux:Linux系统下如何下载node

1. 获取安装包首先,须要在https://nodejs.org/dist/ 中找到须要下载的node版本 在linux的etc目录下间接执行上面的命令来下载资源 wget命令是Linux零碎用于从Web下载文件的命令行工具,反对HTTP,HTTPS,FTP协定下载文件wget https://nodejs.org/dist/v14.14.0/node-v14.14.0-linux-x64.tar.gz2. 解压安装包tar -xvf是Linux零碎用于解压缩tar.gz文件的命令tar -xvf node-v14.14.0-linux-x64.tar.gz咱们也能够为了不便,为压缩包改个名称 mv node-v14.14.0-linux-x64.tar.gz  nodejs如果,咱们想要删除安装包,执行: rm -f node-v14.14.0-linux-x64.tar.gz3. 退出全局环境/软链接In -S /etc/nodejs /usr/bin/nodeIn -S /etc/npm /usr/bin/npmIn -S /etc/npx /usr/bin/npx4.验证是否装置胜利在命令行输出上面代码 node -v

May 17, 2022 · 1 min · jiezi

关于linux:龙蜥正式开源-SysOM百万级实战经验打造一站式运维管理平台-龙蜥技术

简介:SysOM集监控、告警、诊断、修复、平安能力于一体的操作系统运维平台。 文/零碎运维 SIG 如果你被从天而降的 OOPS 和满屏奇怪的函数弄得满头问号?机器内存明明很大,却申请不进去内存?业务周期抖动,ping 命令偶然工夫很长,但无从下手?程序就这么几行但程序怎么跑 CPU 都跑不高,业务流量上不去?亦或是 CPU 使用率 90% 以上,ps 一下一堆乌七八糟的工作导致你不知如何取舍…… 当你试图去社区寻找运维的开源产品时,将彻底从 Linux 收费、美味的地狱掉进天堂,因为你将搜寻到的是一堆业余、反复甚至互相冲突的命令以及千篇一律的监控零碎。这些命令你看不懂,监控零碎也仅仅都是些监控 CPU 使用率、内存使用率、网络吞吐的面板, 根本无法解决你的问题,还有 Linux 的低后期投入,带来的是极高的运维老本。 因而,SysOM 来了, SysOM ( System Operation&Maintenance)是由龙蜥社区零碎运维 SIG 打造的一站式操作系统运维平台,融入了 SIG 成员的胜利商用运维实践经验,可能帮忙用户在对立平台上实现主机治理、系统监控、异样诊断、日志审计、平安管控等简单操作系统治理。 SysOM 诞生次要是为了解决以下各方面的问题: Linux 社区存在大量的运维管理工具、监控工具、诊断工具,然而工具碎片化重大,单个工具解决单个场景问题,须要用户破费大量工夫钻研该工具能力应用,没有对立的平台为用户提供好的操作系统运维体验操作系统作为十分底层的基础设施,运维难度大,宕机问题、内存问题、网络问题等各类疑难问题的剖析都须要十分业余的操作系统常识,对于个别运维人员入门门槛过高个别的开源操作系统都有提供软件安全更新,然而却没有运维平台来对立治理安全漏洞的影响范畴、破绽的发现、破绽的修复基于以上问题,龙蜥社区 SysOM 应运而生,以后 SysOM 提供了以下 4 方面能力: 对立平台:一个平台解决操作系统运维过程中所须要的多种要害能力。SysOM 将主机治理、监控、诊断、审计、修复、平安能力集于一体,通过 Web 化的界面治理形式,用户能够轻松运维所有机器;简略易用:提供对立监控零碎,用户无需配置即可多维度的观测到所治理主机的状态;提供对立的诊断系统,用户用过 Web 化的界面即可残缺各类深刻的操作系统问题诊断;深度剖析:集成 SysAK 工具集深度诊断解决方案,积淀百万级的运维教训,进行内核源码级别的问题分析;安全可靠:提供对立的平安核心,为用户所治理主机提供全方位的破绽监控、治理、修复,保障系统的安全性;同时提供各类平安加固能力,满足不同利用不同水平的平安要求。SysOM 介绍1、架构介绍SysOM 整体架构分为:前端展现、服务端剖析、客户数据收集。通过对立的前端 Web 将所有运维服务的剖析数据展现给用户: 2、性能介绍SysOM 主题性能包含以下 6 类: 主机治理作为 SysOM 管控界面,承当治理节点的增删改查、终端操作系统等性能。你能够通过简略的 Web 界面操作将须要治理的机器增加进治理界面,也能够一键登录到对应的机器进行 shell 操作。 监控核心监控核心次要为用户全方位的展现操作系统状况,包含但不限于:网络提早、资源应用、工作负载、零碎工作等。它将提供相似基于特定场景(如游戏、金融等)的网络抖动监控 Netinfo 性能,也能提供操作系统全方位根底指标监控。 ...

May 17, 2022 · 1 min · jiezi

关于linux:红帽发布-Red-Hat-Enterprise-Linux-9转向边缘和多云下一代企业-IT-基础设施旗舰

在近日举办的 Red Hat Summit 峰会上,红帽公司重磅公布了下一代企业 IT 基础设施的降级 —— 旗舰版的 IT 企业级操作系统 Red Hat Enterprise Linux 9,以此来推动整个凋谢混合云从裸机服务器到云提供商和企业网络边缘更为统一的翻新。 Red Hat Enterprise Linux 9 新性能亮点新一代 Red Hat Enterprise Linux 9 的降级超过了服务器和数据中心,转向边缘和多云,且在平安方面有了极大改良。其中,一些性能能够帮忙解决 Spectre 和 Meldown 等硬件级安全漏洞,如帮忙用户空间过程创立潜在恶意代码无法访问的内存区域的性能,该平台还能够满足客户的平安需要,反对 PCI-DSS、HIPAA 等。 丰盛的边缘治理作为一项服务提供,Red Hat Enterprise Linux 9 可通过更弱小的管制和平安性能来监督和扩大近程部署,包含 Red Hat OpenShift 4.10 零接触资源调配、零碎运行状况可视性,以及更具响应性的破绽缓解,所有这些都只须要通过一个界面就能够实现。 Red Hat Enterprise Linux 9 反对 FIDO Device Onboarding 技术预览,通过加密验证零碎和创立配置和登录治理平台的平安通道来缩短部署工夫。 此外,Red Hat Enterprise Linux 9 还反对 Gnome Kiosk 模式,可为领取终端等繁多利用提供轻量级的图形桌面环境。 Red Hat Enterprise Linux 9 还扩大了一系列新零碎角色,如 Postfix、高可用性集群、防火墙、微软 SQL Server 及 Web 控制台,提供用于创立特定配置的自动化工作流。 ...

May 16, 2022 · 2 min · jiezi

关于linux:Linux下利用xrandr配置多显示器

在 Linux 中配置显示器,最好用的是 Xorg 自带的 xrandr,这个工具应用起来很不便。首先查看一下显示器的信息: xrandr --listmonitorsMonitors: 2 0: +*HDMI-1 1920/621x1080/341+0+0 HDMI-1 1: +DP-2 1680/433x1050/271+1920+0 DP-2从下面的输入能够看到 X window 检测到两个显示器,BENQ 显示器的编号为0,接口为 HDMI-1,而 DELL 显示器的编号为1,接口为 DP-2。 接下来调整一下两个显示器的地位: xrandr --output HDMI-1 --primary --right-of DP-2下面的命令把 HDMI-1 设置为主显示器,并把它置于 DP-2 的左边。命令执行完后,X Window 中显示器的地位就失常了。 接下来须要在每次启动时都执行这条命令,我用的是 Openbox 窗口管理器,因而把上述命令加到 Openbox 启动文件 ~/.config/openbox/autostart 中: echo "xrandr --output HDMI-1 --primary --right-of DP-2" >> ~/.config/openbox/autostart设置实现,每次启动后显示器的地位就会被调整。 xrandr 不仅能够配置显示器的地位,还能够查问显示器参数、配置分辨率或刷新频率等,请参考其相干手册。

May 14, 2022 · 1 min · jiezi

关于linux:运维自动化37秒万台服务器标准化与交付自动化

情景对运行在上万台服务器上的业务服务做标准化的调整 前提条件服务器已在CMDB注册领有服务器所在CMDB中业务的运维权限操作步骤1.新建作业2.执行和查看执行后果 1. 新建作业依照标准化的需要,咱们须要将gsectl文件推送至/usr/local/gse_bkte/agent/bin/目录,为了确保十拿九稳,做md5校验。 作业模板如下:提醒:为了论述作业平台中的两个全局参数:IP 和 云参,咱们通过需要自助化中用到的作业模板来介绍。IP这个参数,咱们个别倡议应用动静分组,因为服务器会有故障替换的可能,IP会变。 云参在脚本中能够间接援用。 2. 执行作业及查看执行后果点击执行作业后,在9946台服务器上总耗时37秒。 其中散发gsectl文件耗时13秒md5校验耗时24秒。 一次规范的利用交付自动化案例情景利用公布是运维这个岗位的职能之一,公布关联多个ITIL零碎的功能模块,比方公布单、监控的告警屏蔽、DB变更、业务内布告、对立登录入口等,频繁在多个零碎间切换,岂但影响效率而且容易出错,同时无奈可视化查看公布进度以及预先的回溯。 接下来,一起看下规范运维是如何解决这些痛点。(有性能个性须要5.1环境) 前提条件主机在蓝鲸CMDB中治理 术语解释流程模板 : 标准化的资源和利用交付模式,通过资源编排引擎,实现对资源的创立、配置,实现自动化交付资源或利用,行业中个别称之为pipeline、资源编排模板,比方一次公布工作能够编排为一个流程模板。规范插件 : 多个执行节点通过编排规定实现流程模板,其中的执行节点称之为 规范插件,比方执行脚本为一个规范插件操作步骤1.梳理:梳理标准化模板 2.建模:新建流程模板 3.执行:执行流程 1. 梳理标准化模板配置管理标准化中提到,运维服务“四化建设”的标准化蕴含配置管理、公布、变更、故障解决、监控告警等场景的流程制订。以公布为例,通过流程图梳理利用交付的流程。 分为公布前筹备、公布中、公布后查看三局部。 2. 创立流程模板为了简化演示,将流程图中的要害节点在规范运维的业务流程模板中体验进去。 抉择 [流程模板] -> [业务流程],点击 新建 来创立业务流程模板。 从左侧规范插件区,抉择公布流程中须要的规范插件作为流程的节点,比方执行作业, 向右拖动到画布。 抉择作业平台中筹备好的 作业模板,而后新建 全局变量,并将全局变量填充到节点的参数中。依照上述步骤,实现一个利用公布的流程模板。 规范运维内置了CMDB、作业平台、告诉等规范组件,如果不在此列的,须要开发规范运维插件来集成企业外部ITIL零碎。 这里重点阐明 全局参数 和 流程分支。 2.1 全局参数服务器产生故障后,保障下一次利用公布获取最新的IP列表,能够通过IP选择器实现。 2.2 流程分支利用公布过程中,执行胜利 和 执行失败的解决分支不同,能够通过流程分支性能对上一步执行后果为真或为假来判断。 提前援用上一步流程节点的输入参数执行后果,将其用于上图中的流程分支表达式。 3. 执行流程在业务流程列表中,点击新建工作 点击执行工作流程 部署蓝鲸智云https://bk.tencent.com/download/ 扩大浏览上下文传参将一个流程节点的输入作为另一个流程节点的输出。 比方第1步输入 MD5值 ,第2步散发版本,第3步应用第1步中生成的 MD5值 来校验版本的一致性,成果如下:次要用到规范运维流程节点中的援用输入参数(5.1版),援用第1步中的release_md5变量。 release_md5变量须要提前在作业模板中设置,如下图: 蓝鲸智云简介腾讯蓝鲸智云(简称蓝鲸)软件体系是一套基于PaaS的技术解决方案,致力于打造行业当先的一站式自动化运维平台。目前曾经推出社区版、企业版,欢送体验。理解更多:https://bk.tencent.com/

May 13, 2022 · 1 min · jiezi

关于linux:Linux系统下的软件包管理命令汇总使用Linux系统前必备知识

在最开始介绍Linux发行版分类时曾提到过是依照软件包打包格局分为如下三大类: Debian系列: 软件包后缀格局为.deb,软件包治理命令为apt。Red Hat系列: 软件包后缀格局为.rpm, 软件包治理命令为yum、dnf、zypper。ArchLinux系列: 软件包后缀格局为.pkg.tar.zst, 软件包治理命令为pacman。GentooLinux系列:软件包从源代码构建,GentooLinux为用户提供了大量的应用程序源代码,软件包治理命令工具为emerge。apt包管理器用法APT高级打包工具(英语:Advanced Packaging Tools,缩写为APT)是Debian及其派生的Linux软件包管理器。APT能够主动下载,配置,装置二进制或者源代码格局的软件包,因而简化了Unix零碎上管理软件的过程。APT最早被设计成dpkg的前端,用来解决deb格局的软件包。当初通过APT-RPM组织批改,APT曾经能够装置在反对RPM的系统管理RPM包。 装置软件 : apt install <package>删除软件 : apt remove <package>查找软件 : apt search <package-name>更新软件 : apt update软件源配置文件: /etc/apt/sources.list.d/*.list 自定义软件源配置文件更新软件源缓存: apt update清理软件源缓存: 无yum包管理器用法Yum(Yellowdog Updater, Modified),是由Duke University团队批改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM包治理的字符前端软件包管理器。可能从指定的服务器主动下载RPM包并且装置,能够解决依赖性关系,并且一次装置所有依赖的软件包,毋庸繁琐地一次次下载、装置。被Yellow Dog Linux自身,以及Fedora、Red Hat Enterprise Linux采纳。 装置软件 : yum install <package>删除软件 : yum remove <package>查找软件 : yum search <package-name>更新软件 : yum update软件源配置文件: /etc/yum.repos.d/*.repo 自定义软件源配置文件更新软件源缓存: yum makecache清理软件源缓存: yum clean allDNF包管理器(yum的下一代代替版)DNF,全称Dandified Yum,是RPM发行版的软件包管理器Yellowdog Updater, Modified(yum)的下一代版本。DNF最早呈现在Fedora 18中,并在Fedora 22、RHEL8中代替yum。DNF旨在解决局部yum已知的不足之处,包含蹩脚的性能、高内存应用、迟缓的迭代拓扑排序。 ...

May 12, 2022 · 1 min · jiezi

关于linux:Linux下Java剪贴板的访问

1 概述本文次要讲述了如何利用xsel在Linux环境下对系统剪贴板的拜访。 2 起因在搜索引擎间接搜寻“Java拜访剪贴板”,大部分都是间接应用AWT API进行拜访的例子: Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();StringSelection selection = new StringSelection("test");clipboard.setContents(selection, selection);然而,一个最大的问题是,须要该程序始终运行,能力拜访到剪贴板,因而,如果没有其余解决逻辑,须要加上线程休眠代码: Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();StringSelection selection = new StringSelection("test");clipboard.setContents(selection, selection);TimeUnit.HOURS.sleep(1);换句话说,这样只是长期复制到剪贴板,并没有永恒复制,那么,有没有其余方法能够在运行程序完结之后也能拜访到剪贴板呢? 3 xselxsel是Linux下拜访剪贴板的命令行工具,相似的还有xclip,没有装置的能够应用包管理器装置。其中写入到剪贴板命令如下: echo "test clipboard" | xsel -ib由此想到了能够尝试应用Runtime: public static void main(String[] args) throws Exception { Runtime runtime = Runtime.getRuntime(); // 间接执行命令 Process process = runtime.exec("echo \"111\" | xsel -ib"); // 期待执行完结 process.waitFor(); StringBuilder builder = new StringBuilder(); // 获取输入 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); for (String s; ((s = reader.readLine()) != null); ) { builder.append(s); } System.out.println(builder); builder = new StringBuilder(); // 获取谬误输入 reader = new BufferedReader(new InputStreamReader(process.getErrorStream())); for (String s; ((s = reader.readLine()) != null); ) { builder.append(s); } System.out.println(builder); // 获取返回值 int exitValue = process.exitValue(); System.out.println("exitValue is " + exitValue); if (exitValue != 0) { System.out.println("error"); } process.destroy();}运行之后输入如下: ...

May 11, 2022 · 3 min · jiezi

关于linux:linux-设置熄屏时间

应用xset命令能够显示或设置显示器的各种用户首选项 #查看显示器设置的相干信息,如 screensave.timeout 值为600,意为屏保工夫是600秒xset -q#设置屏保工夫为300秒,单位秒xset s 300

May 11, 2022 · 1 min · jiezi

关于linux:麒麟操作系统-kylinos-从入门到精通-系统设置-第二篇-系统密码策略与密码修改

1.明码策略批改麒麟零碎(kylinos)在默认状况下比拟严格,必须长度大于8,且两种以上字符。集体平时用不须要这么简单。关上菜单,点击设置,关上设置对话框。抉择平安与更新 抉择账户平安抉择自定义改成本人想要的策略即可 2.明码批改2.1 图形界面批改关上设置进入账户点批改明码输出相干信息即可 2.2 命令行形式批改关上命令行终端输出passwd并回车依据提醒填入原明码,输出两次新密码即可 3.遗记明码状况下找回明码在应用过程中,会呈现遗记明码或输出谬误无奈校对的解决办法。重启零碎,在grub选项当选advanced options for kylin v10 sp1抉择高级选项抉择恢复模式期待启动结束,进行命令行管制界面。间接输出passwd是改的root用户的明码,输出 passwd 用户名是改的指定用户的明码。输出两次同样的明码后,提醒批改胜利输出reboot重启零碎即可。 版权所有,转载请注明出处并提供源链接公布日志:20220511 首发

May 11, 2022 · 1 min · jiezi

关于linux:Linux搭建ftp和sftp服务器

前言FTPFTP(File Transfer Protocol,文件传输协定)是 TCP/IP 协定组中的协定之一,个别是为了不便数据共享的。FTP 包含一个 FTP 服务器和多个 FTP 客户端,其中 FTP 服务器上用来存储文件,用户能够应用 FTP 客户端通过 FTP 协定拜访位于 FTP 服务器上的资源。 在开发网站的时候,通常利用 FTP 协定把网页或程序传到 Web 服务器上。此外,因为 FTP 传输效率十分高,在网络上传输大的文件时,个别也会采纳该协定。 SFTPSFTP 是一种平安的文件传输协定,能够为传输文件提供一种平安的加密办法,有着与 FTP 简直一样的语法和性能。 SFTP 要求客户端用户必须由服务器进行身份验证,并且数据传输必须通过平安通道(SSH)进行,即不传输明文明码或文件数据,它容许对近程文件执行各种操作。 SFTP 和 FTP 的区别? 平安通道:FTP 不提供任何平安通道来在主机之间传输文件;而 SFTP 协定提供了一个平安通道,用于在网络上的主机之间传输文件。应用的协定:FTP 应用 TCP/IP 协定,而 SFTP 是 SSH 协定的一部分,它是一种近程登录信息。链接形式:FTP 应用 TCP 端口 21 上的管制连贯建设连贯;而 SFTP 是在客户端和服务器之间通过 SSH 协定(TCP 端口 22)建设的平安连贯传输文件。安全性:FTP 明码和数据以纯文本格式发送,大多数状况下不加密,安全性不高;而 SFTP 会在发送之前加密数据,二进制的模式传递,安全性较高。简略来说,FTP 基于 TCP 来传输文件,明文传输用户信息和数据,而 SFTP 基于 SSH 来加密传输文件,可靠性搞,可断点续传。参考链接申明:所有操作均在 Centos7 环境下进行。https://help.aliyun.com/docum...搭建FTP服务器配置FTP服务器1、装置 vsftpd:yum install -y vsftpd。 ...

May 9, 2022 · 6 min · jiezi

关于linux:Linux下的tar压缩解压缩命令详解

1、tar这五个是独立的命令,压缩解压都要用到其中一个,能够和别的命令连用但只能用其中一个。-c: 建设压缩档案-x:解压-t:查看内容-r:向压缩归档文件开端追加文件-u:更新原压缩包中的文件 上面的参数是依据须要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到规范输入 上面的参数-f是必须的-f: 应用档案名字,切记,这个参数是最初一个参数,前面只能接档案名。 命令组合应用: \# tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是示意产生新的包,-f指定包的文件名。 \# tar -rf all.tar *.gif这条命令是将所有.gif的文件减少到all.tar的包外面去。-r是示意减少文件的意思。 \# tar -uf all.tar logo.gif这条命令是更新原来tar包all.tar中logo.gif文件,-u是示意更新文件的意思。 \# tar -tf all.tar这条命令是列出all.tar包中所有文件,-t是列出文件的意思 \# tar -xf all.tar这条命令是解出all.tar包中所有文件,-t是解开的意思 2、压缩tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成jpg.tar tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2 tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z rar a jpg.rar *.jpg //rar格局的压缩,须要先下载rar for linux zip jpg.zip *.jpg //zip格局的压缩,须要先下载zip for linux 3、解压tar -xvf file.tar //解压 tar包 tar -xzvf file.tar.gz //解压tar.gz ...

May 9, 2022 · 5 min · jiezi

关于linux:2022开源之夏-龙蜥社区你快来报名

流动介绍开源之夏是由“开源软供应链点亮打算”发动并长期反对的一项暑期开源流动,旨在激励在校学生积极参与开源软件的开发保护,促成优良开源软件社区的蓬勃发展,造就和挖掘更多优良的开发者。流动联结国内外各大开源社区,针对重要开源软件的开发与保护提供我的项目工作,并面向寰球高校学生凋谢报名。 本次流动,龙蜥社区共设置了六个我的项目,每个工作均指派了业余导师对同学提供精心领导。有动向抉择龙蜥社区我的项目的同学,可登录我的项目页理解详细信息,也能够间接分割我的项目导师征询。 当选学生能够取得什么?结识开源界小伙伴和技术大牛取得社区导师的 1 对 1 业余领导取得开源我的项目的教训、经验,丰盛个人简历取得纪念品、奖金和证书:通过结项考核的学生将取得我的项目奖金、结项证书及结项礼包;通过结项考核的学生将有机会取得优秀学生证书。流动面向哪些学生?本流动面向年满 18 周岁在校学生。暑期行将毕业的学生,只有在申请时学生证处在有效期内,就能够提交申请。海内学生可提供录取通知书、学生卡、在读证实等文件用于证实学生身份。流程: 学生与社区我的项目沟通期:4 月 21 日- 5 月 20 日学生提交我的项目申请书:5 月 21 日 - 6 月 4 日我的项目开发:7 月 - 9 月更多流程,详见: https://summer-ospp.ac.cn/#/h... 我的项目详情1、制作树莓派龙蜥镜像我的项目详情地址:https://summer-ospp.ac.cn/#/o... 我的项目形容:树莓派生态曾经越来越被开发者承受和喜爱,并逐步利用于各种嵌入式场景。通过该我的项目能够学习树莓派疏导和镜像制作流程,并有机会进行内核相干开发适配。我的项目打算输入适配树莓派镜像构建流程代码;并最终输入并公布适配树莓派(3b, 4)的龙蜥镜像。 我的项目产出要求:树莓派镜像构建流程代码;适配树莓派(3b, 4)的龙蜥镜像。 我的项目技术要求:精通 Linux,有肯定 Linux 内核根底。 成绩提交地址:https://gitee.com/anolis-educ... 难度:进阶 2、将 Vscode 包集成到龙蜥生态我的项目详情地址:https://summer-ospp.ac.cn/#/o... 我的项目形容:VS code 是一款比拟风行的源代码编辑器,将其集成到 Anolis OS 中可丰盛龙蜥社区的利用生态,更好地服务社区开发者。 我的项目产出要求:1)VS code 仓库以及 rpm 包;2)实现基于 Vscode 开发用户应用文档。 我的项目技术要求:学习包编译流程、学习根本 nodejs 相干内容。 成绩提交地址:https://gitee.com/anolis-educ... 难度:根底 3、制作 sm3sum 工具我的项目详情地址:https://summer-ospp.ac.cn/#/o... 我的项目形容:SM3 是中国定义的哈希算法,coreutils 是 GNU/linux 的根底软件工具包,coreutils 工具包曾经反对了 sha256sum、md5sum 这一类用于计算哈希的工具,尽管最新的版本通过 cksum -a sm3 模式反对了 SM3 算法,因为用户习惯,以及版本起因,OpenAnolis社区依然须要一款 sm3sum 工具,用于计算SM3哈希摘要,须要放弃跟 md5sum 这类工具应用习惯的一致性。 ...

May 9, 2022 · 1 min · jiezi

关于linux:利器解读Linux-内核调测中最最让开发者头疼的-bug-有解了|龙蜥技术

简介:通过在Anolis 5.10 内核中加强 kfence 的性能,实现了一个线上的、精准的、可定制的内存调试解决方案。 编者按:始终继续存在内核内存调测畛域两大行业难题: "内存被改" 和 "内存透露"何解?本文整顿自龙蜥大讲堂第 13 期,无效地解决这两大难题都须要什么计划?快来看作者的具体介绍吧! 一、背景始终以来,内核内存调测畛域始终继续存在着两大行业难题: "内存被改" 和 "内存透露"。内存问题行踪诡异、飘忽不定,在 Linux 内核的调测问题中,是最让开发者头疼的 bug 之一,因为内存问题往往产生故障的现场曾经是第 N 现场了,尤其是在生产环境上呈现,截止目前并没有一个很无效的计划可能进行精准的线上 debug,导致难以排查、耗时耗力。接下来让咱们来别离看一下"内存被改" 和 "内存透露"这两大难题为什么难。 1.1 内存被改Linux 的用户态的每个过程都独自领有本人的虚拟内存空间,由 TLB 页表负责映射治理,从而实现过程间互不烦扰的隔离性。然而,在内核态中,所有内核程序共用同一片内核地址空间,这就导致内核程序在调配和应用内存时必须小心翼翼。 出于性能思考,内核中绝大多数的内存调配行为都是间接在线性映射区划出一块内存归本人应用,并且对于调配后具体的应用行为没有监控和束缚。线性映射区的地址只是对实在物理地址做了一个线性偏移,简直能够视同间接操作物理地址,并且在内核态是齐全凋谢共享的。这意味着如果内核程序的行为不标准,将可能净化到其余区域的内存。这会引起许多问题,重大的状况下间接会导致宕机。 一个典型的场景例子:当初咱们假如用户 A 向内存调配零碎申请到了 0x00 到 0x0f 这块地址,但这只是口头上的“君子协定”,A不用强制恪守。因为程序缺点,A 向隔壁的 0x10 写入了数据,而 0x10 是用户 B 的地盘。当B试图读取本人地盘上的数据的时候,就读到了谬误的数据。如果这里本来存着数值,就会呈现计算错误从而引起各种不可预估的结果,如果这里本来是个指针,那整个内核就可能间接宕机了。 上述的例子被称为越界拜访(out-of-bound),即用户 A 拜访了本不属于 A 的地址。内存被改的其余状况还有开释后应用(use-after-free)、有效开释(invalid-free)等。这些状况就想成 A 开释了这片空间后,内核认为这片曾经闲暇了从而调配给 B 用,而后 A 又杀了个回马枪。例如,咱们能够通过以下的模块代码模仿各种内存批改的例子: //out-of-boundchar *s = kmalloc(8, GFP_KERNEL);s[8] = '1';kfree(s);//use-after-freechar *s = kmalloc(8, GFP_KERNEL);kfree(s);s[0] = '1';//double-freechar *s = kmalloc(8, GFP_KERNEL);kfree(s);kfree(s);1.1.1 为什么调测难 ...

May 9, 2022 · 2 min · jiezi

关于linux:Ubuntu-2004-中配置NFS服务

NFS是Network File System的首字母缩写。它是一种分布式协定,使客户端能够拜访近程服务器上的共享文件。在本文中,将在Ubuntu 20.04 LTS中装置NFS服务。而后,演示如何从客户端零碎拜访服务器上的文件。零碎环境NFS服务端:Ubuntu 20.04 LTS ,IP地址:192.168.43.174NFS客户端:Centos8 ,IP地址:192.168.43.131 一、装置NFS服务端运行上面命令装置NFS服务端: bob@ubuntu-20-04:~$ sudo apt install nfs-kernel-server应用上面命令查看nfs-server是否曾经启动: bob@ubuntu-20-04:~$ sudo systemctl status nfs-server● nfs-server.service - NFS server and services Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2021-04-21 10:20:29 CST; 1min 30s agoMain PID: 41727 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2278) Memory: 0B CGroup: /system.slice/nfs-server.service4月 21 10:20:28 ubuntu-20-04 systemd[1]: Starting NFS server and services...4月 21 10:20:29 ubuntu-20-04 systemd[1]: Finished NFS server and services.Ubuntu 20.04 中配置NFS服务Ubuntu 20.04 中配置NFS服务 ...

May 9, 2022 · 2 min · jiezi

关于linux:linux解决binbash^M-bad-interpreter

linux解决“/bin/bash^M: bad interpreter“起因: 在执行shell脚本时提醒这样的谬误次要是因为shell脚本文件是dos格局,即每一行结尾以\r\n来标识,而unix格局的文件行尾则以\n来标识 解决办法: (1)应用linux命令dos2unix filename,间接把文件转换为unix格局; (2)应用sed命令sed -i "s/\r//" filename 或者 sed -i "s/^M//" filename间接替换结尾符为unix格局; (3)vi filename关上文件,执行 : set ff=unix 设置文件为unix,而后执行:wq,保留成unix格局。 查看脚本文件是dos格局还是unix格局的几种方法。 (1)cat -A filename 从显示后果能够判断,dos格局的文件行尾为^M$,unix格局的文件行尾为$; (2)od -t x1 filename 如果看到输入内容中存在0d 0a的字符,那么文件是dos格局,如果只有0a,则是unix格局; (3)vi filename关上文件,执行 : set ff,如果文件为dos格局在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。

May 7, 2022 · 1 min · jiezi

关于linux:如何扫描和修复-Linux-磁盘错误

在本文中,将学习如何应用 fsck 和 xfs_repair 命令修复 Linux 磁盘谬误。什么是FSCK?fsck(文件系统一致性查看)是用于查看Linux操作系统文件系统一致性的工具。列出 Linux 磁盘分区和类型:首先,须要确定 Linux 零碎的磁盘分区、它们各自的文件系统以及挂载点。 上面应用lsblk命令列出磁盘明、文件系统类型、挂载点: [root@localhost ~]# lsblk -o NAME,FSTYPE,MOUNTPOINTNAME FSTYPE MOUNTPOINTsda sdb sdc sdd sr0 iso9660 nvme0n1 ├─nvme0n1p1 ext4 /boot└─nvme0n1p2 LVM2_member ├─cl-root xfs / └─cl-swap swap [SWAP]如何扫描和修复 Linux 磁盘谬误如何扫描和修复 Linux 磁盘谬误 获取 Linux 磁盘的上次扫描时间你能够应用下命令找到 Ext2,Ext3,Ext4 类型分区的最初一次扫描时间。 [root@localhost ~]# tune2fs -l /dev/nvme0n1p1 |grep checkedLast checked: Wed Sep 1 15:42:11 2021如何扫描和修复 Linux 磁盘谬误如何扫描和修复 Linux 磁盘谬误 扫描和修复 Ext4 类型的磁盘分区扫描 Linux 磁盘分区,能够应用 fsck(文件系统一致性查看)命令。然而在检查和修复它之前,须要卸载该分区。上面实例中,咱们卸载的是/boot分区。 [root@localhost ~]# umount /dev/nvme0n1p1 卸载胜利后,应用fsck.ext4查看/dev/nvme0n1p1分区 ...

May 7, 2022 · 3 min · jiezi

关于linux:我们为什么要关闭-TCP-timestamp

sysctl -w net.ipv4.tcp_timestamps=0如君所见,咱们在所有的 Linux 服务器上,应用上述命令敞开了 TCP timestamp。 查看原文 TCP Timestamp 是什么Timestamp 是 TCP 协定包首部的可选项,蕴含 2 个值,别离是报文发送的工夫 (TSval),以及收到的对端发送来的 TSval 原样返回 (TSecr)。 +-------+-------+---------------------+---------------------+|Kind=8 | 10 | TS Value (TSval) |TS Echo Reply (TSecr)|+-------+-------+---------------------+---------------------+ 1 1 4 4RFC-7323 给出了具体的阐明和用处,这篇文章也有个好名字,值得一读。照 RFC-7323 描述,TCP Timestamp 由两个重要的理由,然而这两个理由都没有压服咱们: PAWS, Protection Against Wrapped-Around Sequence-Numbers。在超高速网络中,可能须要一个大的 TCP 窗口,这种状况下,有些包重传的时候,这个重传的旧包可能会当成新的包。假如 TCP 接管窗口有 4G 那么大,因为序列号是 4 字节的,有一个序列号是 x的包失落重传的时候,这个包可能被当作 x+4G 地位的包。当初是 2022 年,我不置信这样的事件真会产生。 能够帮忙计算 RTT。Selective ACK 也能够啊。此外,我还找到一个理由: TCP Cookie 能够利用 TSval 保留 cookie,缩小哈希抵触。是个有吸引力的理由,但SYN FLOOD 也不是每时每刻都在产生的。 ...

May 7, 2022 · 1 min · jiezi

关于linux:LinuxCentOS中升级git

在装置Homebrew时,提醒git版本过低。应用yum install git装置只能装置低版本。尝试了编译装置,在/etc/profile也加了环境变量成果不现实,仍然提醒版本过低。最初尝试手动下载rpm包进行装置。 1.关上Epel-release搜寻git,并用yum装置rpm包 yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm2.装置即可 yum install git

May 6, 2022 · 1 min · jiezi

关于linux:LinuxCentOS7中升级Curl

在装置Homebrew时,提醒curl版本过低,无奈装置。应用yum update也无奈降级curl,通过查找材料决定应用第三方。 1.首先装置epel-release(其余找不到的rpm包也能够去下载) yum -y install epel-release 2.装置curl的rpm包 wget http://mirror.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org-release-2-2.rhel7.noarch.rpmrpm -ivh city-fan.org-release-2-2.rhel7.noarch.rpm3.将[city-fan.org]的enable值批改为1 vim /etc/yum.repos.d/city-fan.org.repo[city-fan.org]name=city-fan.org repository for Red Hat Enterprise Linux (and clones) $releasever ($basearch)#baseurl=http://mirror.city-fan.org/ftp/contrib/yum-repo/rhel$releasever/$basearchmirrorlist=http://mirror.city-fan.org/ftp/contrib/yum-repo/mirrorlist-rhel$releaseverenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-city-fan.org4.更新curl yum update curl --enablerepo=city-fan.org -y5.装置实现,查看版本 curl --version

May 6, 2022 · 1 min · jiezi

关于linux:如何提高SSH的安全性

SSH(平安 Shell)是一个协定,它使你可能创立一个通过验证的私人连贯,并应用加密密钥爱护通道,在另一台机器上启动一个近程 Shell。应用这种连贯,你能够执行近程命令,启动平安文件传输,转发套接字、显示和服务,等等。 在 SSH 呈现之前,大多数远程管理是通过 telnet实现的,偏心地说,一旦你能建设一个近程会话,你简直能够做任何你须要的事件。这个协定的问题是,通信是以纯明文的形式进行的,没有通过加密。应用流量嗅探器不须要 太多致力就能够看到一个会话中的所有数据包,包含那些蕴含用户名和明码的数据包。 有了 SSH,因为应用了非对称密钥,参加通信的设施之间的会话是加密的。现在,这比以往任何时候都更有意义,因为所有的云服务器都是由散布在世界各地的人治理的。 3 个配置 SSH 的技巧SSH 协定最常见的实现是 OpenSSH,它由 OpenBSD 我的项目开发,可用于大多数 Linux 和类 Unix 操作系统。一旦你装置了这个软件包,你就会有一个名为 sshd_config 的文件来管制该服务的大部分行为。其默认设置通常是十分激进的,但我偏向于做一些调整,以优化我的 SSH 体验,并爱护我的服务器不被非法拜访。 1、扭转默认端口这是一个并非所有管理员都记得的问题。任何有端口扫描器的人都能够发现一个 SSH 端口,即便你之后把它移到别的端口,所以你很难把本人从危险中移除,但这样却会无效的防止了数百个针对你的服务器扫描的不成熟脚本。这是一个能够让你省心,从你的日志中减去大量的乐音的操作。 在写这篇文章时,我在一个云服务提供商上设置了一个 SSH 服务器,默认端口 TCP 22,每分钟均匀被攻打次数为 24 次。在将端口改为一个更高的数字,即 TCP 45678 后,均匀每天有两个连贯并用各种用户名或明码进行猜想。 要扭转 SSH 的默认端口,在你喜爱的文本编辑器中关上 /etc/ssh/sshd_config,将 Port 的值从 22 改为大于 1024 的某个数字。这一行可能被正文了,因为 22 是默认的(所以不须要在配置中明确申明),所以在保留之前勾销正文。 Port 22122AddressFamily any ListenAddress 0.0.0.0 ListenAddress ::一旦你扭转了端口并保留了文件,重新启动 SSH 服务器: $ sudo systemctl restart sshd2、不要应用明码当初有一个广泛的潮流是停止使用明码作为认证伎俩,双因素认证等办法越来越受欢迎。OpenSSH 能够应用非对称密钥进行认证,因而不须要记住简单的明码,更不须要每隔几个月轮换一次明码,也不须要放心有人在你建设近程会话时进行“肩后偷窥”。应用 SSH 密钥能够让你疾速、平安地登录到你的近程设施上。这往往意味着破费在谬误的用户名和明码上的工夫更少。登录令人欢快的简略。当没有密钥时,就没有入口,甚至没有提示符。 要应用这个性能,你必须同时配置客户机(在你背后的计算机)和服务器(近程机器)。 在客户端机器上,你必须生成一个 SSH 密钥对。这包含一个公钥和一个私钥。正如它们的名字所暗示的,一个公开的密钥是供你分发给你想登录的服务器的,另一个是私人的密钥,必须不与任何人分享。应用 ssh-keygen 命令能够创立一个新的密钥对,并应用 -t 选项来指定一个好的、最新的密码学库,如 ed25519: $ ssh-keygen -t ed25519     Generating public/private ed25519 key pair.  Enter file in which to save the key (~/.ssh/id_ed25519):在密钥创立过程中,你会被提醒为文件命名。你能够按回车键来承受默认值。如果你未来创立了更多的密钥,你能够给每个密钥起一个自定义的名字,但有多个密钥意味着你要为每次交互指定应用哪个密钥,所以当初只有承受默认即可。 ...

May 6, 2022 · 1 min · jiezi

关于linux:读书笔记Linux内核设计与实现5

零碎调用零碎调用就是一组用于用户过程与内核交互的接口。实现: 应用程序受限地拜访硬件设施(硬件的形象接口),基于权限进行拜访裁决。创立过程间通信机制申请操作系统其它资源的能力。零碎调用是用户控件拜访内核的惟一形式,除了异样和陷入之外。API、POSIX和C库API:应用程序通过在用户控件实现的利用编程接口。通过API进行零碎调用,而不间接进行零碎调用,不须要和零碎调用一一对应。POSIX指标是提供基于Unix的可移植操作系统规范。依据POSIX定义的API函数和零碎调用都有间接的关系。linux的零碎调用能够作为C库的一部分进行提供,C库实现了Unix零碎次要API,提供了绝大部分POSIX API。程序员只跟API打交道,Unix的接口设计准则是只提供机制而不提供策略。 应用Linux零碎调用程序员通过API调用进行零碎调用,关注输出,输入,全局错误码errno变量。通过perror()库函数,把errno变量进行打印。定义零碎调用: asmlinkage long sys_getpid(void)限定词asmlinkage是一个编译指令,告诉编译器仅从栈中提取该函数的参数,所有零碎调用都须要这个限定词。 函数返回值long,兼顾32位和64位,零碎调用在用户空间和内核空间有不同的返回值类型,在用户空间为int, 内核空间long。 零碎调用号每个零碎调用对应一个零碎调用号。过程不会提及零碎调用的名称。一旦调配就不能扭转,否则零碎解体,不兼容。零碎被删除或者废除后,Linux有一个未实现零碎调用sys_ni_syscall(),除了返回-ENOSYS外不做任何工作。sys_call_table零碎调用表中记录了所有注册过的零碎调用列表。不同体系结构,零碎调用表不同。x86在arch/i386/kernel/syscall_64.c零碎调用性能Linux零碎调用性能比其余操作系统要好,因为他有更短的上下文切换,而且零碎调用处理程序和每个零碎调用自身都比拟简洁。 零碎调用处理程序用户态过程通过软中断的形式告诉内核须要执行一个零碎调用:引发一个异样,促使零碎切换到内核态去执行异样处理程序,该程序就是零碎调用处理程序,中断号128,int $0x80指令触发中断,system_call(),与硬件体系结构严密相干,x86-64用汇编写的entry_64.S,后减少了sysenter指令。 陷入内核的同时,须要把零碎调用号一并传给内核,x86上通过寄存器eax.system_call()将零碎调用号与NR_syscalls作比拟,大于或等于NR_syscalls,函数返回-ENOSYS,否则就执行相应的零碎调用: call *sys_call_table(,%rax,8)因为零碎调用表中的表项是以64位(8字节)类型寄存的,所以内核须要将给定的零碎调用号*4,而后将所得后果在该表中查问地位(????),x86-32零碎上,代码很相似,只是用4代替8。 零碎调用的参数传递通过寄存器进行传递ebx, ecx, edx, esi和edi寄存前5个参数,6个或以上,用一个独自寄存器寄存指向这些参数在用户空间地址的指针。 返回值也是通过寄存器进行传送,eax寄存器中。 零碎调用实现在linux设计和实现一个零碎调用是难题,退出内核不麻烦。 决定用处,调用参数,返回值,错误码。力求简洁,稳固,向后兼容,可移植性。许多零碎调用通过提供标记参数以确保向前兼容,标记并不是用来让单个零碎调用具备多个不同的行为,而是为了即便减少新的性能和选项,也不毁坏向后兼容或不须要减少新的零碎调用。别对机器的字节长度和字节序做假如。参数验证,用户输出,用户指针(拜访权限问题,指向区域必须是用户控件,指针指向的内存区域在过程的地址空间内,可读可写可执行的权限分清)copy_from_user(), copy_to_user(): 目标地址,源地址,内存长度。可能引起阻塞,当蕴含用户数据的页被换到硬盘上而不是物理内存上时,过程休眠,晓得缺页处理程序将该页从硬盘从新换回物理内存。权限验证:通过capable()函数查看是否有权对特定资源进行操作,非0有权操作。零碎调用上下文,如果执行零碎调用,内核就处于过程上下文,current指针指向当前任务。 过程上下文中,内核能够休眠(零碎调用阻塞或者schedule()调用)能够被抢占,新过程能够应用雷同的零碎调用,所以要留神该零碎调用是否可重入。零碎调用返回时,控制权依然在system_call()中,他最终会负责切换回用户空间,并让用户过程继续执行上来。绑定零碎调用 零碎调用表entry.s中减少一个表项,0开始-end与体系结构强相干,<asm/unistd.h>零碎调用必须被编译进内核映像,不能被编译成模块,放在kernel/下一个相干文件就可了,如sys.cENTRY(sys_call_table) .long sys_restart_syscall....没有明确指向编号,默认从0-须要对每个体系结构减少该零碎调用零碎调用号减少到<asm/unistd.h>中,#define __NR_restart_systemcall 0...从用户空间拜访零碎调用 通过c库进行调用,新增的零碎调用可能不反对能够应用宏对系统调用进行拜访,他会设置好寄存器并调用陷入指令。_syscalln()//0-6,代表传递给零碎调用的参数个数long open(const char *filename, int flags, int mode)#define NR_open 5 //<asm/unistd.h>中定义,是零碎调用号_syscall3(long, open, const char, *filename, int, flags, int, mode)该宏会被扩大为内嵌汇编的c函数。将零碎调用号和参数压入寄存器并触发软中断来陷入内核。把下面的宏放在应用程序中就行。不举荐通过零碎调用的形式实现 零碎调用在linux中容易创立和使用方便以及高性能。 问题是 须要一个零碎调用号,官网调配退出稳固内核后就被固化,不能做扭转须要将他别离注册到不同体系结构中,脚本中不容易应用零碎调用,也不能从文件系统中拜访零碎调用 代替办法实现一个设施节点,对此实现read和write,应用ioctl对特定的设置进行操作或者对特定的信息进行检索。像信号量这样的某些接口,能够用文件描述符来示意,因而也就能够依照上述办法对他进行操作把减少的信息作为一个文件放在sysfs的适合地位。

May 6, 2022 · 1 min · jiezi

关于linux:在虚拟机中运行-Linux-的十大优点

对于 Linux 而言,它在虚拟环境下的性能会优于其余操作系统。即使你可能会犹豫是否在物理机(裸金属)上装置 Linux 零碎,你依然能够在虚拟机中装置一个性能简直和物理机一样好的 Linux 零碎。 当然,这并不意味着宿主零碎为 Linux 时你就不能在虚拟机实例中装置 Linux 了。 更何况,你在虚拟环境下应用 Linux 零碎有许多益处。大抵如下。 在虚拟环境下运行 Linux 之前的注意事项在虚拟环境下运行 Linux 或者并不是艰巨的工作,但仍有以下几点你需谨记。 虚拟机的性能取决于宿主机的性能,如果你并没有足够的零碎资源分配给虚拟机,那么虚拟机的应用体验注定不会很好。某些个性仅在物理机(裸金属)上失效,包含硬件加速以及图形(显卡)驱动等。密集的磁盘 I/O 工作性能会非常受限,例如游戏测试场景。用户的 Linux 虚拟机实例体验会依据你所应用的虚拟化程序而发生变化,这些虚拟化程序包含 VMware、VirtualBox、GNOME Boxes 以及 Hyper-V 。此外,你该当列出你的需要,并依据这些需要选定适当的虚拟化程序来运行你的 Linux 实例。十条在虚构环境中运行 Linux 的长处只管运行虚拟化 Linux 实例极具吸引力,你依然该当首先思考以后应用的宿主零碎中已有的抉择。例如,如果你不须要图形化桌面,或者利用 Windows 操作系统中 的 WSL 装置 Linux 就 能够满足你的需要。 一旦你确定了应用虚拟机,那么这些长处将会如影随形: 1、部署简便部署简便 与在传统物理机(裸金属)上装置 Linux 相比,在虚拟机中部署个别会容易许多。 对于基于 Ubuntu 的发行版而言,像 VMware这样的虚拟化程序会提供一个 疾速装置 的选项,你仅需输出用户名和明码,其余过程将主动实现而无需其余操作。你无需手动设置分区、疏导程序以及更多高级设置。 某些状况下,一些发行版的开发者会同时提供针对特定虚拟机的预构建镜像,只需关上就可应用。这就如同一个便携式虚拟机镜像,随时能够开箱即用。 例如,在这里你将看到如何在虚拟机中装置 Arch Linux 发行版。 对于其余的发行版,你或者仍须要进行一些配置,但个别都会有疾速装置的选项令你能够轻松部署。 2、不会影响宿主机不会影响宿主机 对于虚拟机,你能够更为得心应手地应用,因为虚拟机零碎和宿主机零碎是隔离的。 很多时候,如果你并不相熟 Linux 零碎,你很可能会把配置弄得非常凌乱。 所以在虚拟机里,你能够随便尝试而无需放心是否会影响到宿主机零碎。换句话说,任何虚拟机的操作都不会影响到宿主机,因为它们是齐全隔离的。 故此,虚拟机是你最好的试验场,尤其是对于一些激进或具备破坏性的试验。 3、资源可高效共享资源可高效共享 如果你有非常富余的系统资源,你能够应用虚拟机运行其余工作,从而充分利用起来这部分闲置的系统资源。例如,如果你须要一个非常私密的浏览环境,虚拟机将为你阻挡所有针对宿主机的追踪器。 这可能略显牵强,但这仅仅是一个例子。基于这样的想法你将能够充分利用全副的系统资源。 ...

May 5, 2022 · 1 min · jiezi

关于linux:祝贺优麒麟开发负责人张超荣获2022全国五一劳动奖章

4月28日,中华全国总工会召开大会,表彰2022年全国五一劳动奖和全国工人先锋号获得者。在此次评比中,优麒麟开发负责人张超,荣获全国五一劳动奖章。据理解,全国五一劳动奖,是全国总工会为处分在社会主义各项建设事业中做出突出贡献的职工而颁发的荣誉奖章,是中国工人阶级最高奖项之一。 作为开源技术畛域的卓越贡献者,张超长期关注桌面和挪动Linux相干的各类开源新技术,从事于优麒麟、Ubuntu、Ubuntu touch和Android等各类Linux的版本研发和适配工作,率领团队攻坚克难,勇于探索技术创新。 张超在2012年被麒麟软件的国产操作系统研发和开源交融的理念深深吸引,抉择退出麒麟,成为优麒麟国内开源社区团队的初创成员,开始负责麒麟操作系统的研发工作。他参加设计的UKUI桌面环境是第一款由中国团队主导并进入Debian和Ubuntu两大国内支流社区的桌面环境。 2012至2022,通过近十年的坚守,他和共事一直学习国内开源社区的先进技术和理念,白天研发和解决国内用户的问题,早晨参加国内社区技术交换,致力构建更合乎国人应用习惯的操作系统。至今优麒麟国内开源操作系统国内下载量超过3800万次,被国内媒体屡次报道。同时为流传开源翻新的理念,在国内50多所高校累计举办了100多场操作系统开源技术分享流动。 将来,张超和麒麟团队将持续鼎力弘扬自主翻新精力和劳模精力,建立自主翻新的理念,继续摸索麒麟操作系统更宽泛的应用领域和成绩转化。 对于优麒麟 截至目前,优麒麟社区已累计发行 20 个版本,下载量超过 3800 万次,向开源社区奉献代码数百万行,被 Linux、Debian、Ubuntu、OpenStack、Ceph 等国内开源社区接管的 Patch 超过 7400 个,在寰球范畴内领有 数十万 沉闷用户。

May 5, 2022 · 1 min · jiezi

关于linux:读书笔记Linux内核设计与实现4

过程调度过程调度程序是从一组处于可运行状态的过程中,决定其中一个过程何时运行以及运行多长时间。 多任务多任务操作系统就是能同时并发地交互执行多个过程的操作系统;能使得多个过程处于阻塞或者睡眠状态直到特定工夫产生,进入可执行状态。分成抢占式preemptive multitasking和非抢占式cooperative multitasking(通过退让进行调度,悬挂的过程会让零碎解体等)。Linux是抢占式,即由调度程序决定什么时候挂起以后过程,让其余过程取得执行。工夫片是过程被抢占之前能够运行的工夫,他是被预设的。局部操作系统通过动静工夫片计算的形式,进行工夫片治理,以达到调度的目标。但Linux的偏心调度算法并没有采取工夫片来达到偏心调度。策略策略决定调度程序何时让过程运行。首先对过程分类:I/O消耗型和处理器消耗型。注:响应工夫是从用户角度思考。 I/O消耗型如交互式程序,常常处于可运行状态,但只运行很短时间,绝大部分工夫在期待I/O申请。但他有很高的交互需要,须要很短的响应工夫。处理器消耗性须要大量工夫解决计算。调度器应升高他们的应用频率,缩短其执行工夫。有局部程序两者特点都有,如X Windows服务。调度程序须要均衡响应工夫和最大零碎利用率。Linux对程序响应做了优化,同时兼顾了处理器消耗型的过程。过程优先级调度算法最简略的是基于优先级的调度。思维是优先级高的先运行,同级的轮转调度;某些零碎中优先级高的,工夫片也长;抉择工夫片未用完的,优先级高的先运行。Linux有两种优先级:nice和实时优先级。nice值越高,优先级越低(-20-19),获取的处理器工夫。nice是Unix零碎的标准化概念,但各个系统的实现定义不同。Linux中代表的是工夫片的比例(ps -el =>NI)。实时优先级能够配置(0-99),与优先级正相干,任何实时过程的优先级都高于一般过程,与nice优先级互不相交,ps -eo state, uid, pid, ppid, rtprio, time, comm其中rtprio指的就是实时优先级,-代表不是实时过程。 工夫片被抢占前能继续运行的工夫。如果默认的话会呈现很多问题:太长交互性差,无奈并发的感觉;太短增大过程切换的开销。Linux并没有间接调配工夫片到过程,他采取的是处理器应用比例,过程运行的工夫片与零碎负载无关,与nice无关。CFS齐全偏心调度算法的抢占机会取决于心的可执行程序耗费了多少处理器应用比,如果耗费的应用比比以后过程小,则新过程立即投入运行,抢占以后过程。 举例:一个文字编辑程序,重交互I/O消耗型(须要更多解决工夫但理论解决工夫少;须要被唤醒时抢占);一个视频处理程序,处理器消耗型。Linux各调配50%给两个程序,雷同nice值,文本编辑器更多工夫在期待客户输出,他不会用到处理器的50%;视频解码程序超过50%应用工夫;但CFS为了兑现让所有过程能偏心分享处理器的承诺,他会抢占视频解码程序。 Linux 调度算法调度器类Linux调度器是以模块形式提供,容许不同类型的过程能够有针对性地抉择调度算法,容许多种不同的可动静增加的调度算法并存,每个调度器都有一个优先级,根底的调度器代码定义在kernel/sched.c文件中,他会依照优先级程序遍历调度类,领有一个可执行过程的最高优先级的调用器类胜出,去抉择上面要执行的那一个程序。 CFS算法CFS是针对一般过程的调度算法,SCHED_NORMAL(POSIX中SCHED_OTHER),定义在kernel/sched_fair.c中。他的次要思维是过程调度的成果应该如同零碎具备一个现实中的完满的多任务处理器,在这个零碎中,每个过程都能取得1/n的处理器工夫,n为可运行的过程数量。为了兼顾过程切换的开销和缓存效率,CFS容许每个过程运行一段时间、循环轮转、抉择运行起码的过程作为下一个运行过程,而不再采纳调配给每个过程工夫片的做法了,CFS在所有可运行的过程的总数根底上计算一个过程应该运行多久。nice为权重,任何过程所获取的工夫是由他本人和其余所有可运行程序nice值的绝对差值决定的,而不是nice的绝对值比方权重0和5,取得15ms和5ms;权重15和20,同样取得15ms和5ms。在调度过程中,CFS设置了一个指标提早作为调度周期20ms,同时设置了1ms作为最小粒度(在无穷多过程的状况下,每个过程至多运行1ms)。 linux调度算法的实现kernel/sched/fair.c中,四个组成部分: 工夫记账过程抉择调度器入口睡眠和唤醒 工夫记账调度器实体构造 struct sched_entity { /* For load-balancing: */ struct load_weight load; struct rb_node run_node; struct list_head group_node; unsigned int on_rq; u64 exec_start; u64 sum_exec_runtime; u64 vruntime; u64 prev_sum_exec_runtime; u64 nr_migrations;#ifdef CONFIG_FAIR_GROUP_SCHED int depth; struct sched_entity *parent; /* rq on which this entity is (to be) queued: */ struct cfs_rq *cfs_rq; /* rq "owned" by this entity/group: */ struct cfs_rq *my_q; /* cached value of my_q->h_nr_running */ unsigned long runnable_weight;#endif#ifdef CONFIG_SMP /* * Per entity load average tracking. * * Put into separate cache line so it does not * collide with read-mostly values above. */ struct sched_avg avg;#endif};作为se成员变量放在struct task_struct中,他保护每一个过程运行的工夫记账,保障每个过程只有在偏心调配给他的处理器工夫内运行。 ...

May 5, 2022 · 3 min · jiezi

关于linux:Linux是怎么样工作的读书笔记

《Linux是怎么样工作的》读书笔记引言这本书是集体看过的讲操作系统底层外面讲的最通俗易懂的了,然而200多页的内容的确讲不了多深的内容,所以不要对这本书抱有过高期待,当一个入门书理解即可。 书籍介绍原富士通一线Linux内核开发工程师基于十余年教训执笔,业余实用聚焦Linux外围性能,扼要易懂地解说操作系统是怎么工作的198张示意图帮忙了解,详略切当,为读懂大部头开路联合大量试验程序,边入手操作边学习,实在体验零碎运行过程集体评估内容比拟根底,然而无关Linux的内容都有波及,另外作者用C语言程序对于操作系统的缓存,替换内存,CPU过程管理器,固体硬盘和机械硬盘随机读写和程序读写做验证和测试的程序比拟有意思。 然而不得不说能把操作系统这种形象的货色讲的活泼形象实属不易,作者在日本一线大厂(能够翻翻富士通相干材料)搞Linux内核开发业余水平也毋庸置疑,另外这本书的编排是由浅入深的挺不错。 总结:十分难以定位的一本书,倡议能够参考外面的常识,依据相干内容深刻即可。 资源2022年3月出版的一本书所以没有找到相干资源。 上面内容为随书一些C语言模仿操作系统底层工作的一些程序,感兴趣能够下载来看一下。 链接: https://pan.baidu.com/s/1eU65... 提取码: pghr笔记索引留神笔记的索引并不是依照原书的构造组织,因为集体浏览这本书是“倒着”读的,联合目录发现从后往前读比拟合乎集体的了解习惯,也就是从内部存储器到外部的工作机制比拟合乎集体的思考。 能够点击副标题跳转到相干的节点。 惯例的意识是常识由浅入深,其实有时候用难易穿插学习的形式可能更加合乎人的学习习惯第一局部:Linux与内部构造介绍 次要介绍了机械磁盘和SSD硬盘的工作机制比照,程序读写和随机读写之间的差异,这部分应用C语言模仿磁盘的读写性能比拟有意思。 介绍了Linux和设施交互的文件系统设计,一共分为7层,当然书中只是简略演绎,如果要深刻须要浏览更多材料。 讲述了IO调度器和预读机制的相干内容。 第二局部:Linux文件系统设计 这一节讲述如何疾速的理解一个Linux文件系统的设计形式,文件系统的设计当然没有不是几页纸就能讲清楚的,然而对于咱们大抵理解Linux整体的设计思路入门还是不错的。 第三局部:计算机存储档次简析 如果你对笔记电脑或者台式机主板等等根本配置理解,或者对整个操作系统的工作过程有一个大抵的理解,这一节的内容齐全能够跳过。 计算机的存储器层级构造是越凑近CPU和CPU关系越亲密价格越高容量越小,咱们常见的存储器,速度从快到慢的排序是:寄存器 -> 高速缓存 -> 内存 -> 内部存储器,这一节则针对这几个存储层级进行介绍。 之后会介绍对于转译后备缓冲区,页面缓存,缓冲区缓存和Linux不常见也简直不应用的缓存调优参数。 第四局部:Linux内存治理和优化 针对内存的治理是操作系统过程治理外围和关键所在,此局部介绍了对于内存治理的内容,内存治理是整本书介绍最为具体的局部,集体认为外围是把握 请求分页和 写时复制,这两个个性被大量应用,除此之外了解内存的调配形式和调配的细节过程也是必要的。 另外这部分集体笔记在补充的同时也将内容拆分为高低局部: Linux内存治理Linux内存治理优化第五局部:过程调度器CPU过程调度目前支流的形式是两种,第一种是像window那样抢占式调度,每一个CPU可能会呈现调度工夫调配不等的状况,而另一种是工夫分片的形式,工夫分片是Linux 常见的过程调度器,特点是每一个过程有近似相等的CPU使用权,在应用实现之后立马交给下一个过程实现工作,应用分片的形式尽管可能导致一些重要工作提早,但这样的解决和调度形式使得零碎最为稳固。 过程调度器自身很简单,为了缩小复杂性作者没有做过多介绍,所以集体笔记内容也绝对较少。 第零局部:计算机程序概览了解操作系统运行咱们须要理解无关计算机信息的根底概念,我想如果有想法去钻研操作系统底层多少对于计算机的根底理念不会生疏,所以这一部分集体当作总结。 附录此局部是对于第一个局部物理磁盘的调配形式材料扩大,感兴趣能够浏览。 留神⚠:最初集体的笔记组织模式将会是难-易-难混淆的组织形式。Linux与内部构造介绍HDD磁盘介绍机械磁盘从鸟瞰的逻辑构造了解为相似一个同心圆的多个圈,从外层到内层进行编号,磁盘通过顺时针程序编号,逆时针转动磁盘,这样解决是思考查找磁盘的时候能够间接依照程序扫描过来,磁头前进方向就是编号递增方向。 在上面的结构图中,磁道是每一个同心圆,而扇区指的是切割磁道所造成的“扇面”,因为切割之后的样子很像扇子的样子所以被称为扇区,扫描数据须要磁头在磁道上滑动,同时扇区会从0开始编号,一个编号对应一个扇区。 留神这是磁盘的俯视图,也就是说线的局部是物理磁盘上的“沟壑”,而扇区就是编号内的块。 上面是磁盘的侧面切面图,垂直叠加的盘通过一个磁盘一个磁头的组合,通过多磁头放慢数据的处理速度。 留神在HDD磁盘中一个扇区读写最小单位为512字节,而且每一个扇区都是512字节,不论扇区是在外层还是内层。 ⚠️留神:很多框架或者数据库会把一次读写的大小设置为512字节,因为512是最小读写单位所以能够不须要额定的保护能够保障读写的原子性。磁盘大小计算 最晚期磁盘能够通过上面的公式计算出整个磁盘的大小,因为磁道和扇区的数量是一一对应的: 存储容量=磁头数磁道(柱面)数每道扇区数*每扇区字节数 这样的设计有一个不言而喻的问题那就是无论扇区面积大还是小都是固定大小,很显然外层的扇区数据被白白浪费了。 针对这样的问题后续的机械磁盘呈现了改良,这项技术叫做ZBR(Zoned Bit Recording,区位记录)技术,这项技术依据每一圈的扇区来划分大小,同一个磁道圈内的扇区散布和大小雷同。 这意味着越是外层的扇区数量越多,而内圈则较少,在划分之后密度均匀分布。 因为磁盘扇区存储模式的改良,寻址模式天然也要跟着提高,现在的硬盘大多应用 、LBA(Logical Block Addressing)逻辑块寻址模式,理解这个寻址模式能力理解磁盘的大小的计算形式。 然而当初HDD的磁盘读写受限在随机读写速度上,过来HDD磁盘比拟风行的转速为7200转和5400转等等,区别的话是跑的快和跑的慢一点的蚂蚁。 尽管有SAS硬盘能冲破15000转,并且当初还有钻研团队钻研寻找不同资料或者其余形式冲破磁盘物理转速的限度(比方双磁盘转动的形式放慢旋转),然而始终无奈冲破机械磁盘的设计的物理限度。 市面上为什么支流贩卖7200转的磁盘和5400的转速的磁盘而不是别的磁盘? 一方面是7200的随机读写性能通过测试是最佳的,同时探讨一块磁盘的性能不能看程序读写的速度而是要看随机读写的速度。 针对机械磁盘存在一些物理壁垒,自东芝公司在1984年钻研出闪存之后,闪存技术不断进步,又通过了5年之后的1989年,SSD磁盘逐步走进历史舞台。 ⚠️留神:为什么是7200转和5400转等等奇怪数字? 这两个数字都要从3600说起,计算机的前十年简直所有的硬盘都是3600转的,这个3600又是从哪里来的呢?因为美国的交流电是60Hz的!于是就有了上面的公式: 60Hz × 1转/Hz ×60秒/分钟 = 3600转/分钟5400 RPM = 3600 RPM × 1.57200 RPM = 3600 RPM × 2另外还有一个起因是专利抢夺,你会发现转速有15000却没有10000,9000,8000这种数字,其实都是因为整数和500的倍数转速都被专利注册了,然而专利注册者预计没想到转速能破万吧。SSD磁盘介绍SSD 的硬盘分为两种,一种是基于闪存颗粒的闪存固态硬盘,另一种是DRAM 硬盘。 ...

May 2, 2022 · 9 min · jiezi

关于linux:linux-shell-命令调整系统音量

linux shell 命令调整零碎音量 第一 查看声卡信息,失去声卡号cat /proc/asound/cards第二 应用pactl 设置相对音量,0%-100%, 1 示意声卡号 pactl set-sink-volume 1 90%设置绝对音量,增大10% pactl set-sink-volume 1 +10%设置绝对音量,减小10% pactl set-sink-volume 1 -10%也能够用 pavucontrol 关上 pulseaudio 的音量控制图形面板

May 1, 2022 · 1 min · jiezi

关于linux:读书笔记linux内核设计与实现-1

写在后面的话以前读书都只局限于看过,没有输入的过程,忘得很快,当初想试试这样整顿之后输入,会不会好点。 始终以来对Linux的内核都是蜻蜓点水式学习,毫无深刻,但当前可能要频繁用到,得构建一下本人的常识体系,心愿能多多记录吧。 内核定义内核是操作系统的外围,由负责响应中断的中断服务程序,调度程序(治理多个过程共享处理器工夫),过程地址空间的内存管理程序,以及网络、过程间通信等零碎服务程序独特组成。处于零碎态,领有受爱护的内存空间和拜访硬件设施的所有权限。即内核空间。 用户空间只能以过程为视角,只能看到他被容许调用的局部系统资源,和本人的内存空间。Linux内核简介Linux继承于Unix,如广泛的API接口(Posix),但并没有齐全基于某个特定Unix。其差别在于: Linux充沛排汇了微内核的概念(服务模块化治理,抢占式内核,反对内核线程,以及动静加载内核模块的能力)。inmod,rmmod, 微内核的定义,其实在学校里的时候老师强调过,真正的微内核指的的是内核只保留无奈从内核中去掉的必要服务,如调度服务和中断服务等。其余服务包含fs,driver模块都能从内核中去掉。微内核设计的重要目标之一是平安。因为咱们很容易就能够晓得许多bug和受攻击面都是来自于内核所搭载的模块服务,进而导致整个零碎的平安透露和解体。但微内核的弊病也很显著。因为各个服务模块化加载之后运行在不同的地址空间,无奈进行间接的函数调用,而采纳了IPC(inter-process communication),须要进行上下文的切换导致不必要的开销。所以Linux仍旧是单内核,所有服务模块运行在一个地址空间,能够间接调用函数。实用至上。Linux反对对称多处理机制SMP。抢占式preemptive内核。容许在内核运行的工作优先执行的能力。其余大部分Unix不反对抢占。Linux内核并不辨别线程和个别过程: 所有过程都一样,只是其中一些共享资源。Linux提供具备设施类的面向对象的设施模型、热插拔事件,以及用户空间的设施文件系统sysfs疏忽Unix过期规范和不必要个性。处理器任何工夫点上的流动能够被划分成:运行于用户空间,执行用户过程运行于内核空间,处于过程上下文,代表某一次零碎调用。运行于内核空间,处于中断上下文,与任何过程无关,处于某个特定中断。陷入内核态零碎调用通过调用库,让内核实现不同工作,但通常内核调用只是库调用的一个步骤。printf(), 提供数据缓存和格式化操作,调用write()零碎调用只是他的一个动作。 但open()等是一一对应。 strcpy()不必零碎调用。通过零碎调用进入内核态,咱们称为内核代其执行,内核运行于过程的上下文中。 中断服务中断的典型代表是来自硬件设施的中断。内核通过中断号查找中断服务程序,调用服务程序解决中断,在中断上下文中运行。保障中断服务可能第一工夫解决和退出。

April 30, 2022 · 1 min · jiezi

关于linux:配置VMware中联网的两种方式Net模式桥接模式

前言实际环境:VMware12Pro、CentOS7Net模式和桥接模式联网的区别:桥接模式:抉择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连贯在同一交换机上。NAT模式:NAT模式就是虚拟机要联网得先通过宿主机能力和里面进行通信。 1、应用Net模式联网1) 关机后,将网路适配器改成Net模式 2) DHCP设置 3) NET设置 4) 开机后,执行:vim /etc/sysconfig/network-scripts/ifcfg-ens33 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static" #要改DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens33"UUID="d96a746e-a5ec-41e1-a8da-bb7ed9f74ac1"DEVICE="ens33"#增加以下几行配置ONBOOT="yes"IPADDR=192.168.128.166 #依据以上DHCP中配置的范畴中抉择一个没有被占用的IPNETMASK=255.255.255.0 #配置子网掩码GATEWAY=192.168.128.2 #网关要和NET设置中配置的统一DNS1=114.114.114.114 #不配这个也没事,前面还有配置的中央改完后保留退出,并重启网卡服务 service network restart 5)将本人的宿主机子改成主动获取DNS地址 6)批改服务器上的网络配置文件:vim /etc/sysconfig/network [root@localhost ~]# vim /etc/sysconfig/network# Created by anaconda# 开启或敞开网络NETWORKING=yes#自定义主机名HOSTNAME=whg7)配置DNS服务器的IP 配置文件:vim /etc/resolv.conf [root@localhost ~]# vim /etc/resolv.conf# Generated by NetworkManagernameserver 114.114.114.114并重启网卡服务 service network restart 8)ping baidu.com 进行测试 2、桥接模式1)首先查看本人本机电脑的IP地址,win+r输出cmd 输出命令行 ipconfig 查看本人的本机的ip地址 我这里的IP地址是192.168.0.104 ,宿主机IP地址要与虚拟机IP地址在同一网段 接下来配置虚拟机IP地。 2)批改服务器上的网络配置文件:vim /etc/sysconfig/network [root@localhost ~]# vim /etc/sysconfig/network# Created by anaconda# 开启或敞开网络NETWORKING=yes#自定义主机名HOSTNAME=whg3)执行:vim /etc/sysconfig/network-scripts/ifcfg-ens33 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static" #要改DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens33"UUID="d96a746e-a5ec-41e1-a8da-bb7ed9f74ac1"DEVICE="ens33"#增加以下几行配置ONBOOT="yes"IPADDR=192.168.0.188 #抉择一个没有被占用的IP,要与宿主机不同NETMASK=255.255.255.0 #配置子网掩码GATEWAY=192.168.0.1 #网关要和宿主机配置的统一DNS1=114.114.114.114 #不配这个也没事,前面还有配置的中央改完后保留退出,并重启网卡服务 service network restart ...

April 29, 2022 · 1 min · jiezi

关于linux:如何在优麒麟上进行超大型文件的远程传输这个命令帮你快速搞定

关注优麒麟,更多干货等着你! 在日常应用中,咱们经常须要将大型文件下载到本地或传输到其余电脑上。然而在 Linux 操作系统中,可能实现疾速便捷传输超大型文件的工具却不多。明天就给大家介绍一下,如何通过一个简略的 scp 命令来疾速实现大型文件近程传输。如果你也有这方面的困惑,那么连忙跟着我一起往下看吧! 1、什么是 scpscp 是 secure copy 的缩写,是 Linux 零碎下基于 ssh 登陆进行平安的近程文件拷贝命令,可用于同一局域网中两台 Linux 主机之间进行近程拷贝文件。与其余工具和命令相比,scp 命令具备以下特点: scp 命令可能进行加密传输,局部重要的文件通过 scp 命令传输可能爱护文件的内容,防止被其余操作拦挡或者拷贝。scp 命令可能跨服务器进行文件的传输,在应用的过程之中会更加不便,不便进行相应工作的发展,而不须要关上多方软件。scp 命令对系统的后盾负荷比拟小,不会给零碎带来累赘,能够同时进行其余工作工作。接下来,咱们来说说如何在优麒麟零碎上应用此命令进行文件拷贝工作,包含如何间接上传文件到近程主机或将近程主机上的货色拷贝下来。 2、scp 的罕用选项在理论环境中,咱们个别应用以下命令格局,来实现对文本内容的操作。           本地文件上传:scp 本地文件 指标用户名@指标IP:端口 指标文件拷贝门路拷贝指标文件:scp 指标用户名@指标IP:端口 指标文件 本地文件门路scp命令有很多能够应用的参数,上面咱们列几个常见的参数: 3、scp 的罕用场景(留神:以下代码示例中的 ip 和 username 别离为近程主机 ip 地址和用户名) (1)从本地复制到近程 指定近程文件夹scp localFile username@ip:近程文件夹复制到近程后重新命名文件scp localFile username@ip:新文件名(2)复制目录命令格局 scp -r 本地目录 username@ip:近程目录或scp -r 本地目录 ip:近程目录(3)从近程复制到本地 从近程复制到本地,只有将从本地复制到近程的命令的后 2 个参数调换程序即可。 指定近程文件夹scp -r username@ip:近程文件夹 本地文件夹复制到近程后重新命名文件scp username@ip:近程文件 本地新文件名4、注意事项如果近程服务器防火墙有为 scp 命令设置了指定的端口,咱们须要应用 -P 参数来设置命令的端口号,命令格局如下: ...

April 29, 2022 · 1 min · jiezi

关于linux:Linux-Load-Average-Solving-the-Mystery

本篇博客翻译自Brendan Gregg的技术考古文章:Linux Load Average: Solving the Mystery。翻阅这篇文章的起因是我在应用Prometheus做零碎CPU使用量告警时,一个system_load的指标和本人预期的不太相符:总是在CPU余量还很大的状况下达到告警线。为此钻研了一下Linux的Load Average指标。 以下为原文翻译: Load Average(以下译为均匀负载)是工程中一个很重要的指标,我的公司应用该指标以及一些其它指标维持着数以百万计的云端实例进行主动扩容。但围绕着这个Linux指标始终以来都有一些谜团,比方这个指标不仅追踪正在运行的工作,也追踪处于uninterruptible sleep状态(通常是在期待IO)的工作。这到底是为什么呢?我之前素来没有找到过任何解释。因而这篇文章我将解决这个谜题,对均匀负载指标做一些总结,供所有尝试了解这一指标的人作为参考。 Linux的均匀负载指标,也即“system load average”,指的是零碎一段时间内须要执行的线程(工作),也即正在运行加正在期待的线程数的平均数。这个指标度量的是零碎须要解决的任务量,能够大于零碎理论正在解决的线程数。大部分工具会展现1分钟,5分钟和15分钟的平均值。 $ uptime 16:48:24 up 4:11, 1 user, load average: 25.25, 23.40, 23.46top - 16:48:42 up 4:12, 1 user, load average: 25.25, 23.14, 23.37$ cat /proc/loadavg 25.72 23.19 23.35 42/3411 43603简略做一些解释: 如果averages是0,示意你的零碎处于闲暇状态。如果1分钟的数值高于5分钟或15分钟的数值,示意零碎负载正在回升。如果1分钟的数值低于5分钟或15分钟的数值,示意零碎负载正在降落。如果这些数值高于CPU数量,那么你可能面临着一个性能问题。(当然也要看具体情况)通过一组三个数值,你能够看出零碎负载是在回升还是降落,这对于你监测零碎情况十分有用。而作为独立数值,这项指标也能够用作制订云端服务主动扩容的规定。但如果想要更粗疏地了解这些数值的含意,你还须要一些其它指标的帮忙。一个独自的值,比方23-25,自身是没有任何意义的。但如果晓得CPU的数量,这个值就能代表一个CPU-bound工作负载。 与其尝试对均匀负载进行排错,我更习惯于察看其它几个指标。这些指标将在前面的“更好的指标(Better Metrics)”一章介绍。 历史最后的均匀负载指标只显示对CPU的需要:也即正在运行的程序数量加期待运行的程序数量。在1973年8月发表的名为“TENEX Load Average”RFC546文档中有很好的形容: [1] The TENEX load average is a measure of CPU demand. The load average is an average of the number of runnable processes over a given time period. For example, an hourly load average of 10 would mean that (for a single CPU system) at any time during that hour one could expect to see 1 process running and 9 others ready to run (i.e., not blocked for I/O) waiting for the CPU.这篇文章还链向了一篇PDF文档,展现了一幅1973年7月手绘的均匀负载图(如下所示),表明这个指标曾经被应用了几十年。 ...

April 29, 2022 · 7 min · jiezi

关于linux:linux

计算机组成中的cpu、总线、内存的频率是指什么意思 cpu、总线、内存都各自有频率 cpu频率是指cpu每秒能进行多少次的工作,比方3GHz示意每秒能够进行3*10的9次方 次工作,cpu频率细分为外频和倍频,外频示意c pu和其余组件进行数据传输的速度,倍频是cpu外部用来减速的一个倍数。c pu每次能解决的数据量称为字长,有32位和64位 cpu每次工作传输的数据量有多大呢,和总线无关,也就是南北桥,北桥次要连贯内存,南桥次要连贯io设施。退出系统总线宽度64,总线频率1600MHz,那么传输速度为1600MHz64bits = 1600MHz8Bytes = 12800MByes/s = 12.8GBytes/s 内存也一样有频率和字长,能够算出每秒的传输数据量。 kmgtp磁盘的构造 多个盘片 扇区512kb 柱面 分区按柱面来划分操作系统是如何启动的 在计算机概论外面咱们有谈到那个可恶的BIOS与CMOS两个货色, CMOS是记录各项硬件参数且嵌入在主板下面的储存器,BIOS则是一个写入到主板上的一个韧体(再次阐明, 韧体就是写入到硬件上的一个软件程序)。这个BIOS就是在启动的时候,计算机系统会被动运行的第一个程序了!接下来BIOS会去剖析计算机外面有哪些贮存设施,咱们以硬盘为例,BIOS会根据使用者的配置去获得可能启动的硬盘, 并且到该硬盘外面去读取第一个磁区的MBR地位。 MBR这个仅有446 bytes的硬盘容量外面会搁置最根本的启动管理程序, 此时BIOS就功成圆满,而接下来就是MBR内的启动管理程序的工作了。 这个启动管理程序的目标是在加载(load)外围文件, 由於启动管理程序是操作系统在装置的时候所提供的,所以他会意识硬盘内的文件系统格局,因而就可能读取外围文件, 而后接下来就是外围文件的工作,启动管理程序也功成圆满,之后就是大家所晓得的操作系统的工作啦! 简略的说,整个启动流程到操作系统之前的动作应该是这样的: BIOS:启动被动运行的韧体,会意识第一个可启动的安装;MBR:第一个可启动装置的第一个磁区内的次要启动记录区块,内含启动管理程序;启动管理程序(boot loader):一支可读取外围文件来运行的软件;外围文件:开始操作系统的性能...摘自http://cn.linux.vbird.org/lin... linux磁盘如何分区的 第一个扇区中有个分区记录表记录分区状况,可记录四组数据,个别分为三个主分区,一个扩大分区。扩大分区不可被格式化,只有在扩大分区中制订逻辑分区表后,对扩大分区进行逻辑分区后进行格式化。所以能够利用扩大分区中的逻辑分区表将一块磁盘分成不止四个区。 挂载:让目录和分区关联上,在这个目录下的数据都寄存在关联的分区上linux的文件和目录权限文件和目录都有wrx权限。不过两者各自的wrx的作用却并不相同。对于文件wrx示意的是对文件内容的权限。w:能够写的权限r:能够读的权限x:能够执行的权限对于目录wrx示意的是对目录下文件的权限w:是否能够新建和删除文件的权限r:是否能够读到目录下文件名的权限x:是否能够进入到目录内权限

April 29, 2022 · 1 min · jiezi

关于linux:腾讯2021年第六届共-见运维技术沙龙

10月24日,由腾讯蓝鲸智云主办的共见2021-暨第六届运维技术沙龙流动在深圳腾讯滨海大厦圆满举办;来自不同行业的运维同仁,共襄盛举。 现场快剪https://live.csdn.net/v/embed... 本届的主题为【共见——2021暨第六届运维技术沙龙】 「共」同成长 「见」证将来 相聚一起共享实践经验,为运维行业建设倒退添砖加瓦 技术纵深赋能,与一直倒退的社会共生共荣,洞见精彩将来 签到现场 现场合影会场外,主办方安排了精美的3D留影区,让前来参会的小伙伴能够留下本人的签名印记,还能够和丑陋的"运维激励师"小姐姐同框,福利满满~ 小红花义卖本次沙龙也是踊跃践行社会责任,联结腾讯公益首次设立公益义卖角,大量精美的周边进行义卖,小伙伴们都满载而归,同时所有义卖所得全数捐给了腾讯公益我的项目。 运维人的故事大会正式开始前,现场一起回顾了历届沙龙的精彩霎时和运维人本人的感悟和故事,一张张相熟的脸孔,一幕幕和煦的场景,不少间断几届都参加的小伙伴感触良多;好像一年一次的技术沙龙成了大家相互期盼的日子。 https://live.csdn.net/v/embed... 赵班长分享大会第一个分享嘉宾是来自运维界的资深老兵赵班长带来的《运维开发必备的产品思维》;这里也呈现了一点小插曲,本来赵班长要来现场跟大家一起面对面交换,因为行程码带星被告诉不能进入会场,所以长期在隔壁楼的酒店里以腾讯会议的特地形式给大家带来了精彩的分享。 赵班长从“做的是工具?”还是“做的是产品?”引出大家对运维开发的思考,从“工程师思维“和"产品思维"的不同维度比照来分享了扭转运维开发的思维模式,随后用多个理论案例进行了开展分享; 后半段也着重跟大家分享了几点前瞻性的瞻望: 1)向智能化和精细化运维倒退 2)向GitOps方向的倒退 3)向事件驱动和数据驱动倒退 班长最初的彩蛋堪称是眼前一亮,看似跟主题没任何相干,实则从《周易》的思维敲打事实的本我,真堪称返璞归真,未尝不是处世的高境界! 沈少伟分享第二个分享的嘉宾是来自从事证券行业多年的资深运维沈少伟,带来了《精益运维的破冰与摸索》的主题分享。沈少伟从精益思维的深刻解读来开篇,指出精益思维的外围就是打消节约。 接着从传统企业运维的痛点和面临的挑战剖析入题,开展分享了如何解决企业IT信息孤岛、减速运维转型、疾速构建一体化运维反对体系及研发效力晋升摸索和基于蓝鲸的实际案例。 场外互动沙龙议程过半,也迎来了期待已久的茶歇时刻,会场外精美的茶歇以及流动兑奖、义卖角,都光顾了许多略显困乏的小伙伴们,补充能量的同时还播种满满的精美礼品。 张建下半程的分享从蓝鲸监控产品负责人张建的《可观测性监控零碎的全景图》收场。张建从跟现场小伙伴进行的互动:"有没有听过可观测性"入题,简略分享了"可观测性"的衰亡原因,次要是跟一个云原生的可察看性框架 Open Telemetry我的项目无关,并进行了开展分享。 接着从 1)横向-Metric-Trace-Log 2)横向-数据管理联动 3)纵向-场景观测 4)工夫-生命周期闭环 几个维度及案例全面分析了蓝鲸监控的可观测性全景图。 最初也从整体和产品分层设计的视角分享了监控日志套餐各产品的关系,并最初出现了蓝鲸监控的全景图。 SaaS开发挑战赛张建分享结束,迎来了本届沙龙一年一度的SaaS开发挑战赛环节,各路英雄相聚一堂,相互角逐,赢万元大奖! 本届共有近30个SaaS作品投稿,通过层层筛选,10个优秀作品入围,其中8个作品博得了下台角逐大奖的机会。8位选手各显神通之后,由现场投票,最终,来自浦发银行的参赛选手聂辉携参赛作品《运维服务化建设》怀才不遇,斩获一等奖! 一等奖: 浦发银行 聂辉 参赛作品:【运维服务化建设】 二等奖: 太平金融科技服务(上海)有限公司 田广明 参赛作品:【掌上运维】 时代中国 樊升亮 参赛作品:【VDI云桌面运维治理门户】 广东电信团队 参赛作品:【广东电信天翼云自主运维SaaS】 三等奖: 华夏银行 王朋 参赛作品:【云监控】 富邦华一 杜宁聪/李沿沿 参赛作品:【智能数据库治理】 赣州银行 郭琛 参赛作品:【集中事件平台】 国网河北电力团队 参赛作品:【业务平安保障自动化工具】 优胜奖 赣州银行 邓辛能 参赛作品:【对立治理平台】 创梦天地 孙亮 参赛作品:【短信平台】 ...

April 28, 2022 · 1 min · jiezi

关于linux:Windows-下的免费-SSH-客户端工具

如果你的操作系统是 Windows,而你想要连贯Linux 服务器互相传送文件,那么你须要一个简称 SSH 的 Secure Shell 软件。实际上,SSH 是一个网络协议,它容许你通过网络连接到 Linux 和 Unix 服务器。SSH 应用公钥加密来认证近程的计算机。你能够有多种路径应用 SSH,无论是主动连贯,还是应用明码认证登录。 本篇文章介绍了几种能够连贯 Linux 服务器 SSH 客户端。 让咱们开始吧。 PuttyPutty 是最有名的SSH 和 telnet 客户端,最后由 Simon Tatham 为 Windows 平台开发。Putty 是一款开源软件,有可用的源代码,和一群志愿者的开发和反对。 Putty 十分易于装置和应用,通常大部分的配置选项你都不须要批改。你只须要输出大量根本的参数,就能够开始很简略地建设连贯会话。点此下载 Putty。 Bitvise SSH ClientBitvise SSH 是一款反对 SSH 和 SFTP 的 Windows 客户端。由 Bitvise 开发和提供业余反对。这款 SSH 客户端性能强悍,易于装置、便于应用。Bitvise SSH 客户端领有功能丰富的图形界面,通过一个有主动重连性能的内置代理进行动静端口转发。 Bitvise SSH 客户端对个人用户应用是收费的,同时对于在组织外部的集体商业应用也一样。你能够在这里下载 Bitvise SSH 客户端。 MobaXtermMobaXterm 是你的近程计算的终极工具箱。在一个 Windows 利用里,它为程序员、网管、IT 管理员及其它用户提供了精心裁剪的一揽子性能,让他们的近程操作变得简洁时尚。 MobaXterm 提供了所有重要的近程网络工具 (如SSH、 X11、 RDP、 VNC、 FTP、 MOSH 等等),以及 Windows 桌面上的 Unix 命令(bash、 ls、 cat、sed、 grep、 awk、 rsync等等),而这些都是由一个开箱即用的繁多的便携程序所提供。MobaXterm 对集体应用收费,你能够在这里下载 MobaXterm。 ...

April 28, 2022 · 1 min · jiezi

关于linux:故障分析-是谁偷走了我的-IO

作者:孙桥 爱可生DBA团队成员,次要负责MySQL和DMP平台日常的维持工作,对数据库自动化运维存有浓厚兴趣。 本文起源:原创投稿 *爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。 前言对于刚接触 MySQL 数据库不久的小伙伴来说,或多或少会遇到一些辣手的小问题;比方在数据库磁盘无损坏的状况下,咱们常常会遇到数据库服务器的磁盘IO压力很大,但因为服务器上只有 MySQL 程序,咱们第一想法必定是某个连贯用户在连到数据库后,背着咱们在瞎搞着什么;然而间接通过 show processlist 命令,看到的后果不肯定精确。上面模仿一个简略场景,让咱们确切地定位问题所在。 场景模仿,制作 IO 压力## 生成一张大表,用于测试[root@tidb-master ~]# /usr/share/sysbench/oltp_write_only.lua --mysql-host=10.186.61.36 --mysql-user=sun --mysql-password='xx' --mysql-port=3306 --mysql-db=testdb --tables=1 --table_size=15000000 --auto_inc=off --report-interval=2 --db-ps-mode=disable --time=100000 --threads=1 preparesysbench 1.0.17 (using system LuaJIT 2.0.4)Creating table 'sbtest1'...Inserting 15000000 records into 'sbtest1'Creating a secondary index on 'sbtest1'...## 对生成的表进行写操作[root@tidb-master ~]# /usr/share/sysbench/oltp_write_only.lua --mysql-host=10.186.61.36 --mysql-user=sun --mysql-password='xx' --mysql-port=3306 --mysql-db=testdb --tables=1 --table_size=15000000 --auto_inc=off --report-interval=2 --db-ps-mode=disable --time=100000 --threads=1 runsysbench 1.0.17 (using system LuaJIT 2.0.4)Running the test with following options:Number of threads: 1Report intermediate results every 2 second(s)Initializing random number generator from current timeInitializing worker threads...Threads started![ 2s ] thds: 1 tps: 24.47 qps: 148.33 (r/w/o: 0.00/98.89/49.44) lat (ms,95%): 86.00 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 1 tps: 53.02 qps: 318.62 (r/w/o: 0.00/212.58/106.04) lat (ms,95%): 48.34 err/s: 0.00 reconn/s: 0.00[ 6s ] thds: 1 tps: 60.50 qps: 363.50 (r/w/o: 0.00/242.50/121.00) lat (ms,95%): 43.39 err/s: 0.00 reconn/s: 0.00[ 8s ] thds: 1 tps: 65.50 qps: 391.02 (r/w/o: 0.00/260.01/131.01) lat (ms,95%): 39.65 err/s: 0.00 reconn/s: 0.00[ 10s ] thds: 1 tps: 55.50 qps: 334.51 (r/w/o: 0.00/223.51/111.00) lat (ms,95%): 44.98 err/s: 0.00 reconn/s: 0.00[ 12s ] thds: 1 tps: 57.00 qps: 340.99 (r/w/o: 0.00/227.00/114.00) lat (ms,95%): 38.25 err/s: 0.00 reconn/s: 0.00问题剖析1、通过top命令发现io wait比拟高,咦,What is going on?(伪装不晓得我在压测(●'◡'●)) ...

April 27, 2022 · 8 min · jiezi

关于linux:KMRE-再升级你们想要的功能它来了

间隔上一次 KMRE 版本更新曾经有一段时间了,大家的应用体验如何呢?在上期 KMRE 更新新闻的结尾,咱们发动了一轮投票,让大家选出各自最期待的 KMRE 新增性能。从统计数据能够看到,反对横竖屏切换性能是呼声最高的,其次是适配游戏手柄性能,而后就是适配 Andriod Studio 性能和反对预设手机型号性能。 秉承所有以用户为主的理念,本次 KMRE 版本更新,除了新增以上四大性能 ,还减少了虚构定位、鼠标灵敏度设置等其余性能,并对已有性能也进行了优化降级。让咱们一起来看看吧~ 1、新增横竖屏切换性能 投票排名 NO.1,当然得给大家安顿上! 在 KMRE 最新版本中,大家在应用安卓利用时,能够点击右上角“横竖屏切换”。这时,一些反对切换的利用就能够自若地进行横竖屏切换啦,如 WPS 、印象笔记等。 2、反对游戏手柄 有很多小伙伴十分期待 KMRE 反对应用游戏手柄。所以,在此次更新版本中,大家连贯手柄即可进行单击、连击、左右摇杆等设置,可畅玩你青睐的那些热门手游啦,快来试试吧! 3、可开启开发者模式,反对与 Android Studio 联调模式 在“菜单-设置-通用设置”中,屡次点击“以后版本”后,会在设置页面左侧显示“开发者模式”,点击进入即可勾选开启开发者模式。大家在操作过程中如果有不太明确的中央,那就依据提醒关上帮忙文档看看吧~ 4、反对预设手机型号 关上 KMRE 属性设置,大家能够在这里预设手机型号,也能够自定义设置本人喜爱的手机品牌和型号~ 5、反对鼠标灵敏度设置 在安卓利用内应用鼠标滚轮进行滑动时,大家是否会感觉滑动速度与本人的应用习惯不符?为优化应用体验,KMRE 减少了鼠标滚轮灵敏度设置,可依据各自的应用习惯设置滑动速度。须要留神的是,以后设置仅对以后利用失效,所以大家在应用不同的安卓利用时也能够体验不同的滚动速度~ 6、反对虚构定位 关上虚构定位,既可定位到以后地位,也可定位到搜寻出的地位,快来试试吧! 7、平行界面适配优化 开启平行界面后,在微信通讯录页面点击联系人,右侧会并排显示与该联系人的对话界面哦! 8、摄像头显示优化 大家在应用腾讯会议时是否有应用过摄像头呢?新版本对腾讯会议横屏时显示的画幅进行了增宽优化,并优化解决了头条系利用录像时的绿屏景象和原生相机应用中的花屏景象,让大家视频时不再懊恼~ 除了以上更新降级,新版本还适配了 Intel 11代CPU核显,电脑比拟新的小伙伴也快来装置体验吧! 更 新 方 法1、20.04 版本 (1)终端降级 关上终端输出以下命令降级: sudo apt updatesudo apt install --only-upgrade kmre(2)软件更新器一键更新 在开始菜单栏找到软件更新器,一键更新,期待实现即可 2、22.04 版本 ...

April 27, 2022 · 1 min · jiezi

关于linux:如何调试SSH连接

本文将介绍一些可用于诊断SSH连贯的疾速办法和技术,包含何时无奈连贯SSH,身份验证谬误等。问题一:SSH服务没有运行SSH连贯谬误的常见起因是服务未在近程服务器上运行。这可能是因为服务意外敞开或零碎重新启动后服务未启动而引起的。 要查看SSH服务是否正在运行,请运行上面命令: [root@server1 ~]# systemctl status sshd如何调试SSH连贯如何调试SSH连贯 解决办法应用以下命令设置SSH服务开机启动,并启动服务: [root@server1 ~]# systemctl enable sshd[root@server1 ~]# systemctl start sshd问题二:非标准端口上的SSH调试SSH连贯时的第二个常见问题是应用非标准端口。如果SSH在默认端口22以外的其余端口上运行,则除非明确指定运行SSH的端口,否则将不能连贯到近程主机。news.163.com/17/0616/09/CN1TVBSF00018AOP.htmlnews.163.com/17/0606/10/CM89AAKB00018AOP.htmlwww.51cto.com/it/news/2020/0624/21601.html要查看运行SSH的端口,请应用netstat之类的工具,如下所示: [root@clean-idea-1 ~]# netstat -tlunp|grep sshdtcp 0 0 0.0.0.0:28159 0.0.0.0:* LISTEN 818/sshd tcp6 0 0 :::28159 :::* LISTEN 818/sshd 如何调试SSH连贯如何调试SSH连贯下面的输入显示了SSH服务在哪个端口上运行。在这种状况下,它是端口28159。 解决办法端口不是默认的22时,连贯就须要指定端口了: [root@server1 ~]# ssh root@192.168.43.131 -p 28159问题三:端口被占用SSH连贯谬误的另一个起因是其余服务或过程是否也应用与SSH服务雷同的端口。例如,SSH的端口号为80,这和http服务的端口抵触了,则相似Apache的服务可能正在应用雷同的端口。 要查看其余过程是否正在应用与SSH雷同的端口,请应用以下命令查看日志: [root@server1 ~]# journalctl -t sshd该命令应返回如下所示的谬误,显示端口已被占用。如何调试SSH连贯如何调试SSH连贯 解决办法在这能够批改ssh的端口号,关上配置文件将端口批改为其余的,Port 2222 vim /etc/ssh/sshd_config Port 2222如何调试SSH连贯如何调试SSH连贯 问题四:被防火墙阻止如果尝试了上述所有办法,仍无奈建设SSH连贯,则能够看看防火墙是否阻止连贯? 解决办法在Cetnos8中,应用fireawlld查看防火墙,并将端口增加容许外面: [root@server1 ~]# firewall-cmd --list-all[root@server1 ~]# firewall-cmd --permanent --add-port=2222/tcpsuccess[root@server1 ~]# firewall-cmd --reloadsuccess如何调试SSH连贯如何调试SSH连贯 问题五:已禁用明码登录有时,您能够将SSH配置为不承受明码登录,而仅应用公密钥身份验证。如果公钥在服务器上不可用或短少私钥对,则可能导致不能登录的问题。 ...

April 26, 2022 · 1 min · jiezi

关于linux:Centos8中创建LVM精简逻辑卷

精简卷是能够创立大于可用磁盘的逻辑卷。应用精简卷,你能够治理可用空间的存储池(称为精简池),能够在应用程序须要时将其调配给任意数量的设施。精简池能够在须要时进行动静扩大,以节省成本。零碎环境Centos8 创立精简池上面咱们增加一块硬盘。创立物理卷,而后创立卷组: [root@localhost ~]# pvcreate /dev/sda Physical volume "/dev/sda" successfully created.[root@localhost ~]# vgcreate vg_thin /dev/sda Volume group "vg_thin" successfully created[root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <19.00g <2.00g vg_thin 1 0 0 wz--n- <20.00g <20.00gCentos8中创立LVM精简逻辑卷Centos8中创立LVM精简逻辑卷下面曾经创立好一个新的卷组了,名字为vg_thin。而后在现有卷组的中创立一个精简池: [root@localhost ~]# lvcreate -L 1G -T vg_thin/thin_pool Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data. Logical volume "thin_pool" created.[root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cl -wi-ao---- 15.00g swap cl -wi-ao---- 2.00g thin_pool vg_thin twi-a-tz-- 1.00g 0.00 10.94 Centos8中创立LVM精简逻辑卷Centos8中创立LVM精简逻辑卷 ...

April 26, 2022 · 3 min · jiezi

关于linux:Linux-SFTP命令使用实例cdlcdput

命令: sftp www.baidu.com(这个命令示意试图连贯FTP服务器) 进入sftp服务器后: sftp> help连贯上FTP服务器后,键入help就会列出所有的FTP命令。 sftp> ls此命令是列出近程服务器当前目录的所有目录和文件。 sftp> cd /ZDVT3/BOCHK/BWO此命令为扭转近程目录为BWO sftp> lcd /rmc/batch/csv/out扭转本地服务器当前目录为out sftp> put RMC* 呈现 upload RMC.csv to /ZDVT3/BOCHK/BWO/RMC.csv此命令为将本地服务器以后out目录下的所有RMC结尾的文件全副上传到sftp服务器的BWO目录下

April 26, 2022 · 1 min · jiezi

关于linux:Linux下跨语言调用C实践

不同的开发语言适宜不同的畛域,例如Python适宜做数据分析,C++适宜做零碎的底层开发,如果它们须要用到雷同性能的根底组件,组件应用多种语言别离开发的话,不仅减少了开发和保护老本,而且不能确保多种语言间在解决成果上是统一的。本文讲述在Linux零碎下跨语言调用的实际总结,即开发一次C++语言的组件,其余语言通过跨语言调用技术调用C++组件。1 背景介绍查问了解(QU, Query Understanding)是美团搜寻的外围模块,主要职责是了解用户查问,生成查问用意、成分、改写等根底信号,利用于搜寻的召回、排序、展现等多个环节,对搜寻根底体验至关重要。该服务的线上主体程序基于C++语言开发,服务中会加载大量的词表数据、预估模型等,这些数据与模型的离线生产过程有很多文本解析能力须要与线上服务保持一致,从而保障成果层面的一致性,如文本归一化、分词等。 而这些离线生产过程通常用Python与Java实现。如果在线、离线用不同语言各自开发一份,则很难维持策略与成果上的对立。同时这些能力会有一直的迭代,在这种动静场景下,一直保护多语言版本的成果打平,给咱们的日常迭代带来了极大的老本。因而,咱们尝试通过跨语言调用动态链接库的技术解决这个问题,即开发一次基于C++的so,通过不同语言的链接层封装成不同语言的组件库,并投入到对应的生成过程。这种计划的劣势非常明显,主体的业务逻辑只须要开发一次,封装层只须要极少量的代码,主体业务迭代降级,其它语言简直不须要改变,只须要蕴含最新的动态链接库,公布最新版本即可。同时C++作为更底层的语言,在很多场景下,它的计算效率更高,硬件资源利用率更高,也为咱们带来了一些性能上的劣势。 本文对咱们在理论生产中尝试这一技术计划时,遇到的问题与一些实践经验做了残缺的梳理,心愿能为大家提供一些参考或帮忙。 2 计划概述为了达到业务方开箱即用的目标,综合思考C++、Python、Java用户的应用习惯,咱们设计了如下的合作构造: 3 实现详情Python、Java反对调用C接口,但不反对调用C++接口,因而对于C++语言实现的接口,必须转换为C语言实现。为了不批改原始C++代码,在C++接口下层用C语言进行一次封装,这部分代码通常被称为“胶水代码”(Glue Code)。具体计划如下图所示: 本章节各局部内容如下: 【性能代码】局部,通过打印字符串的例子来讲述各语言局部的编码工作。【打包公布】局部,介绍如何将生成的动静库作为资源文件与Python、Java代码打包在一起公布到仓库,以升高应用方的接入老本。【业务应用】局部,介绍开箱即用的应用示例。【易用性优化】局部,结合实际应用中遇到的问题,讲述了对于Python版本兼容,以及动静库依赖问题的解决形式。3.1 性能代码3.1.1 C++代码作为示例,实现一个打印字符串的性能。为了模仿理论的工业场景,对以下代码进行编译,别离生成动静库 libstr_print_cpp.so、动态库libstr_print_cpp.a。 str_print.h #pragma once#include <string>class StrPrint { public: void print(const std::string& text);};str_print.cpp #include <iostream>#include "str_print.h"void StrPrint::print(const std::string& text) { std::cout << text << std::endl;}3.1.2 c_wrapper代码如上文所述,须要对C++库进行封装,革新成对外提供C语言格局的接口。 c_wrapper.cpp #include "str_print.h"extern "C" {void str_print(const char* text) { StrPrint cpp_ins; std::string str = text; cpp_ins.print(str);}}3.1.3 生成动静库为了反对Python与Java的跨语言调用,咱们须要对封装好的接口生成动静库,生成动静库的形式有以下三种 形式一:源码依赖形式,将c_wrapper和C++代码一起编译生成libstr_print.so。这种形式业务方只须要依赖一个so,应用老本较小,然而须要获取到源码。对于一些现成的动静库,可能不实用。g++ -o libstr_print.so str_print.cpp c_wrapper.cpp -fPIC -shared形式二:动静链接形式,这种形式生成的libstr_print.so,公布时须要携带上其依赖库libstr_print_cpp.so。 这种形式,业务方须要同时依赖两个so,应用的老本绝对要高,然而不用提供原动静库的源码。g++ -o libstr_print.so c_wrapper.cpp -fPIC -shared -L. -lstr_print_cpp形式三:动态链接形式,这种形式生成的libstr_print.so,公布时无需携带上libstr_print_cpp.so。 这种形式,业务方只需依赖一个so,不用依赖源码,然而须要提供动态库。g++ c_wrapper.cpp libstr_print_cpp.a -fPIC -shared -o libstr_print.so上述三种形式,各自有实用场景和优缺点。在咱们本次的业务场景下,因为工具库与封装库均由咱们本人开发,可能获取到源码,因而抉择第一种形式,业务方依赖更加简略。 ...

April 26, 2022 · 4 min · jiezi

关于linux:什么是-Linux-发行版为什么它被称为发行版

让咱们来讨论一下什么是 Linux 发行版,为什么它被称为发行版distribution(或简称 distro),以及,它与 Linux 内核有什么不同。你还会理解到为什么有些人坚称 Linux 为 GNU/Linux。 什么是 Linux 发行版? Linux 发行版是一个由 Linux 内核、GNU 工具、附加软件和软件包管理器组成的操作系统,它也可能包含显示服务器和桌面环境,以用作惯例的桌面操作系统。 这个术语之所以是 “Linux 发行版”,是因为像 Debian、Ubuntu 这样的机构“发行”了 Linux 内核以及所有必要的软件及实用程序(如网络管理器、软件包管理器、桌面环境等),使其能够作为一个操作系统应用。 你的发行版还负责提供更新来保护其内核和其余实用程序。 所以,“Linux” 是内核,而 “Linux 发行版”是操作系统。这就是为什么它们有时也被称为基于 Linux 的操作系统的起因。 如果不是很了解以上所有的内容,不要放心。上面我将具体解释一下。 “Linux 只是一个内核,不是一个操作系统。”这是什么意思?你可能看到到过这句话,这说的没错。内核是一个操作系统的外围,它靠近于具体硬件。你应用应用程序和 shell 与它交互。 为了了解这一点,我就用我在《什么是 Linux 的具体指南》中曾用过的那个比喻。把操作系统看成车辆,把内核看成引擎。你不能间接驱动引擎。同样,你也不能间接应用内核。 一个 Linux 发行版能够看作是一个汽车制造商(比方丰田或福特)为你提供的现成的汽车,就像 Ubuntu 或 Fedora 发行版的发行商为你提供的一个基于 Linux 的现成操作系统一样。 什么是 GNU/Linux?让咱们再来看看这张图片。1991 年的时候,Linus Torvalds 发明的只是其中的最内圈,即 Linux 内核。 要应用 Linux,即便是以最原始的模式,甚至没有 GUI,你也须要一个 shell。最常见的是 Bash shell。 而后,你须要在 shell 中运行一些命令来实现一些工作。你能记起一些根本的 Linux 命令吗?比方 cat、cp、mv、grep、find、diff、gzip 等等。 严格来说,这些所谓的“Linux 命令”并不是只属于 Linux。它们中的很多都来源于 UNIX 操作系统。 ...

April 25, 2022 · 1 min · jiezi

关于linux:uos下升级hhdesk

作为纯国产终端管理器&外置文件管理器HHDESK上线统信商店以来,受到了宽广用户的青眼。HHDESK最新版本其性能曾经可能和老牌国外终端软件如SecureCRT等进行全面反抗,然而如何在UOS上进行最新版本升级成为大家头疼的问题。上面视频中演示了在UOS上疾速应用HHDESK最新版本的全过程,心愿能给大家带来帮忙。同时也欢送其余国产软硬件友商携手对接反对全四路的国产CPU的终端管理器&外置文件管理器,独特打造国产桌面生态。https://www.bilibili.com/vide...

April 25, 2022 · 1 min · jiezi

关于linux:Google-Adsense-建站要求

谷歌联盟账户如何申请及申请条件?谷歌 adsense 对网站的要求也变得更高了, 次要是以下几点。 网站至多经营 6 个月以上。谷歌有肯定收录量( 谷歌搜寻 site:网站域名,就能查问网站收录量)。必须是英文站。内容必须原创( 不能有任何版权问题,电影、小说等一类存在版权危险的站点审查过不了, 那么能够是集体博客类的网站)。网站具备肯定的流量( 百度搜寻“ 外链”,能够花点钱买点高质量的外链,起步会更快一些,两三块钱一条那种就算了,有和没有没啥区别)。也就是说, 不论你是买老域名建站也好, 新域名建站也罢, 想申请一个谷歌联盟账户怎么也得好几个月起步的工夫!还不肯定过审。为google adsense抉择主机,能够参考这篇文章。Best Web hosting for Google AdSense 谷歌 adsense 我的项目如何赚钱?第二,我来说下谷歌 adsense 这个我的项目的一个盈利模式。就是将站外的流量导入到站内,通过站内的广告位点击变现, 做的也齐全都是实在流量和实在用户。 具体操作目前次要是两种。 一个是自建站群导流到站内;另一个是到国外一些大流量站点投放广告引流到站内。 如果是前者,操作国外站群做流量的话,其实难度就绝对较高了。 因为你经营单站和你操作站群程序技术难度是不一样的,经营单站你能够不必懂代码,然而做站群的话就必须要懂 php、js、html、正则表达式等根本的技术根底。 所以这也就是为啥,当初做谷歌联盟培训的课程教的都是让你去做单站、几个网站的 SEO 经营,或者是间接花钱在一些大流量站点买广告位导流,因为做站群真的是技术难度很高,一些老站长也可能在这下面翻车, 更别说小白了。 做国外站点还有另一个思路, 就是经营几个月后挂在 a5 站长论坛去卖掉,没有流量有收录的站也能卖个一两千块钱, 能够批量化操作, 我社群里有一个做图片写真站的圈友, 就是把本人站在A5 下面挂了 2w 块钱卖了。 另外,对于谷歌 adsense 收款的问题,其实很容易解决,注册一个华丽银行的账号就能够收款了,另外百度搜一下也有一些平台反对代收款。 网站服务器如何抉择和购买?首先, 是服务器的抉择。如果你要经营的网站是国外站点, 那么服务器能够选在香港、美国等中央, 那么网站域名则不须要备案 就能拜访,如果建设的网站是国内站点, 服务器抉择在国内一些地区的话, 那么域名须要备案才行。 国内网站尽量抉择国内的服务器经营。服务器抉择在香港的话, 尽管能够防止域名备案的问题,然而对于 SEO 有肯定影响,用户在拜访体验上也不是那么良好,同样的配置国内必定是优于香港服务器。 配置方面, 如果是国内服务器最低配能够 1 核 2g 带宽 1M, 如果是香港服务器, 带宽最好 3M 起步。 ...

April 24, 2022 · 1 min · jiezi

关于linux:Linux权限管理

11

April 24, 2022 · 1 min · jiezi

关于linux:Linux常用性能调测命令简介

一、 Linux常用命令1 top简介:top命令是Linux下罕用的性能剖析工具,可能实时显示零碎中各个过程的资源占用情况,相似于Windows的工作管理器。top应用格局:top[-] [d] [p] [q] [c] [C] [S] [s] [n] d 指定每两次屏幕信息刷新之间的工夫距离。当然用户能够应用s交互命令来扭转之。 p 通过指定监控过程ID来仅仅监控某个过程的状态。 q 该选项将使top没有任何提早的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。 S 指定累计模式 。s 使top命令在平安模式中运行。这将去除交互命令所带来的潜在危险。 i 使top不显示任何闲置或者僵死过程。 c 显示整个命令行而不只是显示命令名。top罕用参数,top是交互式命令,以下几个参数常常用到,在top界面输出以下字母: f或者F 从以后显示中增加或者删除我的项目。 o或者O 扭转显示我的项目的程序。 l 切换显示均匀负载和启动工夫信息。 m 切换显示内存信息。 t 切换显示过程和CPU状态信息。 c 切换显示命令名称和残缺命令行。M 依据驻留内存大小进行排序。P 依据CPU应用百分比大小进行排序。输入参数介绍: total 过程总数 running 正在运行的过程数 sleeping 睡眠的过程数 stopped 进行的过程数 zombie 僵尸过程数Cpu(s): 12.5% us 用户空间占用CPU百分比 8.4% sy 内核空间占用CPU百分比 0.0% ni 用户过程空间内扭转过优先级的过程占用CPU百分比 74.67% id 闲暇CPU百分比 1.4% wa 期待输入输出的CPU工夫百分比 0.0%hi:硬件CPU中断占用百分比 3.1%si:软中断占用百分比 0.0%st:虚拟机占用百分比按1切换过程查看单个 cpu详情模式 2 mpstat简介:mpstat(multi-processor statistics),它能实时检测多处理器零碎上的每个cpu的应用状况。格局:mpstat [ -P {0|1|…|ALL} ] [interval] [count] ...

April 24, 2022 · 3 min · jiezi

关于linux:linux与手机termux之间通过ssh传输文件or文件夹

如果须要在Linux和手机termux之间传输文件/文件夹,那么不能够在Linux上登录手机ssh,如果登录了手机,就只能对手机外部文件/文件夹进行治理,而无奈在手机和电脑之间传输文件。如果你曾经登录了,那么请在Linux上用exit退出与Termux的连贯 将Linux的上的文件发送到手机 # 第一种形式,默认端口8022scp -r -P 默认端口 tmp.log Termux用户名@Termux.IP:~ # 第二种形式scp -r tmp.log Termux用户名@Termux.IP:~ 复制手机外面的文件到Linux:# 第一种形式,默认端口22scp -r -P 默认端口 Termux用户名@Termux.IP:~/phone.txt ~/MyLinux#或者scp -r Termux用户名@Termux.IP:~/phone.txt ~/MyLinux复制liunx的文件夹到手机中: scp -r -P 默认端口 ~/linux-picture Termux用户名@Termux.IP:~#或者scp -r ~/linux-picture Termux用户名@Termux.IP:~复制手机中的文件夹到Linux: scp -r -P 默认端口 Termux用户名@Termux.IP:~/PhoneDIR ~/MyLinux#或者scp -r Termux用户名@Termux.IP:~/PhoneDIR ~/MyLinux

April 23, 2022 · 1 min · jiezi

关于linux:Linux通过ssh连接手机安卓手机上的Termux

Linux通过ssh连贯手机安卓手机上的Termux termux 运行 #能够在增加国内清华镜像源后执行pkg updatetermux 装置ssh套件: pkg install opensshtermux执行 passwd 设置一个明码,不然Linux可能会被回绝连贯termux 执行 ssh 查看是否装置胜利,胜利后则开启ssh: sshdtermux 查看IP地址: ifconfig, 这里设为 tipLinux的登录连贯: #termux默认端口为8022ssh tip -p 8022 会询问你是否想要连贯,yes. 而后请你输出之前在第二步设置的明码,输出它, 连贯胜利

April 23, 2022 · 1 min · jiezi

关于linux:优麒麟-2204-LTS-版本正式发布-UKUI-31开启全新体验

2022 年 4 月 22 日,优麒麟团队正式公布新版本 22.04 LTS。22.04 是继 14.04、16.04、18.04 和 20.04 之后的第五个长期反对(LTS)版本,官网将提供 3 年的技术支持。 与上一版本相比,此次更新版本新增了显示残余充电工夫、简单触摸手势及操作动画教学、零碎浅色模式设置、微信在线登录和反对开启集体热点等新性能。进一步优化了任务栏区域展示模式、任务栏启动工夫、告诉弹窗动画和文件管理器侧边栏层级,并修复了 Ctrl+Q 无奈敞开音乐程序、刻录利用内存透露危险等已知问题。 秉承所有以用户为主的理念,优麒麟继续优化交互体验和零碎稳定性。本次更新版本默认搭载 Linux 5.15 LTS 内核和全新 UKUI 3.1 桌面环境,并对多款麒麟自研利用进行了全面降级。 最新 Linux 5.15 LTS 内核 - 兼容性更高、更稳固 重要更新: █ 改良的 NTFS 文件系统反对; █ 新的 SMB3 文件服务器 (KSBMD); █ 为基于 AMD Zen 3 的 APU 增加了温度监控反对; █ 华硕 ACPI 平台配置文件反对; █ 改良了对英特尔第 12 代 CPU 的反对; █ 合并了 Realtek RTL8188EU WiFi 驱动程序以替换之前的 Realtek WiFi 驱动程序。 ...

April 22, 2022 · 1 min · jiezi

关于linux:龙蜥开源Plugsched首次实现-Linux-kernel-调度器热升级-龙蜥技术

简介:对于plugsched而言,无论是 bugfix,还是性能优化,甚至是个性的增、删、改,都可胜任。 文/龙蜥社区内核开发人员 陈善佩、吴一昊、邓二伟 Plugsched 是 Linux 内核调度器子系统热降级的 SDK,它能够实现在不重启零碎、利用的状况下动静替换调度器子系统,毫秒级 downtime。Plugsched 能够对生产环境中的内核调度个性动静地进行增、删、改,以满足不同场景或利用的需要,且反对回滚。 基于 plugsched 实现的调度器热降级,不批改现有内核代码,就能取得较好的可批改能力,人造反对线上的老内核版本。如果提前在内核调度器代码的要害数据结构中退出 Reserve 字段,能够额定取得批改数据结构的能力,进一步晋升可批改能力。 Plugsched 开源链接:https://gitee.com/anolis/plug... 那么 Plugsched 诞生的背景或者想要解决的问题是什么?咱们认为有以下 4 点:利用场景不同,最佳调度策略不同。 利用品种极大丰富,利用特色也是变幻无穷 (throughput-oriented workloads, s-scale latency critical workloads, soft real-time, and energy efficiency requirements),使得调度策略的优化比较复杂,不存在“一劳永逸”的策略。因而,容许用户定制调度器满足不同的场景是必要的。调度器迭代慢。 Linux 内核通过很多年的更新迭代,代码变得越来越沉重。调度器是内核最外围的子系统之一,它的结构复杂,与其它子系统严密耦合,这使得开发和调试变得越发艰难。此外,Linux 很少减少新的调度类,尤其是不太可能承受非通用或场景针对型的调度器,上游社区在调度畛域发展缓慢。内核降级艰难。调度器内嵌 (built-in)在内核中,上线调度器的优化或新个性须要降级内核版本。内核公布周期通常是数月之久,这将导致新的调度器无奈及时利用在生产零碎中。再者,要在集群范畴降级新内核,波及业务迁徙和停机降级,对业务方来说代价低廉。无奈降级子系统。kpatch 和 livepatch 是函数粒度的热降级计划,可批改能力较弱,不能实现简单的逻辑改变;eBPF 技术在内核网络中广泛应用,但当初调度器还不反对 ebpf hook,未来即便反对,也只是实现部分策略的灵便批改,可批改能力同样较弱。Plugsched 能将调度器子系统从内核中提取进去,以模块的模式对内核调度器进行热降级。通过对调度器模块的批改,可能针对不同业务定制化调度器,而且应用模块可能更麻利的开发新个性和优化点,并且能够在不中断业务的状况下上线。 图1 plugsched: 业务不中断 应用 plugsched 具备以下 6 大劣势: 与内核公布解耦:调度器版本与内核版本解耦,不同业务能够应用不同调度策略;建设继续运维能力,减速调度问题修复、策略优化落地;晋升调度畛域翻新空间,放慢调度器技术演进和迭代可批改能力强 :能够实现简单的调度个性和优化策略,能人之所不能保护简略:不批改内核代码,或大量批改内核代码,放弃内核主线洁净整洁;在内核代码 Tree 外独立保护非通用调度策略,采纳 RPM 的模式公布和上线简略易用:容器化的 SDK 开发环境,一键生成 RPM,开发测试简洁高效向下兼容:反对老内核版本,使得存量业务也能及时享受新技术红利高效的性能:毫秒级 downtime,可疏忽的 overhead。Plugsched 利用案例 Plugsched 相比 kpatch 和 livepatch 可批改能力更强,热降级范畴更广,plugsched 是子系统范畴的热降级,而后者是函数级别的热降级。对于 plugsched 而言,无论是 bugfix,还是性能优化,甚至是个性的增、删、改,都可胜任。鉴于 plugsched 较强的可批改能力,它可利用到以下场景: ...

April 21, 2022 · 2 min · jiezi

关于linux:Linux-命令行简介

如果你是 Linux 老手,或者素来没有花工夫钻研过命令行,你可能不会了解为什么这么多 Linux 爱好者坐在舒服的桌面前兴奋地输出命令来应用大量工具和利用。在这篇文章中,咱们将疾速浏览一下命令行的微妙之处,看看是否让你着迷。 首先,要应用命令行,你必须关上一个命令工具(也称为“命令提示符”)。如何做到这一点将取决于你运行的 Linux 版本。例如,在 RedHat 上,你可能会在屏幕顶部看到一个 “Activities” 选项卡,它将关上一个选项列表和一个用于输出命令的小窗口(相似 “cmd” 为你关上的窗口)。在 Ubuntu 和其余一些版本中,你可能会在屏幕左侧看到一个小的终端图标。在许多零碎上,你能够同时按 Ctrl+Alt+t 键关上命令窗口。 如果你应用 PuTTY 之类的工具登录 Linux 零碎,你会发现自己曾经处于命令行界面。 一旦你失去你的命令行窗口,你会发现自己坐在一个提示符背后。它可能只是一个 $ 或者像 user@system:~$ 这样的货色,但它意味着零碎曾经筹备好为你运行命令了。 一旦你走到这一步,就应该开始输出命令了。上面是一些要首先尝试的命令,以及这里是一些特地有用的命令的 PDF 和适宜打印和做成卡片的双面命令手册。 命令 用处pwd 显示我在文件系统中的地位(在最后进入零碎时运行将显示主目录)ls 列出我的文件ls -a 列出我更多的文件(包含暗藏文件)ls -al 列出我的文件,并且蕴含很多详细信息(包含日期、文件大小和权限)who 通知我谁登录了(如果只有你,不要悲观)date 日期揭示我明天是星期几(也显示工夫)ps 列出我正在运行的过程(可能只是你的 shell 和 ps 命令)一旦你从命令行角度习惯了 Linux 主目录之后,就能够开始摸索了。兴许你会筹备好应用以下命令在文件系统中晃荡: 命令 用处cd /tmp 挪动到其余文件夹(本例中,关上 /tmp 文件夹)ls 列出以后地位的文件cd 回到主目录(不带参数的 cd 总是能将你带回到主目录)cat .bashrc 显示文件的内容(本例中显示 .bashrc 文件的内容)history 显示最近执行的命令echo hello 跟本人说 “hello”cal 显示以后月份的日历要理解为什么高级 Linux 用户如此喜爱命令行,你将须要尝试其余一些性能,例如重定向和管道。“重定向”是当你获取命令的输入并将其放到文件中而不是在屏幕上显示时。“管道”是指你将一个命令的输入发送给另一条将以某种形式对其进行操作的命令。这是能够尝试的命令: 命令 用处echo "echo hello" > tryme 创立一个新的文件并将 “echo hello” 写入该文件chmod 700 tryme 使新建的文件可执行tryme 运行新文件(它该当运行文件中蕴含的命令并且显示 “hello” )ps aux 显示所有运行中的程序ps aux | grep $USER 显示所有运行中的程序,然而限度输入的内容蕴含你的用户名echo $USER 应用环境变量显示你的用户名whoami 应用命令显示你的用户名who | wc -l 计数所有以后登录的用户数目总结一旦你习惯了根本命令,就能够摸索其余命令并尝试编写脚本。 你可能会发现 Linux 比你设想的要弱小并且好用得多. ...

April 20, 2022 · 1 min · jiezi

关于linux:Linux常用命令

ls

April 20, 2022 · 1 min · jiezi

关于linux:linux如何通过parted命令对磁盘进行分区

在 21 世纪,咱们往往认为数据存储是天经地义的。咱们有许多存储介质,绝对价格便宜,而且有许多不同的可用类型。然而,不管你取得的收费云存储空间有多少,没有比有一个物理硬盘空间来存储重要的数据更好了(或容量真的很大的,而当你又在一个慢速网络上时)。然而,没有几块硬盘买回来就是现成的,至多在现实的情况下能够间接应用的。无论你是买了一块新硬盘,还用不同分区装置一个零碎,你须要晓得怎么在 Linux 上为磁盘分区。 这篇文章介绍了 GNU Parted ,它磁盘分区最好的工具之一。 磁盘标签、分区和文件系统技术上来说,一个硬盘驱动器不须要很多软件,就可用作存储设备。然而,在没有分区表和文件系统等古代常规的状况下应用硬盘是艰难的、不切实际的,而且对你的数据不平安。 对于硬盘驱动器,这里有三个你须要晓得的重要概念: 磁盘标签disk label(或者 分区表partition table)是搁置在磁盘驱动器起始地位的元数据,它通知计算机可用的存储是何种类型、以及它在磁盘驱动器的地位等信息。分区partition 是一个辨认文件系统地位的边界。举个例子,如果你有一个 512GB 的硬盘,你能够用占用所有磁盘容量(512GB)分成一个分区,或者分成两个分区,每个占用 256GB ,或者分成三个分区,占用各种不同大小的空间等等。文件系统filesystem 是一个硬盘驱动器和计算机两者约定俗成的存储计划。计算机必须晓得怎么读取文件系统来拼凑存储在驱动器上的数据,并且必须晓得怎么写入数据到文件系统并保持数据的完整性。GNU Parted 程序管理着前两个概念:磁盘标签和分区。Parted 对文件系统有所理解,然而它把文件系统的实现细节交给了其余相似 mkfs 这样的工具。 确定磁盘驱动器的地位应用 GNU Parted 之前,你必须确定你的驱动器在你的零碎上的地位。首先,将你要格式化的磁盘驱动器连贯到你的零碎,而后用 parted 命令查看连贯到你的计算机的设施: $ parted /dev/sda print devices/dev/sda (2000GB)/dev/sdb (1000GB)/dev/sdc (1940MB)你最新连贯设施的名称在字母表上晚于连接时间更长的设施。举个例子,/dev/sdc 最有可能是我刚刚连贯的磁盘。我能通过它的容量大小来确认,相比于我的工作站上的次要驱动器的 TB 大小来说,因为我晓得我插入的 U 盘只有 2GB(1940MB,足够靠近)大小。如果你不能确定,你能够失去的更多对于你想要分区的驱动器的信息: $ parted /dev/sdc printModel: Yoyodyne Tiny Drive 1.0 (scsi)    Disk /dev/sdc: 1940MBSector size (logical/physical): 512B/512BPartition Table: msdosDisk Flags:Number  Start   End     Size    File system  Name  Flags 1      1049kB  2048kB  1024kB  BS           Bloat  Hidden 2      2049kB  1939MB  1937MB  FAT32        MyDrive有些驱动器比其余驱动器有更多的元数据。这个磁盘表明它的物理驱动器品牌是 Yoyodyne ,此外,在磁盘的起始处蕴含了一个小的暗藏分区,前面是一个兼容 Windows 的臃肿的 FAT32 分区。这的确是我要从新打算格式化的驱动器。 ...

April 18, 2022 · 2 min · jiezi

关于linux:大咖云集优麒麟受邀参加DIVE全球基础软件创新大会

2022 年 4 月 15 日,由 InfoQ 主办、麒麟软件作为大会联席主席的 DIVE 寰球根底软件翻新大会于线上胜利举办。此次大会以“深刻根底软件,打造新型数字底座”为主题,邀请了行业领导人物、学者和技术人缺席,并分享了根底软件畛域最丰盛、最前沿、最具技术性的内容,为大家提供了一个能够学习干货常识、可能充沛交换并认知行业全貌的平台。 作为自主操作系统研发畛域先锋,麒麟软件团队受邀加入本次大会,在【操作系统研发实际】专题下分享,向大家介绍了目前麒麟操作系统与安卓挪动利用交融的技术实际成绩,以及将来麒麟零碎在挪动生态上的布局和布局。 截至目前,麒麟挪动运行环境(KMRE)曾经实现对 4000+ 挪动利用的适配,涵盖金融、影音、社交、教育、游戏、办公等类别,可能很好的反对桌面操作系统运行挪动利用 APP 。在将来,麒麟操作系统也将持续通过 KMRE 引入挪动生态补充 Linux 原生生态有余的问题,并打造出麒麟操作系统本身挪动办公生态。 本分享主题也是受到了大家的宽泛关注,对此,孟庆彬示意:如果大家感兴趣的话,欢送返回优麒麟官网下载优麒麟操作系统来体验最新版的 KMRE。 同时,孟庆彬也在会上向大家展现了优麒麟开源社区的代码地址和代码托管平台链接,邀请大家退出到优麒麟社区建设中来,一起攻克难题,共享技术成绩。 ● 优麒麟代码地址:www.github.com/ubuntukylin ● UKUI代码地址:www.github.com/ukui ● Gitee代码托管平台:https://gitee.com/ukylin-os 对于优麒麟优麒麟开源社区自 2013 年成立以来,已累计发行 19 个版本,下载量超过 3800 万次,向开源社区奉献代码数百万行,被 Linux、Debian、Ubuntu、OpenStack、Ceph 等国内开源社区接管的 Patch 超过 7400 个,在寰球范畴内领有 数十万 沉闷用户。

April 18, 2022 · 1 min · jiezi

关于linux:Linux下本地主机挂载远程服务器文件系统

Linux下本地主机挂载近程服务器文件系统 本机挂载近程服务器文件系统要用到sshfs服务,如果没有,需装置它: sudo apt-get install sshfs挂载分两种:长期与永恒,这里先临时应用长期挂载 长期0.第一步,批改 /etc/fuse.conf,在 /etc/fuse.conf 内增加user_allow_other,或者勾销对应的正文。 1.第二步,执行如下 sudo sshfs -o cache=yes,allow_other RemoteName@RometeIP:/home/romete/folder /home/local/sshfs-dir卸载挂载sudo umount -v /home/local/sshfs-dir

April 17, 2022 · 1 min · jiezi

关于linux:没接触过kubevirt15分钟快速入门kubevirt

@TOC 本文介绍本文有两个版本,具体版、简洁版。 前者适宜老手,后者适宜新手(不便大家查找,从而过滤掉某些步骤,节约工夫老本) 所以大家按需查看哟。 具体版简洁版简洁版:蕴含所有步骤,以及命令的执行过程(适宜老手) 简洁版:只蕴含命令(适宜有肯定熟练度的人) 前言什么是kubevirt? kubevirt是一个容器形式运行虚拟机的我的项目。kubevirt是附加kubernetes集群上的,它是通过 CustomResourceDefinition(CRD)部署到Kubernetes API变成资源对象。应用形式相似创立deploy、pod......这些资源清单。 环境筹备环境保障网络出外网零碎服务centos7kubernetes集群官网地址:https://kubevirt.io/ 具体版 搭建步骤装置KubeVirt[root@master ~]# export RELEASE=v0.35.0[root@master ~]# kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-operator.yaml[root@master ~]# kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-cr.yaml[root@master ~]# kubectl get pods -n kubevirtNAME READY STATUS RESTARTS AGEvirt-api-64999f7bf5-fblkh 1/1 Running 0 5m24svirt-api-64999f7bf5-l8wzr 1/1 Running 0 5m24svirt-controller-8696ccdf44-k9qpv 1/1 Running 0 4m52svirt-controller-8696ccdf44-tpxwp 1/1 Running 0 4m52svirt-handler-kl8tl 1/1 Running 0 4m52svirt-operator-78fbcdfdf4-468h4 1/1 Running 0 8m4svirt-operator-78fbcdfdf4-nvvxx 1/1 Running 0 8m4s所以服务启动后,执行上面这条命令 [root@master ~]# kubectl -n kubevirt wait kv kubevirt --for condition=Availablekubevirt.kubevirt.io/kubevirt condition met装置virtctl客户端工具[root@master ~]# export VERSION=v0.41.0[root@master ~]# wget https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-linux-amd64[root@master kubevirt]# cp virtctl-v0.41.0-linux-amd64 /usr/local/bin/virtctl[root@master kubevirt]# chmod +x /usr/local/bin/virtctl ; ll /usr/local/bin/total 64000-r-xr-xr-x. 1 root root 17586312 Jan 11 10:52 docker-compose-rwxr-xr-x. 1 root root 47944250 Apr 16 16:58 virtctl[root@master kubevirt]# virtctl versionClient Version: version.Info{GitVersion:"v0.41.0", GitCommit:"b77b858ac9345ae6858cf409e1833f4548ec2809", GitTreeState:"clean", BuildDate:"2020-11-09T13:38:36Z", GoVersion:"go1.13.14", Compiler:"gc", Platform:"linux/amd64"}Server Version: version.Info{GitVersion:"{gitVersion}", GitCommit:"{gitCommit}", GitTreeState:"{gitTreeState}", BuildDate:"{buildDate}", GoVersion:"go1.13.14", Compiler:"gc", Platform:"linux/amd64"}创立VirtualMachineVirtualMachine(vm)相似于docker镜像一个模板能够启动很多运行实例vmi:[root@master kubevirt]# cat test.yamlapiVersion: kubevirt.io/v1alpha3kind: VirtualMachinemetadata: labels: kubevirt.io/vm: vm-cirros name: vm-cirrosspec: running: false template: metadata: labels: kubevirt.io/vm: vm-cirros spec: domain: devices: disks: - disk: bus: virtio name: containerdisk - disk: bus: virtio name: cloudinitdisk machine: type: "" resources: requests: memory: 64M terminationGracePeriodSeconds: 0 volumes: - name: containerdisk containerDisk: image: kubevirt/cirros-container-disk-demo:latest - cloudInitNoCloud: userDataBase64: IyEvYmluL3NoCgplY2hvICdwcmludGVkIGZyb20gY2xvdWQtaW5pdCB1c2VyZGF0YScK name: cloudinitdisk[root@master kubevirt]# kubectl apply -f test.yamlvirtualmachine.kubevirt.io/vm-cirros created[root@master kubevirt]# kubectl get vmNAME AGE VOLUMEvm-cirros 21m启动VirtualMachineInstanceVirtualMachineInstance(vmi)相似于docker镜像的运行实例容器:[root@master kubevirt]# virtctl start vm-cirrosVM vm-cirros was scheduled to start[root@master kubevirt]# kubectl get vmiNAME AGE PHASE IP NODENAMEvm-cirros 62s Running 10.244.0.15 master[root@master kubevirt]# virtctl console vm-cirros # 进入虚拟机Successfully connected to vm-cirros console. The escape sequence is ^]login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.vm-cirros login: cirrosPassword:$ ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast qlen 1000 link/ether 2e:3e:2a:46:29:94 brd ff:ff:ff:ff:ff:ff inet 10.244.0.16/24 brd 10.244.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::2c3e:2aff:fe46:2994/64 scope link tentative flags 08 valid_lft forever preferred_lft forever $ # 按 ctrl+] 退出虚拟机$ [root@master kubevirt]#启动和进行命令spec.running 字段如果设置为true为启动、false为进行** ...

April 17, 2022 · 3 min · jiezi

关于linux:HomeKit生态设备少不如来看看Aqara和智汀跨平台互联

2022年了,还有人不晓得智能家居怎么玩?面对HomeKit设施少?不如来看看国内米家的Aqara? 苹果homekit是一个是由apple搭建的智能家居生态;就像国内的米家智能家居生态,是由小米搭建的。很是博得用户喜爱,然而呢?面对国内的智能生态来讲,能接入它的设施并不多,可能与HomeKit实现互联的产品少之又少。 绿米联创Aqara是国内智能家居企业中兼容Apple HomeKit产品最多、最残缺的智能家居品牌。能接入Apple HomeKit平台的产品就多达29款,其中有8款产品间接在苹果官网销售。门窗传感器、无线开关、人体传感器、智能LED灯泡、网关等支流生产智能产品 比方Aqara网关,关上夜灯,那么在HomeKit外面把网关,关上夜灯作为条件而后再联动一个设施;那么这时咱们能够实现跨平台互联了 点击场景页面右上角+,进行场景创立;首先咱们创立好场景名称,而后点击正下方的触发条件并抉择设施状态变动时进入到设施状态变动时的详情页中,找到咱们所须要的设施【Aqara门窗传感器】;在Aqara门窗传感器的状态咱们抉择由敞开变为关上时;再实现Aqara门窗传感器的场景设施后,咱们点击正下方的执行工作;筛选咱们要执行的工作的设施【智能设施】或【管制场景】二选一;在智能设施详情页中,咱们抉择所须要管制的设施【philips Hue-Hue white lamp】;而后设施【philips Hue-Hue white lamp】灯的亮度以及开关是关上状态还是敞开状态,这里咱们选【关上】状态;同理,咱们在设置一个当敞开Aqara门窗传感器时,所有屋里的灯也随之敞开的场景;

April 15, 2022 · 1 min · jiezi

关于linux:linux之iconv命令

转换文件的编码方式,iconv命令 是用来转换文件的编码方式的,比方它能够将UTF8编码的转换成GB18030的编码,反过来也行。JDK中也提供了相似的工具native2ascii。Linux下的iconv开发库包含iconv_open,iconv_close,iconv等C函数,能够用来在C/C++程序中很不便的转换字符编码,这在抓取网页的程序中很有用途,而iconv命令在调试此类程序时用得着。命令语法iconv -f encoding [-t encoding] [inputfile]... 命令选项-f encoding :把字符从encoding编码开始转换。-t encoding :把字符转换到encoding编码。-l :列出已知的编码字符汇合-o file :指定输入文件-c :疏忽输入的非法字符-s :禁止正告信息,但不是错误信息--verbose :显示进度信息-f和-t所能指定的非法字符在-l选项的命令外面都列出来了。列出以后反对的字符编码The following list contain all the coded character sets known. This doesnot necessarily mean that all combinations of these names can be used forthe FROM and TO command line parameters. One coded character set can belisted with several different names (aliases). 437, 500, 500V1, 850, 851, 852, 855, 856, 857, 860, 861, 862, 863, 864, 865, 866, 866NAV, 869, 874, 904, 1026, 1046, 1047, 8859_1, 8859_2, 8859_3, 8859_4, 8859_5, 8859_6, 8859_7, 8859_8, 8859_9, 10646-1:1993, 10646-1:1993/UCS4, ANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4, ANSI_X3.110-1983, ANSI_X3.110, ARABIC, ARABIC7, ARMSCII-8, ASCII, ASMO-708, ASMO_449, BALTIC, BIG-5, BIG-FIVE, BIG5-HKSCS, BIG5, BIG5HKSCS, BIGFIVE, BRF, BS_4730, CA, CN-BIG5, CN-GB, CN, CP-AR, CP-GR, CP-HU, CP037, CP038, CP273, CP274, CP275, CP278, CP280, CP281, CP282, CP284, CP285, CP290, CP297, CP367, CP420, CP423, CP424, CP437, CP500, CP737, CP770, CP771, CP772, CP773, CP774, CP775, CP803, CP813, CP819, CP850, CP851, CP852, CP855, CP856, CP857, CP860, CP861, CP862, CP863, CP864, CP865, CP866, CP866NAV, CP868, CP869, CP870, CP871, CP874, CP875, CP880, CP891, CP901, CP902, CP903, CP904, CP905, CP912, CP915, CP916, CP918, CP920, CP921, CP922, CP930, CP932, CP933, CP935, CP936, CP937, CP939, CP949, CP950, CP1004, CP1008, CP1025, CP1026, CP1046, CP1047, CP1070, CP1079, CP1081, CP1084, CP1089, CP1097, CP1112, CP1122, CP1123, CP1124, CP1125, CP1129, CP1130, CP1132, CP1133, CP1137, CP1140, CP1141, CP1142, CP1143, CP1144, CP1145, CP1146, CP1147, CP1148, CP1149, CP1153, CP1154, CP1155, CP1156, CP1157, CP1158, CP1160, CP1161, CP1162, CP1163, CP1164, CP1166, CP1167, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, CP1258, CP1282, CP1361, CP1364, CP1371, CP1388, CP1390, CP1399, CP4517, CP4899, CP4909, CP4971, CP5347, CP9030, CP9066, CP9448, CP10007, CP12712, CP16804, CPIBM861, CSA7-1, CSA7-2, CSASCII, CSA_T500-1983, CSA_T500, CSA_Z243.4-1985-1, CSA_Z243.4-1985-2, CSA_Z243.419851, CSA_Z243.419852, CSDECMCS, CSEBCDICATDE, CSEBCDICATDEA, CSEBCDICCAFR, CSEBCDICDKNO, CSEBCDICDKNOA, CSEBCDICES, CSEBCDICESA, CSEBCDICESS, CSEBCDICFISE, CSEBCDICFISEA, CSEBCDICFR, CSEBCDICIT, CSEBCDICPT, CSEBCDICUK, CSEBCDICUS, CSEUCKR, CSEUCPKDFMTJAPANESE, CSGB2312, CSHPROMAN8, CSIBM037, CSIBM038, CSIBM273, CSIBM274, CSIBM275, CSIBM277, CSIBM278, CSIBM280, CSIBM281, CSIBM284, CSIBM285, CSIBM290, CSIBM297, CSIBM420, CSIBM423, CSIBM424, CSIBM500, CSIBM803, CSIBM851, CSIBM855, CSIBM856, CSIBM857, CSIBM860, CSIBM863, CSIBM864, CSIBM865, CSIBM866, CSIBM868, CSIBM869, CSIBM870, CSIBM871, CSIBM880, CSIBM891, CSIBM901, CSIBM902, CSIBM903, CSIBM904, CSIBM905, CSIBM918, CSIBM921, CSIBM922, CSIBM930, CSIBM932, CSIBM933, CSIBM935, CSIBM937, CSIBM939, CSIBM943, CSIBM1008, CSIBM1025, CSIBM1026, CSIBM1097, CSIBM1112, CSIBM1122, CSIBM1123, CSIBM1124, CSIBM1129, CSIBM1130, CSIBM1132, CSIBM1133, CSIBM1137, CSIBM1140, CSIBM1141, CSIBM1142, CSIBM1143, CSIBM1144, CSIBM1145, CSIBM1146, CSIBM1147, CSIBM1148, CSIBM1149, CSIBM1153, CSIBM1154, CSIBM1155, CSIBM1156, CSIBM1157, CSIBM1158, CSIBM1160, CSIBM1161, CSIBM1163, CSIBM1164, CSIBM1166, CSIBM1167, CSIBM1364, CSIBM1371, CSIBM1388, CSIBM1390, CSIBM1399, CSIBM4517, CSIBM4899, CSIBM4909, CSIBM4971, CSIBM5347, CSIBM9030, CSIBM9066, CSIBM9448, CSIBM12712, CSIBM16804, CSIBM11621162, CSISO4UNITEDKINGDOM, CSISO10SWEDISH, CSISO11SWEDISHFORNAMES, CSISO14JISC6220RO, CSISO15ITALIAN, CSISO16PORTUGESE, CSISO17SPANISH, CSISO18GREEK7OLD, CSISO19LATINGREEK, CSISO21GERMAN, CSISO25FRENCH, CSISO27LATINGREEK1, CSISO49INIS, CSISO50INIS8, CSISO51INISCYRILLIC, CSISO58GB1988, CSISO60DANISHNORWEGIAN, CSISO60NORWEGIAN1, CSISO61NORWEGIAN2, CSISO69FRENCH, CSISO84PORTUGUESE2, CSISO85SPANISH2, CSISO86HUNGARIAN, CSISO88GREEK7, CSISO89ASMO449, CSISO90, CSISO92JISC62991984B, CSISO99NAPLPS, CSISO103T618BIT, CSISO111ECMACYRILLIC, CSISO121CANADIAN1, CSISO122CANADIAN2, CSISO139CSN369103, CSISO141JUSIB1002, CSISO143IECP271, CSISO150, CSISO150GREEKCCITT, CSISO151CUBA, CSISO153GOST1976874, CSISO646DANISH, CSISO2022CN, CSISO2022JP, CSISO2022JP2, CSISO2022KR, CSISO2033, CSISO5427CYRILLIC, CSISO5427CYRILLIC1981, CSISO5428GREEK, CSISO10367BOX, CSISOLATIN1, CSISOLATIN2, CSISOLATIN3, CSISOLATIN4, CSISOLATIN5, CSISOLATIN6, CSISOLATINARABIC, CSISOLATINCYRILLIC, CSISOLATINGREEK, CSISOLATINHEBREW, CSKOI8R, CSKSC5636, CSMACINTOSH, CSNATSDANO, CSNATSSEFI, CSN_369103, CSPC8CODEPAGE437, CSPC775BALTIC, CSPC850MULTILINGUAL, CSPC862LATINHEBREW, CSPCP852, CSSHIFTJIS, CSUCS4, CSUNICODE, CSWINDOWS31J, CUBA, CWI-2, CWI, CYRILLIC, DE, DEC-MCS, DEC, DECMCS, DIN_66003, DK, DS2089, DS_2089, E13B, EBCDIC-AT-DE-A, EBCDIC-AT-DE, EBCDIC-BE, EBCDIC-BR, EBCDIC-CA-FR, EBCDIC-CP-AR1, EBCDIC-CP-AR2, EBCDIC-CP-BE, EBCDIC-CP-CA, EBCDIC-CP-CH, EBCDIC-CP-DK, EBCDIC-CP-ES, EBCDIC-CP-FI, EBCDIC-CP-FR, EBCDIC-CP-GB, EBCDIC-CP-GR, EBCDIC-CP-HE, EBCDIC-CP-IS, EBCDIC-CP-IT, EBCDIC-CP-NL, EBCDIC-CP-NO, EBCDIC-CP-ROECE, EBCDIC-CP-SE, EBCDIC-CP-TR, EBCDIC-CP-US, EBCDIC-CP-WT, EBCDIC-CP-YU, EBCDIC-CYRILLIC, EBCDIC-DK-NO-A, EBCDIC-DK-NO, EBCDIC-ES-A, EBCDIC-ES-S, EBCDIC-ES, EBCDIC-FI-SE-A, EBCDIC-FI-SE, EBCDIC-FR, EBCDIC-GREEK, EBCDIC-INT, EBCDIC-INT1, EBCDIC-IS-FRISS, EBCDIC-IT, EBCDIC-JP-E, EBCDIC-JP-KANA, EBCDIC-PT, EBCDIC-UK, EBCDIC-US, EBCDICATDE, EBCDICATDEA, EBCDICCAFR, EBCDICDKNO, EBCDICDKNOA, EBCDICES, EBCDICESA, EBCDICESS, EBCDICFISE, EBCDICFISEA, EBCDICFR, EBCDICISFRISS, EBCDICIT, EBCDICPT, EBCDICUK, EBCDICUS, ECMA-114, ECMA-118, ECMA-128, ECMA-CYRILLIC, ECMACYRILLIC, ELOT_928, ES, ES2, EUC-CN, EUC-JISX0213, EUC-JP-MS, EUC-JP, EUC-KR, EUC-TW, EUCCN, EUCJP-MS, EUCJP-OPEN, EUCJP-WIN, EUCJP, EUCKR, EUCTW, FI, FR, GB, GB2312, GB13000, GB18030, GBK, GB_1988-80, GB_198880, GEORGIAN-ACADEMY, GEORGIAN-PS, GOST_19768-74, GOST_19768, GOST_1976874, GREEK-CCITT, GREEK, GREEK7-OLD, GREEK7, GREEK7OLD, GREEK8, GREEKCCITT, HEBREW, HP-GREEK8, HP-ROMAN8, HP-ROMAN9, HP-THAI8, HP-TURKISH8, HPGREEK8, HPROMAN8, HPROMAN9, HPTHAI8, HPTURKISH8, HU, IBM-803, IBM-856, IBM-901, IBM-902, IBM-921, IBM-922, IBM-930, IBM-932, IBM-933, IBM-935, IBM-937, IBM-939, IBM-943, IBM-1008, IBM-1025, IBM-1046, IBM-1047, IBM-1097, IBM-1112, IBM-1122, IBM-1123, IBM-1124, IBM-1129, IBM-1130, IBM-1132, IBM-1133, IBM-1137, IBM-1140, IBM-1141, IBM-1142, IBM-1143, IBM-1144, IBM-1145, IBM-1146, IBM-1147, IBM-1148, IBM-1149, IBM-1153, IBM-1154, IBM-1155, IBM-1156, IBM-1157, IBM-1158, IBM-1160, IBM-1161, IBM-1162, IBM-1163, IBM-1164, IBM-1166, IBM-1167, IBM-1364, IBM-1371, IBM-1388, IBM-1390, IBM-1399, IBM-4517, IBM-4899, IBM-4909, IBM-4971, IBM-5347, IBM-9030, IBM-9066, IBM-9448, IBM-12712, IBM-16804, IBM037, IBM038, IBM256, IBM273, IBM274, IBM275, IBM277, IBM278, IBM280, IBM281, IBM284, IBM285, IBM290, IBM297, IBM367, IBM420, IBM423, IBM424, IBM437, IBM500, IBM775, IBM803, IBM813, IBM819, IBM848, IBM850, IBM851, IBM852, IBM855, IBM856, IBM857, IBM860, IBM861, IBM862, IBM863, IBM864, IBM865, IBM866, IBM866NAV, IBM868, IBM869, IBM870, IBM871, IBM874, IBM875, IBM880, IBM891, IBM901, IBM902, IBM903, IBM904, IBM905, IBM912, IBM915, IBM916, IBM918, IBM920, IBM921, IBM922, IBM930, IBM932, IBM933, IBM935, IBM937, IBM939, IBM943, IBM1004, IBM1008, IBM1025, IBM1026, IBM1046, IBM1047, IBM1089, IBM1097, IBM1112, IBM1122, IBM1123, IBM1124, IBM1129, IBM1130, IBM1132, IBM1133, IBM1137, IBM1140, IBM1141, IBM1142, IBM1143, IBM1144, IBM1145, IBM1146, IBM1147, IBM1148, IBM1149, IBM1153, IBM1154, IBM1155, IBM1156, IBM1157, IBM1158, IBM1160, IBM1161, IBM1162, IBM1163, IBM1164, IBM1166, IBM1167, IBM1364, IBM1371, IBM1388, IBM1390, IBM1399, IBM4517, IBM4899, IBM4909, IBM4971, IBM5347, IBM9030, IBM9066, IBM9448, IBM12712, IBM16804, IEC_P27-1, IEC_P271, INIS-8, INIS-CYRILLIC, INIS, INIS8, INISCYRILLIC, ISIRI-3342, ISIRI3342, ISO-2022-CN-EXT, ISO-2022-CN, ISO-2022-JP-2, ISO-2022-JP-3, ISO-2022-JP, ISO-2022-KR, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-9E, ISO-8859-10, ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16, ISO-10646-UCS-2, ISO-10646, ISO-10646/UCS2, ISO-10646/UCS4, ISO-10646/UTF-8, ISO-10646/UTF8, ISO-CELTIC, ISO-IR-4, ISO-IR-6, ISO-IR-8-1, ISO-IR-9-1, ISO-IR-10, ISO-IR-11, ISO-IR-14, ISO-IR-15, ISO-IR-16, ISO-IR-17, ISO-IR-18, ISO-IR-19, ISO-IR-21, ISO-IR-25, ISO-IR-27, ISO-IR-37, ISO-IR-49, ISO-IR-50, ISO-IR-51, ISO-IR-54, ISO-IR-55, ISO-IR-57, ISO-IR-60, ISO-IR-61, ISO-IR-69, ISO-IR-84, ISO-IR-85, ISO-IR-86, ISO-IR-88, ISO-IR-89, ISO-IR-90, ISO-IR-92, ISO-IR-98, ISO-IR-99, ISO-IR-100, ISO-IR-101, ISO-IR-103, ISO-IR-109, ISO-IR-110, ISO-IR-111, ISO-IR-121, ISO-IR-122, ISO-IR-126, ISO-IR-127, ISO-IR-138, ISO-IR-139, ISO-IR-141, ISO-IR-143, ISO-IR-144, ISO-IR-148, ISO-IR-150, ISO-IR-151, ISO-IR-153, ISO-IR-155, ISO-IR-156, ISO-IR-157, ISO-IR-166, ISO-IR-179, ISO-IR-193, ISO-IR-197, ISO-IR-199, ISO-IR-203, ISO-IR-209, ISO-IR-226, ISO/TR_11548-1, ISO646-CA, ISO646-CA2, ISO646-CN, ISO646-CU, ISO646-DE, ISO646-DK, ISO646-ES, ISO646-ES2, ISO646-FI, ISO646-FR, ISO646-FR1, ISO646-GB, ISO646-HU, ISO646-IT, ISO646-JP-OCR-B, ISO646-JP, ISO646-KR, ISO646-NO, ISO646-NO2, ISO646-PT, ISO646-PT2, ISO646-SE, ISO646-SE2, ISO646-US, ISO646-YU, ISO2022CN, ISO2022CNEXT, ISO2022JP, ISO2022JP2, ISO2022KR, ISO6937, ISO8859-1, ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5, ISO8859-6, ISO8859-7, ISO8859-8, ISO8859-9, ISO8859-9E, ISO8859-10, ISO8859-11, ISO8859-13, ISO8859-14, ISO8859-15, ISO8859-16, ISO11548-1, ISO88591, ISO88592, ISO88593, ISO88594, ISO88595, ISO88596, ISO88597, ISO88598, ISO88599, ISO88599E, ISO885910, ISO885911, ISO885913, ISO885914, ISO885915, ISO885916, ISO_646.IRV:1991, ISO_2033-1983, ISO_2033, ISO_5427-EXT, ISO_5427, ISO_5427:1981, ISO_5427EXT, ISO_5428, ISO_5428:1980, ISO_6937-2, ISO_6937-2:1983, ISO_6937, ISO_6937:1992, ISO_8859-1, ISO_8859-1:1987, ISO_8859-2, ISO_8859-2:1987, ISO_8859-3, ISO_8859-3:1988, ISO_8859-4, ISO_8859-4:1988, ISO_8859-5, ISO_8859-5:1988, ISO_8859-6, ISO_8859-6:1987, ISO_8859-7, ISO_8859-7:1987, ISO_8859-7:2003, ISO_8859-8, ISO_8859-8:1988, ISO_8859-9, ISO_8859-9:1989, ISO_8859-9E, ISO_8859-10, ISO_8859-10:1992, ISO_8859-14, ISO_8859-14:1998, ISO_8859-15, ISO_8859-15:1998, ISO_8859-16, ISO_8859-16:2001, ISO_9036, ISO_10367-BOX, ISO_10367BOX, ISO_11548-1, ISO_69372, IT, JIS_C6220-1969-RO, JIS_C6229-1984-B, JIS_C62201969RO, JIS_C62291984B, JOHAB, JP-OCR-B, JP, JS, JUS_I.B1.002, KOI-7, KOI-8, KOI8-R, KOI8-RU, KOI8-T, KOI8-U, KOI8, KOI8R, KOI8U, KSC5636, L1, L2, L3, L4, L5, L6, L7, L8, L10, LATIN-9, LATIN-GREEK-1, LATIN-GREEK, LATIN1, LATIN2, LATIN3, LATIN4, LATIN5, LATIN6, LATIN7, LATIN8, LATIN9, LATIN10, LATINGREEK, LATINGREEK1, MAC-CENTRALEUROPE, MAC-CYRILLIC, MAC-IS, MAC-SAMI, MAC-UK, MAC, MACCYRILLIC, MACINTOSH, MACIS, MACUK, MACUKRAINIAN, MIK, MS-ANSI, MS-ARAB, MS-CYRL, MS-EE, MS-GREEK, MS-HEBR, MS-MAC-CYRILLIC, MS-TURK, MS932, MS936, MSCP949, MSCP1361, MSMACCYRILLIC, MSZ_7795.3, MS_KANJI, NAPLPS, NATS-DANO, NATS-SEFI, NATSDANO, NATSSEFI, NC_NC0010, NC_NC00-10, NC_NC00-10:81, NF_Z_62-010, NF_Z_62-010_(1973), NF_Z_62-010_1973, NF_Z_62010, NF_Z_62010_1973, NO, NO2, NS_4551-1, NS_4551-2, NS_45511, NS_45512, OS2LATIN1, OSF00010001, OSF00010002, OSF00010003, OSF00010004, OSF00010005, OSF00010006, OSF00010007, OSF00010008, OSF00010009, OSF0001000A, OSF00010020, OSF00010100, OSF00010101, OSF00010102, OSF00010104, OSF00010105, OSF00010106, OSF00030010, OSF0004000A, OSF0005000A, OSF05010001, OSF100201A4, OSF100201A8, OSF100201B5, OSF100201F4, OSF100203B5, OSF1002011C, OSF1002011D, OSF1002035D, OSF1002035E, OSF1002035F, OSF1002036B, OSF1002037B, OSF10010001, OSF10010004, OSF10010006, OSF10020025, OSF10020111, OSF10020115, OSF10020116, OSF10020118, OSF10020122, OSF10020129, OSF10020352, OSF10020354, OSF10020357, OSF10020359, OSF10020360, OSF10020364, OSF10020365, OSF10020366, OSF10020367, OSF10020370, OSF10020387, OSF10020388, OSF10020396, OSF10020402, OSF10020417, PT, PT2, PT154, R8, R9, RK1048, ROMAN8, ROMAN9, RUSCII, SE, SE2, SEN_850200_B, SEN_850200_C, SHIFT-JIS, SHIFT_JIS, SHIFT_JISX0213, SJIS-OPEN, SJIS-WIN, SJIS, SS636127, STRK1048-2002, ST_SEV_358-88, T.61-8BIT, T.61, T.618BIT, TCVN-5712, TCVN, TCVN5712-1, TCVN5712-1:1993, THAI8, TIS-620, TIS620-0, TIS620.2529-1, TIS620.2533-0, TIS620, TS-5881, TSCII, TURKISH8, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UCS2, UCS4, UHC, UJIS, UK, UNICODE, UNICODEBIG, UNICODELITTLE, US-ASCII, US, UTF-7, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF7, UTF8, UTF16, UTF16BE, UTF16LE, UTF32, UTF32BE, UTF32LE, VISCII, WCHAR_T, WIN-SAMI-2, WINBALTRIM, WINDOWS-31J, WINDOWS-874, WINDOWS-936, WINDOWS-1250, WINDOWS-1251, WINDOWS-1252, WINDOWS-1253, WINDOWS-1254, WINDOWS-1255, WINDOWS-1256, WINDOWS-1257, WINDOWS-1258, WINSAMI2, WS2, YU查看文件的编码格局> file -i rumenz.txtrumenz.txt: text/plain; charset=gbk将文件rumenz.txt转码,转后文件输入到rumenz123.txt中> iconv rumenz.txt -f GBK -t UTF-8 -o rumenz123.txt没-o那么会输入到规范输入原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

April 15, 2022 · 6 min · jiezi

关于linux:技术分享-你通常选用什么工具在-Linux-中进行数据传输

作者:刘开洋 爱可生交付服务团队北京 DBA,对数据库及周边技术有浓重的学习趣味,喜爱看书,谋求技术。 本文起源:原创投稿 *爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。 1、问题前几天跟客户聊天,埋怨服务器之前的数据传输工具不好用,问我哪种传输工具效率高?还真被问住了,毕竟没通过实际嘛,明天就测试下。 有点粗率得搜寻了下,不过工具还不少。 数据传输工具: ftp sftp scp rsync tftp 2、筹备工作刨除网络带宽等其余因素,咱们就 Linux 服务器之间传输文件做个比照,看看到底什么工具才是最快、最适宜我的场景的。 咱们就下面这些传输工具在文件理论大小和文件数量多少的档次上别离做个比照速度和简便性比照: 首先筹备环境,配置两个机器ssh互信,创立两个文件夹,以不同的形式创立一个50G左右的大文件和51200个1M的小文件: # 制作50G大文件[root@yang-01 big]# fallocate -l 50G 50g_file[root@yang-01 big]# lltotal 52428856-rw-r--r-- 1 root root 53687091200 Apr 10 17:55 50g_file[root@yang-01 big]# du -sh *51G 50g_file # 制作51200个1M文件[root@yang-01 many]# seq 51200 | xargs -i dd if=/dev/zero of=1m_file{} bs=1M count=11+0 records in1+0 records out1048576 bytes (1.0 MB) copied, 0.00468854 s, 224 MB/s······[root@yang-01 many]# ls | wc -l51200[root@yang-01 test]# du -sh many51G many小提示:这里采纳了两种形式制作大文件,大家能够参考应用,生成文件的确是50G,字节数与之对应,至于为什么du工具计算出来是51G,这里并不是计算机1024与1000的数值换算的起因,而是因为du命令计算的是该文件累计应用到文件系统的总块数,可能呈现应用的局部块空间占用并不残缺的状况,导致数值偏大。 ...

April 15, 2022 · 4 min · jiezi

关于linux:linux之dos2unix命令

将DOS格局文本文件转换成Unix格局,dos2unix命令 用来将DOS格局的文本文件转换成UNIX格局的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标记的,示意成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标记的,示意成十六进制就是0A。DOS格局的文本文件在Linux底下,用较低版本的vi关上时行尾会显示^M,而且很多命令都无奈很好的解决这种格局的文件,如果是个shell脚本,。而Unix格局的文本文件在Windows下用Notepad关上时会拼在一起显示。因而产生了两种格式文件互相转换的需要,对应的将UNIX格局文本文件转成成DOS格局的是unix2dos命令。命令装置Fedora、CentOS 等 Linux 发行版的装置命令> yum install dos2unix -yDebian、Ubuntu 等发行版的装置命令为> sudo apt-get install dos2unix -y命令语法dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...] 命令选项-k:放弃输入文件的日期不变-q:宁静模式,不提醒任何正告信息。-V:查看版本-c:转换模式,模式有:ASCII, 7bit, ISO, Mac, 默认是:ASCII。-o:写入到源文件-n:写入到新文件命令参数须要转换到文件dos2unix间接跟上文件名> dos2unix file如果一次转换多个文件,把这些文件名间接跟在dos2unix之后。(注:也能够加上-o参数,也能够不加,成果一样)> dos2unix file1 file2 file3> dos2unix -o file1 file2 file3下面在转换时,都会间接在原来的文件上批改,如果想把转换的后果保留在别的文件,而源文件不变,则能够应用-n参数。> dos2unix -n oldfile newfile如果要放弃文件工夫戳不变,加上-k参数。所以下面几条命令都是能够加上-k参数来放弃文件工夫戳的。> dos2unix -k file> dos2unix -k file1 file2 file3> dos2unix -k -o file1 file2 file3> dos2unix -k -n oldfile newfile转换当前目录下所有文件> find -type f | xargs dos2unix原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

April 14, 2022 · 1 min · jiezi

关于linux:开篇词欢迎来到系统厨房

你好,欢送来到我的厨房。 我是 Anakin,一名操作系统工程师,曾先后就任于华为和腾讯的 Linux 发行版研发团队,参加过 openEuler 和 openCloudOS 两大国产发行版社区的创立工作,同时也是一名开源文化爱好者。 正如名字所说,这儿并不是一个一般的厨房,咱们要学习的不是烹饪食材,而是如何创立一个操作系统,兴许你很快就会发现,这两者有着殊途同归之处。 做开源操作系统就像开一家餐厅,首先要明确餐厅的定位,是做西餐、中餐还是日料,也就是说要面向服务器市场、嵌入式市场还是桌面市场,面向不同的市场,意味着要提供的菜肴(软件包)的品种和数量都齐全不一样。 明确了餐厅的定位,也就明确了要做哪些菜,而做出可口饭菜的第一步也是最重要的一步,是选取优质的食材(开源软件选型),咱们要抉择的供应商(上游社区)肯定是口碑好的、服务好的(品质过硬、社区沉闷),能力确保做出的菜能满足客户的要求。但仅有食材是不够的,咱们还要为每种食材编制菜谱(编写 Spec 文件),将它们烹制为可口的菜肴(构建),客户不须要感知烹饪(构建、配环境、解决简单的软件包依赖关系)的过程,只需点菜(装置)和品味(运行)即可。 制作 RPM 包,俗称打包,是指编译并捆绑软件与元数据(例如软件全名、形容、失常运行所需的依赖列表等等)的工作,目标是让软件使用者能够通过包管理器简略地装置、删除或者降级他们所应用的软件。 要成为一名优良的零碎工程师,就像成为一名顶级大厨,任何大厨成长的第一步肯定不是上手学做菜,而是要相熟、辨认各类食材,可能纯熟的洗菜、切菜,把握各类菜式的品性。同样,打包也是零碎工程师的基本功,学习打包的过程就是学习筛选食材、解决食材的过程,这一过程是简短繁琐却又无奈绕过的,只有这样能力逐步理解食材的特点、造就做菜的品尝(把握开源软件的选型、构建、装置、配置、依赖关系解决),烹制出真正的美味。 为什么要写这样一个专栏呢?因为时至今日,国内操作系统和根底软件相干的人才仍然很单薄: 尽管国内程序员的数量一劳永逸,但大多集中在前端、Java/Go、人工智能等热门畛域,懂根底软件和操作系统的程序员仍然是多数;尽管大学里的计算机专业很热门,操作系统也是必修课,但课程内容通常局限于讲授理论知识,这些理论知识也集中在内核(kernel)层面,没有一门课程教给学生如何去构建一个残缺的操作系统,Ubuntu、Fedora、SUSE 等国外支流发行版仍然是最风行的。在这个专栏,我将分享对于构建一个 Linux 发行版的所有内容,包含但不限于打包、构建、许可证、破绽治理、生命周期、版本路线等常识。这些常识间接来自于我在华为和腾讯的实际所学,我自己也在致力成为更好零碎工程师的路线上,所学无限,旨在为中国操作系统人才培养奉献一点绵薄之力,欢迎批评和倡议。 如果你筹备好了,就请走进零碎厨房,和我一起,烹饪最美味的 OS 发行版吧!

April 14, 2022 · 1 min · jiezi

关于linux:Linux下将与外接显示器连接的音箱设为声源输出设备

首先装置 PulseAudio 这个音频服务 只需装置 pulseaudio-module-raop 即可 sudo apt install pulseaudio-module-raop另一个用到的 pulseaudio-module-zeroconf 会随之主动装置 接着运行加载这个模块 pacmd load-module module-raop-discover或者把上面这条加到 /etc/pulse/default.pa 里,会主动加载 load-module module-raop-discover而后重启下运行pulseaudio -k,因为当初的零碎上这些都是主动运行的,所以杀掉后会主动启动 留神这是在 /etc/pulse/default.pa 配置改变后主动运行的,若你未配置相干文件就得再输出一次pacmd load-module module-raop-discover 下一步,输出 pacmd list-cards失去一大堆信息,若是从中看到: index: 0active profile:便在 /etc/pulse/default.pa 开端里增加: set-card-profile 0 output:hdmi-stereo+input:analog-stereoset-default-sink 0重启零碎,胜利

April 14, 2022 · 1 min · jiezi

关于linux:linux之chroot命令

把根目录换成指定的目标目录补充阐明chroot 命令 用来在指定的根目录下运行指令。chroot,即 change root directory (更改 root 目录)。在 linux 零碎中,零碎默认的目录构造都是以/,即是以根 (root) 开始的。而在应用 chroot 之后,零碎的目录构造将以指定的地位作为/地位。 在通过 chroot 命令之后,零碎读取到的目录和文件将不在是旧零碎根下的而是新根下(即被指定的新的地位)的目录构造和文件,因而它带来的益处大抵有以下 3 个: 减少了零碎的安全性,限度了用户的势力: 在通过 chroot 之后,在新根下将拜访不到旧零碎的根目录构造和文件,这样就加强了零碎的安全性。这个个别是在登录 (login) 前应用 chroot,以此达到用户不能拜访一些特定的文件。 建设一个与原零碎隔离的系统目录构造,不便用户的开发: 应用 chroot 后,零碎读取的是新根下的目录和文件,这是一个与原零碎根下文件不相干的目录构造。在这个新的环境中,能够用来测试软件的动态编译以及一些与零碎不相干的独立开发。 切换零碎的根目录地位,疏导 Linux 系统启动以及急救零碎等: chroot 的作用就是切换零碎的根地位,而这个作用最为显著的是在零碎初始疏导磁盘的处理过程中应用,从初始 RAM 磁盘 (initrd) 切换零碎的根地位并执行真正的 init。另外,当零碎呈现一些问题时,咱们也能够应用 chroot 来切换到一个长期的零碎。命令格局> chroot(选项)(参数)命令选项--help:在线帮忙;--version:显示版本信息。命令参数目录:指定新的根目录;指令:指定要执行的指令。实例将 target 作为根目录(运行其中的/bin/sh): chroot target /bin/sh这里, target 是 busybox 装置好的门路,相似一个文件系统蕴含了许多工具。这样,将会进入一个 shell 界面,这个 shell 以 target 为根。运行 exit 退出该 shell 又返回原来的本机环境了,也能够应用 Ctrl+D。 留神: 根用户才行如果间接 chroot target 默认寻找 target 的 / bin/bash. 这会以 target 作为根目录将 target 作为根目录 (运行其中的/bin/ls):chroot target /bin/ls这里,target 是 busybox 装置好的门路,相似一个文件系统蕴含了许多工具。这样运行的是 target 中的 ls(不是本机的/bin/ls),而后返回立刻本机的目录环境。 ...

April 13, 2022 · 1 min · jiezi