跳转到内容

常用命令

centos

离线依赖包yum

yum下载依赖包

perl
yum install --downloadonly --downloaddir=./package <package name>-<version info>

yum install conntrack-tools --downloadonly --downloaddir=./conntrack-tools
yum install vim --downloadonly --downloaddir=./vim
yum install socat --downloadonly --downloaddir=./socat
yum install git --downloadonly --downloaddir=./git
yum install ansible --downloadonly --downloaddir=./ansible
yum install python-argcomplete --downloadonly --downloaddir=./python-argcomplete
yum install python3 --downloadonly --downloaddir=./python3
yum install git --downloadonly --downloaddir=./git
yum install pciutils --downloadonly --downloaddir=./pciutils
yum install kernel-devel --downloadonly --downloaddir=./kernel-devel
yum install kernel-headers --downloadonly --downloaddir=./kernel-headers
yum groupinstall Development Tools --downloadonly --downloaddir=./Development Tools
yum install dkms --downloadonly --downloaddir=./dkms
yum install rsync --downloadonly --downloaddir=./sync
dkms


# 例如 : yum install --downloadonly --downloaddir=/home/ffmpeg ffmpeg
# 使用 :
# 查看可以安装的版本
yum list docker-ce-cli --showduplicates | sort -r

yum install --downloadonly --downloaddir=./dependency docker-ce-20.10.11-3.el7 docker-ce-cli-20.10.11-3.el7 containerd.io-1.4.12-3.1.el7

rpm -Uvh *.rpm --force
rpm -ivh *.rpm --force
# rpm安装包
rpm -Uvh --force --nodeps *.rpm
systemctl stop firewalld && systemctl disable firewalld


yum install --downloadonly --downloaddir=./dependency java-1.8.0-openjdk.aarch64-1.8.0.322.b06-1.el7_9

ubuntu

shell
apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends iputils-ping | grep -v i386 | grep "^\w")


dpkg -i *.deb

grep查询

grep命令查询当前目录文件中的字段

bash
grep -rn "Hello" ./

ssh免密登陆

SSH 三步解决免密登录

perl
# 客户端生成公私钥
ssh-keygen
# 上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.127.66

yq和rsync使用

使用yq解析yaml文件,并使用bash脚本进行备份(未完成)

yaml
## 配置需要备份的远程服务器目录 backup_config.yaml
backup66:
  server: 192.168.127.66
  directories:
    - /home/echo/clash/docker-compose.yaml
    - /home/echo/dns/docker-compose.yaml
    - /home/echo/openwrt/docker-compose.yaml
    - /home/echo/prometheus/docker-compose.yaml
    - /home/echo/webstack
backup77:
  server: 192.168.127.77
  directories:
    - /home/minikube
perl6
#!/bin/bash

# 判断是否引入yq命令
if ! command -v yq &> /dev/null
then
    # 安装yq
    wget https://github.com/mikefarah/yq/releases/download/v4.32.2/yq_linux_amd64 -O /usr/bin/yq && chmod +x /usr/bin/yq
fi

backserver=$(yq eval 'keys' backup_config.yaml)
echo $backserver

for i in $

backup=$(yq eval '.backup66.directories[]' backup_config.yaml)
echo $backup

使用另外一种配置文件配置 backup_config.yaml

yaml
192.168.208.66:/home/project
192.168.208.77:/home/minikube
shell
#!/bin/bash

localdir=/data/backup
user=root

[ -d ${localdir} ] || mkdir -p ${localdir}

# rsync -avz 192.168.100.111@/home/project/ /data/backup/192.168.100.111/home/project/ --exclude="*.jar" --exclude="html/" --delete
# rsync -avz 192.168.100.111@/home/service/ /data/backup/192.168.100.111/home/service/ --delete
# rsync -avz -e ssh ${user}@$backup ${localdir} --delete

for backup in $(cat backup_config.yaml);
do
  origin_server=${backup%:*}
  origin_directory=${backup#*:}

  echo $user@${backup}/ ${localdir}/${origin_server}${origin_directory}
  [ -d ${localdir}/${origin_server}${origin_directory} ] || mkdir -p ${localdir}/${origin_server}${origin_directory}
  rsync -avz -e ssh $user@$backup/ ${localdir}/${origin_server}${origin_directory} --exclude={'test*','*.log'} --delete
done

#rsync -avz -e ssh root@192.168.208.66:/home/project/ ${localdir}/192.168.208.66/home/project --delete

rsync配置

Linux 定时执行shell 脚本

bash
# 开机启动
vim /etc/rc.d/rc.local 中增加

crontab –e     # 修改 crontab 文件,如果文件不存在会自动创建。
crontab -l     # 显示 crontab 文件。
crontab -r     # 删除 crontab 文件。
crontab -ir    # 删除 crontab 文件前提醒用户。


service crond status     # 查看crontab服务状态
service crond start      # 启动服务
service crond stop       # 关闭服务
service crond restart    # 重启服务
service crond reload     # 重新载入配置

# 基本格式
*  *  *  *  *  command
#分  时  日  月  周   命令

*       #代表任何时间,比如第一个 * 就代表一小时中的每分钟都执行
,       #代表不连续的时间,比如 0 8,12,16 * * * 代表每天8,12,16点0分执行
-       #代表连续的时间范围,比如0 5 * * 1-6 代表在周一到周六凌晨5点0分执行
*/n     #代表每个多久执行一次,比如*/10 * * * *代表每隔10分钟执行一次

sed替换

bash
sed -i 's/foo/bar/g' myfile
sed -i '/menuId/s/menuId.*/menuId: '"'1496064785844805633'"'/g' src/qiankunSub/index.js

zip unzip解压多个文件

bash
ls *.zip | xargs -n1 unzip

7z 解压

bash
7z x

查看目录下的磁盘占用量

bash
du -h --max-depth=1 | sort -h

从任意行读取文件

bash
cat list| awk 'NR>2' | while read platform  NO1  NO2
do
    echo $NO1"   "$NO2
done
#NR>2  表示从第三行读取

centos7安装额外的软件包

bash
# 第一种方式
yum install epel-release
# 第二种方式
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
ls *.rpm
yum install epel-release-latest-7.noarch.rpm
yum repolist

docker查看服务使用磁盘空间

bash
docker ps -a -s | awk '{print $(NF-3),$(NF-2)}' | grep GB

通过pid查看对应docker服务

bash
 docker ps -q | xargs docker inspect --format '{{.State.Pid}} {{.Name}}' | grep "13030"

查看硬盘uuid

lsblk

# 启动自动挂载硬盘
使用uuid   uuid=""

查看用户组内成员

sh
getent group docker | cut -d: -f4

将两个执行文件统一成一个安装包的方法

  1. 把程序的压缩包准备好即可,假设名为myfile.tar.gz
  2. 制作安装包
bash
cat run.sh myfile.tar.gz > myinstaller-linux-aarch64.run 例如:cat run.sh goployService.tar.gz > goploy-linux-x86_64.run
cat run.sh goployService.tar.gz > goploy-linux-aarch64.run
  1. 执行方法
sudo chmod +x myinstaller-linux-aarch64.run
sudo ./myinstaller-linux-aarch64.run

对tar.gz文件进行切割和合并及md5校验

bash
# 分割并生成 MD5 校验文件
file_name=501_v8.18.0.tar.gz
split -b 4G -d -a 3 ${file_name} ${file_name}.part_
md5sum ${file_name}.part_* > checksums.md5
# 传输后,在合并前先校验
md5sum -c checksums.md5 --quiet
cat ${file_name}.part_* > ${file_name}

基于 MIT 许可发布