synchronization
Some checks failed
continuous-integration/drone Build is failing

This commit is contained in:
2025-08-25 15:57:40 +08:00
commit cee91802b3
106 changed files with 9124 additions and 0 deletions

113
Shell/README.md Normal file
View File

@@ -0,0 +1,113 @@
> 本文作者:丁辉
# 引用外部函数脚本
## 使用
**SHELL 脚本内加入**
```bash
#!/bin/bash
# 加载检测脚本
source <(curl -sS https://gitee.com/offends/Linux/raw/main/File/Shell/Check_command.sh)
```
## 函数介绍
| 函数 | 介绍 | 用法 |
| :--------------------: | :----------------------------------------------------------: | :------------------------------: |
| SEND_INFO | 输出绿色字体INFO信息 | SEND_INFO "你好" |
| SEND_WARN | 输出黄色字体WARN信息 | SEND_WARN "你好" |
| SEND_ERROR | 输出红色字体ERROR信息 | SEND_ERROR "你好" |
| GREEN_PRINTF | print输出绿色字体 | GREEN_PRINTF "你好" |
| FUNC_PRINT_SYSTEM_INFO | 打印系统信息(包含: 系统版本、内核版本、内存大小、处理器核数、处理器型号) | FUNC_PRINT_SYSTEM_INFO |
| CHECK_NETWORK | 检查服务器网络连接(没网则退出) | CHECK_NETWORK |
| CHECK_FILE | 检测文件是否存在 | CHECK_FILE "./demo.sh" |
| CHECK_FILES | 检测文件是否存在(多文件情况) | CHECK_FILES "all-*.rpm" |
| CHECK_DIR | 检测目录是否存在,不存在则创建 | CHECK_DIR "/root/demo" |
| CHECK_BIN | 检测固定位置的二进制文件是否存在(~禁用) | CHECK_BIN "/root/dmeo" |
| CHECK_COMMAND_TRUE | 检测命令是否执行正确,正确则输出$1,错误则输出$2并退出脚本 | CHECK_COMMAND_TRUE "正确" "错误" |
| CHECK_USER | 判断用户是否存在,不存在则创建 | CHECK_USER docker |
| CHECK_GROUP | 判断用户组是否存在,不存在则创建 | CHECK_GROUP docker |
| ADD_USER_GROUP | 用户加入组 | ADD_USER_GROUP docker docker |
| NULL_TRUE | 定义输出为空,并且失败不会退出脚本 | NULL_TRUE ls |
| NULL_TRUE_ECHO | 失败不会退出脚本,输出命令执行结果 | NULL_TRUE_ECHO ls |
| CHECK_COMMAND_NULL | 检测命令是否执行成功,不输出命令执行结果 | CHECK_COMMAND_NULL ls |
| CHECK_COMMAND_ECHO | 检测命令是否执行成功,输出命令执行结果 | CHECK_COMMAND_ECHO ls |
| CHECK_INSTALL | 检测网络安装软件(支持多参数) | CHECK_INSTALL wget git |
| CHECK_SYSTEMD | 检测某个systemd服务是否存在,不存在则退出 | CHECK_SYSTEMD docker |
## 其他参数
- **CHECK_CPU**
**用法**
```bash
#!/bin/bash
CHECK_CPU
```
**变量定义**
> 脚本会自动检测系统架构,并输出变量
>
> 例:
>
> 解释: 如果系统架构为 x86_64 则脚本会给 ARCH_TYPE_1 赋值为 x86_64,这时你可以直接引用 ARCH_TYPE_1 作为下载参数等动态变量
| 变量 | 参数 |
| :---------: | :---------------: |
| ARCH_TYPE_1 | x86_64 或 aarch64 |
| ARCH_TYPE_2 | amd64 或 arm64 |
- **CHECK_OS**
**检查服务器系统版本**
> OS 会被脚本赋值为系统版本,OS_VERSION 会被脚本赋值为系统大版本号
- **CHECK_CORE**
> 内核检测脚本
配置一键默认升级
```bash
CHECK_CORE ALL_DEFAULT_YES=1
```
- 内核升级
[内核升级脚本](https://gitee.com/offends/Linux/blob/main/File/Shell/Core.sh)
- 在线升级
执行脚本
```bash
./Core.sh
```
> 配置一键默认升级
>
> ```bash
> export ALL_DEFAULT_YES=1
> ```
- 离线包打包
[离线打包脚本](https://gitee.com/offends/Linux/blob/main/File/Shell/Build_Core_Tar.sh)
> 脚本为: Build_Core_Tar.sh
**参数**
| 参数 | 解释 | 用法 |
| :-----: | :-------------------: | :-------------------------: |
| Centos7 | 打包Centos7内核离线包 | ./Build_Core_Tar.sh Centos7 |
| Centos8 | 打包Centos8内核离线包 | ./Build_Core_Tar.sh Centos8 |
| Ubuntu | 打包Centos8内核离线包 | ./Build_Core_Tar.sh Ubuntu |

View File

@@ -0,0 +1,49 @@
> 本文作者:丁辉
[官方下载地址](http://www.datsi.fi.upm.es/~frosal/)
# Shell脚本加密Shc
## Shc源码部署
1. 下载
```bash
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9b.tgz
```
2. 解压
```bash
tar -zxvf shc-*.tgz && cd shc-*
```
3. 安装 `gcc 和 make` 后编译
```bash
make && mv shc /usr/local/bin/
```
## Shc网络源部署
- Centos安装
```bash
yum -y install shc
```
- Ubuntu安装
```bash
apt -y install shc
```
**shc参数**
| 参数 | 解释 | 使用示例 |
| :--: | :------------------------------: | :-----------------------------------------------: |
| -e | 指定过期时间 | shc -e 06/09/2023 -f demo.sh |
| -m | 过期后打印出的信息 | shc -e 06/09/2023 -m "File is expired" -f demo.sh |
| -v | 输出verbose 过程信息 | shc -v -f demo.sh |
| -r | 可在相同操作系统的不同主机上执行 | shc -r demo.sh |
| -f | 指定源shell | shc -f demo.sh |

View File

@@ -0,0 +1,110 @@
> 本文作者:丁辉
# Shell脚本集合记录
## Shell里有 Read 如何默认回车?
- 示例一
```bash
#!/bin/bash
defaultValue="默认值"
# 如果没有输入,使用默认值
read userInput
userInput=${userInput:-$defaultValue}
echo "你输入的内容是:$userInput"
```
执行脚本
```bash
bash shell.sh <<< ""
```
- 示例二
> 如果有很多 read 需要默认回车
```bash
#!/bin/bash
defaultValue1="默认值1"
defaultValue2="默认值2"
echo "请输入内容1"
read userInput1
userInput1=${userInput1:-$defaultValue1}
echo "请输入内容2"
read userInput2
userInput2=${userInput2:-$defaultValue2}
echo "你输入的内容1是$userInput1"
echo "你输入的内容2是$userInput2"
```
执行脚本
```bash
bash shell.sh <<< $'\n\n'
```
## 如何模拟按钮选择
[Shell文件](https://gitee.com/offends/Linux/blob/main/File/Shell/button.sh)
下载 Shell 示例
```bash
wget https://gitee.com/offends/Linux/raw/main/File/Shell/button.sh
```
## Nginx证书签发
[Shell文件](https://gitee.com/offends/Linux/blob/main/File/Shell/nginx-ssl.sh)
下载 Shell 示例
```bash
wget https://gitee.com/offends/Linux/raw/main/File/Shell/nginx-ssl.sh
```
## Mysql定时备份脚本
1. 创建备份文件存储目录
```bash
mkdir -p /opt/mysql/backup && cd /opt/mysql/backup
```
2. 下载脚本
```bash
wget https://gitee.com/offends/Linux/raw/main/File/Shell/mysql-backup.sh
```
修改如下内容
```bash
MYSQL_HOST=<MYSQL_HOST>
MYSQL_USER=root
MYSQL_PASS=root
```
3. 配置计划任务
```bash
crontab -e
```
添加定时任务
```bash
0 2 * * * bash /opt/mysql/backup/mysql-backup.sh
```