This commit is contained in:
113
Shell/README.md
Normal file
113
Shell/README.md
Normal 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 |
|
||||
|
49
Shell/Shell脚本加密Shc.md
Normal file
49
Shell/Shell脚本加密Shc.md
Normal 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 |
|
110
Shell/Shell脚本集合记录.md
Normal file
110
Shell/Shell脚本集合记录.md
Normal 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
|
||||
```
|
||||
|
||||
|
Reference in New Issue
Block a user