
Linux
shida_csdn
Keep Running ...
展开
-
Shell: 基于 nsenter 批量配置 Pod 容器的 iptables 规则
注意 nsenter 需要配置 EOF 完成标准输入,范式如下:nsenter -t $pid -n bash <<EOFsomething run in container namespaceexitEOF例如,给容器批量设置 iptables 规则的写法,如下:for id in $(docker ps | grep k8s_POD | awk '{print $1}')do pid=$(docker inspect $id -f '{{.State.Pid}}')原创 2021-07-22 23:24:24 · 632 阅读 · 0 评论 -
CentOS 7 环境下升级 curl 7.29.0 到更高版本(源码编译)
CentOS 7 默认的 curl 版本最新就到 7.29,如果要使用更新版本的 curl,可以通过源码编译方式手动安装:yum install wget gcc openssl-devel -ywget https://curl.haxx.se/download/curl-7.67.0.tar.gzgunzip -c curl-7.67.0.tar.gz | tar xvf -cd curl-7.67.0./configure --with-ssl --prefix=/usr/local/cur原创 2021-06-10 17:51:12 · 4736 阅读 · 0 评论 -
Shell 脚本判断命令是否存在
方案一#!/usr/bin/env bashif which sha1sum >/dev/null 2>&1; then sha1sum="sha1sum"else sha1sum="shasum -a1"fi方案二#!/usr/bin/env bashif ! command -v docker >/dev/null 2>&1; then echo "not exists"fi原创 2020-09-05 11:11:20 · 2011 阅读 · 0 评论 -
Shell 小技巧 -- 原地更新终端输出信息 & 闪动效果 & 字体高亮
一、原地更新终端输出信息在使用 Linux 系统时会常常看到一些命令、程序脚本能够实时地刷新输出信息,而不是每次通过新的一行输出信息,这样我们就能够一方面动态地显示程序运行的进度,另一方面尽量地精简屏幕上的输出信息,从而使得我们对结果有更好的把握。要实现该功能,只需利用 \r 这个回车符即可。注意,Linux 环境下,回车的作用是将光标移到行首,而换行才是移到下一行。例子:#!/bin/bashfor i in {1..100}do printf "\rProcess: %3d" $i原创 2020-06-17 12:03:32 · 7953 阅读 · 2 评论 -
Linux 下的任务切换神器 Ctrl+Z
一、引言不知道各位有没有遇到过如下囧境:”正在开心地使用 vim 编辑文件,突然发现忘记复制某些内容,只能暂时保存退出,复制好后重新打开文件继续编辑,或者干脆再打开一个终端,搞得十分凌乱?”。那有没有一种不退出 vim 程序,又能自由切到终端上执行其他命令的方法呢?当然有啦,而且不止一种(比如在 vim 命令模式下输入 :!command,不过这并不是今天想要介绍的内容),今天我们就利用 Ctrl+Z 快捷键来实现。二、使用 Ctrl+Z 完成多任务切换在 Linux 系统中,按下 Ctrl+Z 实原创 2020-06-13 17:17:33 · 5540 阅读 · 0 评论 -
Proxmox 的 LXC上跑 Docker
Proxmox VE 6.1 基于 LXC 容器环境运行 Docker,配置步骤:1. LXC 容器不要开启特权模式,否则登陆可能会出现问题(测试时一直登陆失败);2. 生成 LXC 容器化虚拟机后,需要修改 /etc/pve/xxx.conf,追加如下内容:```shlxc.apparmor.profile: unconfinedlxc.cgroup.devices.allow: alxc.cap.drop:```保存配置后,重启 LXC 容器化虚拟机,就能在内部安装和使用原创 2020-05-13 15:06:24 · 5934 阅读 · 0 评论 -
使用 U 盘 安装 Proxmox VE 6.1
Proxmox VE 是基于 QEMU/KVM 和 LXC 的开源服务器虚拟化管理解决方案,可以使用集成的、易于使用的 Web 接口或 CLI 管理虚拟机、容器、集群、存储和网络。PVE 有方便易用的 WEB 界面,用户可通过网页的方式来管理服务器上使用 kvm 以及 lxc 技术运行的虚拟机。一、启动 U 盘准备 下载启动盘制作工具:https://rufus.ie/ 下载 Proxmox VE 6.1 ISO 镜像:https://www.proxmox.com/en...原创 2020-05-13 11:43:21 · 1433 阅读 · 0 评论 -
使用 crontab 进行程序保活
背景为了保证系统运行可靠,有时候需要对程序进行监测,当程序异常挂掉的时候能够自动快速拉起。在一些对时效性要求不那么高的场景下,使用 crontab 定时检查也是一个可选方案,本文分享一个简单的程序保活的方法。方法1. 首先,编写一个 shell 脚本,执行检查存活和程序拉起的逻辑:创建一个 check_alive.sh 文件,内容如下(你需要根据自己的需要修改逻辑):#!/bin/bas...原创 2020-02-22 23:59:42 · 1201 阅读 · 0 评论 -
shell 获取随机字符串(可指定长度)
# 1. use head to read first 16 Bytes from /dev/urandom# 2. use od to display data in hexadecimal format (do not display address offset)# 3. use tr to remove any extra spaces$ head -c 16 /dev/urand...原创 2019-10-20 22:49:00 · 1428 阅读 · 0 评论 -
使用 shell 列出 GitHub Pull Request 改变的文件(shell list PR changed files)
一、背景介绍 今天,折腾了下 circleci 自动化测试的东西,发现现存的 CI 脚本每次都是全量检查,效率很低。 由于每次提交的内容关联不大,没必要每次都检查所有文件,最佳方案是只检查变化的文件。 要获取 pull request 改变的文件,高级语言实现当然不难,但 shell 方案你知道如何编写吗?二、 获得 PR 更新文件列表...原创 2019-05-10 23:00:38 · 1033 阅读 · 0 评论 -
Bash 命令行显示 Git 分支名称
只需在 ~/.bashrc 最后追加如下内容:function git-branch-name { git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3}function git-branch-prompt { local branch=`git-branch-name` if [ $branch ]; then prin...原创 2019-02-26 13:15:24 · 4126 阅读 · 0 评论 -
Ubuntu 18.04 安装 vagrant & VirtualBox
在 Ubuntu 18.04 环境下,安装 vagrant 十分简单,只需执行以下命令: # apt install virtualbox -y# wget -c https://releases.hashicorp.com/vagrant/2.0.3/vagrant_2.0.3_x86_64.deb# dpkg -i vagrant_2.0.3_x86_64.deb# vagrant...原创 2018-11-09 17:28:55 · 3993 阅读 · 1 评论 -
硬链接与软连接
硬链接:简单说,文件名就是文件的硬链接,硬链接就是给文件起了个别名,对应的 inode 与原文件一样软链接:简单说,类似于快捷方式,它有自己单独的 inode,指向了被链接的文件(跟路径关联)画个图了解下:实验验证:创建一个文件,text.txt# cd test# touch test.txt# ls -al可以看到,硬链接数为 1# ln test...原创 2018-09-17 16:13:24 · 1550 阅读 · 0 评论