107 lines
4.1 KiB
Bash
107 lines
4.1 KiB
Bash
#!/bin/bash
|
|
|
|
#############################################################################################
|
|
# 用途: 本脚本用于大包内核离线升级包
|
|
# 作者: 丁辉
|
|
# 编写时间: 2023-12-03
|
|
# 更新时间: 2024-05-20
|
|
#############################################################################################
|
|
|
|
# 加载检测脚本
|
|
source <(curl -sS https://gitee.com/offends/Linux/raw/main/File/Shell/Check_command.sh)
|
|
|
|
# Centos内核文件: https://elrepo.org/linux/kernel/
|
|
# Ubuntu内核文件: https://kernel.ubuntu.com/mainline/ 国内: https://mirrors.edge.kernel.org/pub/linux/kernel/
|
|
|
|
# 存放Cenots8内核RPM文件包数组
|
|
Centos8_RPM=(
|
|
"https://elrepo.org/linux/kernel/el8/x86_64/RPMS/kernel-lt-5.4.262-1.el8.elrepo.x86_64.rpm"
|
|
"https://elrepo.org/linux/kernel/el8/x86_64/RPMS/kernel-lt-modules-5.4.262-1.el8.elrepo.x86_64.rpm"
|
|
"https://elrepo.org/linux/kernel/el8/x86_64/RPMS/kernel-lt-core-5.4.262-1.el8.elrepo.x86_64.rpm"
|
|
)
|
|
|
|
Centos7_RPM=(
|
|
"https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.262-1.el7.elrepo.x86_64.rpm"
|
|
)
|
|
|
|
function CURL_UBUNTU_DEB(){
|
|
CHECK_CPU
|
|
SEND_INFO "正在下载内核DEB文件包,请稍后"
|
|
VERSION=$(curl -s https://kernel.ubuntu.com/mainline/ | awk -F 'href="' '{print $2}' | awk -F '/"' '{print $1}' | sort -V | grep -v rc | grep -v Name | tail -n 1)
|
|
FILES=$(curl -s https://kernel.ubuntu.com/mainline/v6.6.4/amd64/ | grep deb | awk -F 'href="' '{print $2}' | awk -F '.deb' '{print $1".deb"}' | grep -v linux-headers)
|
|
URL="https://kernel.ubuntu.com/mainline/$VERSION/$ARCH_TYPE_2"
|
|
for i in ${FILES[@]}
|
|
do
|
|
curl -sO $URL/$i
|
|
done
|
|
VERSION="Ubuntu"
|
|
SEND_INFO "开始打包: $VERSION 离线内核升级包"
|
|
CHECK_COMMAND_ECHO rm -rf linux-headers-*
|
|
curl -sO https://gitee.com/offends/Linux/raw/main/File/Shell/Check_command.sh
|
|
sed -i.bak 's/source <(curl -sS https:\/\/gitee.com\/offends\/Linux\/raw\/main\/File\/Shell\/Check_command.sh)/source .\/Check_command.sh/g' Core.sh
|
|
CHECK_COMMAND_ECHO tar -zcvf $VERSION\_Core.tar.gz *.deb Check_command.sh Core.sh
|
|
SEND_INFO "正在清理临时文件"
|
|
CHECK_COMMAND_ECHO rm -rf *.deb && mv Core.sh.bak Core.sh
|
|
}
|
|
|
|
function CHECK_CENTOS_FILE(){
|
|
SEND_INFO "开始打包: $VERSION 离线内核升级包"
|
|
curl -sO https://gitee.com/offends/Linux/raw/main/File/Shell/Check_command.sh
|
|
sed -i.bak 's/source <(curl -sS https:\/\/gitee.com\/offends\/Linux\/raw\/main\/File\/Shell\/Check_command.sh)/source .\/Check_command.sh/g' Core.sh
|
|
CHECK_COMMAND_ECHO tar -zcvf $VERSION\_Core.tar.gz *.rpm Check_command.sh Core.sh
|
|
SEND_INFO "正在清理临时文件"
|
|
CHECK_COMMAND_ECHO rm -rf *.rpm && mv Core.sh.bak Core.sh
|
|
}
|
|
|
|
# 判断用户传入的参数为哪个系统
|
|
function CHECK_USER_READ(){
|
|
case $1 in
|
|
Centos7)
|
|
SEND_INFO "正在下载内核RPM文件包,请稍后"
|
|
for i in ${Centos7_RPM[@]}
|
|
do
|
|
curl -sO $i
|
|
VERSION="CentOS7"
|
|
done
|
|
CHECK_CENTOS_FILE
|
|
;;
|
|
Centos8)
|
|
SEND_INFO "正在下载内核RPM文件包,请稍后"
|
|
for i in ${Centos8_RPM[@]}
|
|
do
|
|
curl -sO $i
|
|
VERSION="CentOS8"
|
|
done
|
|
CHECK_CENTOS_FILE
|
|
;;
|
|
Ubuntu)
|
|
CURL_UBUNTU_DEB
|
|
;;
|
|
--help | -h)
|
|
echo "Usage: script_name [OPTIONS] [ARGUMENTS]"
|
|
echo ""
|
|
echo "Description:"
|
|
echo " Offends"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " -h, --help 显示此帮助信息"
|
|
echo " Centos7 打包Centos7内核离线包"
|
|
echo " Centos8 打包Centos8内核离线包"
|
|
echo " Ubuntu 打包Centos8内核离线包"
|
|
echo ""
|
|
echo "Examples:"
|
|
echo " 示例 1: ./Build_Core_Tar.sh Centos7"
|
|
exit 0
|
|
;;
|
|
*)
|
|
SEND_ERROR "参数错误,请使用 --help,-h 查看支持版本"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function ALL(){
|
|
CHECK_NETWORK
|
|
CHECK_USER_READ $@
|
|
}
|
|
|
|
ALL $@ |