編寫腳本一鍵安裝rsyslog

腳本分解

環境檢測部分

檢查操作系統

#!/bin/bash# 檢查是否為 Debian 類型
if [ -f /etc/debian_version ]; thenecho "當前操作系統是 Debian 類型"SYSLOG_SERVICE="rsyslog"INSTALL_COMMAND="apt-get install -y"CONFIG_FILE="/etc/rsyslog.conf"RESTART_COMMAND="systemctl restart rsyslog"ID="debian"
elif [ -f /etc/redhat-release ]; then
# 檢查是否為 Red Hat 類型echo "當前操作系統是 Red Hat 類型或其衍生版本"SYSLOG_SERVICE="rsyslog"CONFIG_FILE="/etc/rsyslog.conf"INSTALL_COMMAND="yum install -y"RESTART_COMMAND="systemctl restart rsyslog"ID="redhat"
elseecho "不支持的 Linux 發行版。"exit 1
fi

檢查是否存在rsyslog

# 步驟 2:檢查 syslog 是否安裝
if ! command -v $SYSLOG_SERVICE &> /dev/null && ! systemctl status rsyslog.service &> /dev/null; thenecho "$SYSLOG_SERVICE 未安裝。正在安裝..."# 交互式詢問是否有互聯網連接read -p "是否有互聯網連接?(y/n): " INTERNET_CONNECTIONif [[ $INTERNET_CONNECTION == "y" ]]; then# 從互聯網倉庫安裝$INSTALL_COMMAND $SYSLOG_SERVICEelif [[ $INTERNET_CONNECTION == "n" ]]; then# 從本地軟件包安裝if [[ $ID == "debian" || $ID == "ubuntu" ]]; thenecho "正在使用本地 rsyslog 軟件包安裝..."dpkg -i /path/to/local/rsyslog/package.debapt-get install -f   # 修復任何依賴elif [[ $ID == "centos" || $ID == "rhel" ]]; thenecho "正在使用本地 rsyslog 軟件包安裝..."rpm -ivh /path/to/local/rsyslog/package.rpmyum install -f   # 修復任何依賴fielseecho "無效的輸入。請輸入 'y' 或 'n'。"exit 1fi# 檢查安裝是否成功if [ $? -ne 0 ]; thenecho "$SYSLOG_SERVICE 安裝失敗。正在退出。"exit 1fi
fi

用戶輸入部分

#!/bin/bash# 獲取本機IP地址
LOCAL_IP=$(hostname -I | awk '{print $1}')# 提示用戶輸入要轉發 syslog 到的 IP 地址
read -p "請輸入要轉發 syslog 到的 IP 地址 [$LOCAL_IP]: " IP_ADDRESS
IP_ADDRESS=${IP_ADDRESS:-$LOCAL_IP}# 提示用戶輸入 syslog 轉發的協議
read -p "請輸入 syslog 轉發的協議 (tcp/udp): " PROTOCOL
PROTOCOL=${PROTOCOL:-udp}# 提示用戶輸入 syslog 轉發協議的端口
read -p "請輸入 syslog 轉發協議的端口 [514]: " PORT
PORT=${PORT:-514}# 提示用戶輸入要記錄的本機IP地址
read -p "請輸入要記錄的本機 IP 地址 [$LOCAL_IP]: " MY_IP
MY_IP=${MY_IP:-$LOCAL_IP}# 提示用戶輸入是否開啟web日志轉發(y/n)
read -p "是否開啟web錯誤日志收集?(y/n): " ENABLE_WEB_LOG_FORWARDING
ENABLE_WEB_LOG_FORWARDING=${ENABLE_WEB_LOG_FORWARDING:-n}# 提示用戶開啟哪些類型的日志轉發(類型.級別),循環實現,以橫線-結束
# 創建一個數組來存儲用戶選擇的日志類型和級別
DEFAULT_LOG_TYPES=("auth.*" "authpriv.*")
LOG_TYPES=("${DEFAULT_LOG_TYPES[@]}")# 提示用戶輸入要開啟的日志類型和級別,直到輸入橫線為止
while true; doread -p "請輸入要開啟的日志類型和級別 (類型.級別),或輸入 - 結束: " LOG_TYPEif [[ $LOG_TYPE == "-" ]]; thenbreakelif [[ " ${LOG_TYPES[@]} " =~ " $LOG_TYPE " ]]; thenecho "$LOG_TYPE 已經包含在默認值中,不需手動添加。"elseLOG_TYPES+=("$LOG_TYPE")fi
done# 打印用戶選擇的日志類型和級別
echo "您選擇了以下日志類型和級別:"
for log_type in "${LOG_TYPES[@]}"; doecho "$log_type"
doneecho "將 syslog 轉發到 IP 地址: $IP_ADDRESS,協議: $PROTOCOL,端口: $PORT,本機ip為:$MY_IP,是否開啟web日志轉發:$ENABLE_WEB_LOG_FORWARDING"

web錯誤日志寫入配置文件部分

如果ENABLE_WEB_LOG_FORWARDING為y,則將下面的內容寫入

module(load="imfile")
# 監控文件變化
input(type="imfile"File="/var/log/nginx/error.log"Tag="NGINXERROR")
template(name="MyTemplate" type="string" string="%$MY_IP%: %timestamp% %hostname% %syslogtag% %msg%\n")
:syslogtag, isequal, "NGINXERROR" $IP_ADDRESS:$PORT/$PROTOCOL;MyTemplate

寫入到/etc/rsyslog.d/nginx-error.conf

腳本實現:


# 提示用戶輸入是否開啟web日志轉發
read -p "是否開啟web錯誤日志收集?(y/n): " ENABLE_WEB_LOG_FORWARDING
ENABLE_WEB_LOG_FORWARDING=${ENABLE_WEB_LOG_FORWARDING:-n}if [[ $ENABLE_WEB_LOG_FORWARDING == "y" ]]; then# 將配置寫入文件echo "module(load=\"imfile\")" > /etc/rsyslog.d/nginx-error.confecho "# 監控文件變化" >> /etc/rsyslog.d/nginx-error.confecho "input(type=\"imfile\"" >> /etc/rsyslog.d/nginx-error.confecho "    File=\"/var/log/nginx/error.log\"" >> /etc/rsyslog.d/nginx-error.confecho "    Tag=\"NGINXERROR\")" >> /etc/rsyslog.d/nginx-error.confecho "template(name=\"MyTemplate\" type=\"string\" string=\"%$LOCAL_IP%: %timestamp% %hostname% %syslogtag% %msg%\\n\")" >> /etc/rsyslog.d/nginx-error.confecho ":syslogtag, isequal, \"NGINXERROR\" @$IP_ADDRESS:$PORT/$PROTOCOL;MyTemplate" >> /etc/rsyslog.d/nginx-error.confecho "已將 web錯誤日志轉發 配置寫入 /etc/rsyslog.d/nginx-error.conf 文件"
elseecho "未開啟 web 日志轉發,不寫入web錯誤日志"
fi

日志類型進行轉發的模式

對于用戶輸入的每一種日志類型,LOG_TYPES中的

template(name="MyTemplate" type="string" string="%$MY_IP%: %timestamp% %hostname% %syslogtag% %msg%\n")
LOG_TYPE @遠程服務器IP:端口號/協議;MyTemplate

寫入到/etc/rsyslog.d/wasb-remote.conf 中,按行隔開

# 將配置寫入文件
CONF_FILE="/etc/rsyslog.d/wasb-remote.conf"
echo "" > $CONF_FILE  # 清空文件內容
echo "template(name=\"MyTemplate\" type=\"string\" string=\"%$MY_IP%: %timestamp% %hostname% %syslogtag% %msg%\\n\")" >> $CONF_FILE
for log_type in "${LOG_TYPES[@]}"; doecho "$log_type @$IP_ADDRESS:$PORT/$PROTOCOL;MyTemplate" >> $CONF_FILEecho "" >> $CONF_FILE  # 添加空行分隔
doneecho "已將配置寫入 $CONF_FILE 文件"

重啟服務

重啟rsyslog服務,并且打印出rsyslog服務的status命令的結果

#!/bin/bash# 重啟 rsyslog 服務
echo "正在重啟 rsyslog 服務..."
systemctl restart rsyslog# 打印 rsyslog 服務狀態
echo "rsyslog 服務狀態:"
systemctl status rsyslog

不包含環境檢查的一鍵腳本

#!/bin/bash# 獲取本機IP地址
LOCAL_IP=$(hostname -I | awk '{print $1}')# 提示用戶輸入要轉發 syslog 到的 IP 地址
read -p "請輸入要轉發 syslog 到的 IP 地址 [$LOCAL_IP]: " IP_ADDRESS
IP_ADDRESS=${IP_ADDRESS:-$LOCAL_IP}# 提示用戶輸入 syslog 轉發的協議
read -p "請輸入 syslog 轉發的協議 (tcp/udp): " PROTOCOL
PROTOCOL=${PROTOCOL:-udp}# 提示用戶輸入 syslog 轉發協議的端口
read -p "請輸入 syslog 轉發協議的端口 [514]: " PORT
PORT=${PORT:-514}# 提示用戶輸入要記錄的本機IP地址
read -p "請輸入要記錄的本機 IP 地址 [$LOCAL_IP]: " MY_IP
MY_IP=${MY_IP:-$LOCAL_IP}# 提示用戶輸入是否開啟web日志轉發(y/n)
read -p "是否開啟web錯誤日志收集?(y/n): " ENABLE_WEB_LOG_FORWARDING
ENABLE_WEB_LOG_FORWARDING=${ENABLE_WEB_LOG_FORWARDING:-n}# 提示用戶開啟哪些類型的日志轉發(類型.級別),循環實現,以橫線-結束
# 創建一個數組來存儲用戶選擇的日志類型和級別
DEFAULT_LOG_TYPES=("auth.*" "authpriv.*")
LOG_TYPES=("${DEFAULT_LOG_TYPES[@]}")# 提示用戶輸入要開啟的日志類型和級別,直到輸入橫線為止
while true; doread -p "請輸入要開啟的日志類型和級別 (類型.級別),或輸入 - 結束: " LOG_TYPEif [[ $LOG_TYPE == "-" ]]; thenbreakelif [[ " ${LOG_TYPES[@]} " =~ " $LOG_TYPE " ]]; thenecho "$LOG_TYPE 已經包含在默認值中,不需手動添加。"elseLOG_TYPES+=("$LOG_TYPE")fi
done# 打印用戶選擇的日志類型和級別
echo "您選擇了以下日志類型和級別:"
for log_type in "${LOG_TYPES[@]}"; doecho "$log_type"
doneecho "將 syslog 轉發到 IP 地址: $IP_ADDRESS,協議: $PROTOCOL,端口: $PORT,本機ip為:$MY_IP,是否開啟web日志轉發:$ENABLE_WEB_LOG_FORWARDING"if [[ $ENABLE_WEB_LOG_FORWARDING == "y" ]]; then# 將配置寫入文件echo "module(load=\"imfile\")" > /etc/rsyslog.d/nginx-error.confecho "# 監控文件變化" >> /etc/rsyslog.d/nginx-error.confecho "input(type=\"imfile\"" >> /etc/rsyslog.d/nginx-error.confecho "    File=\"/var/log/nginx/error.log\"" >> /etc/rsyslog.d/nginx-error.confecho "    Tag=\"NGINXERROR\")" >> /etc/rsyslog.d/nginx-error.confecho "template(name=\"MyTemplate\" type=\"string\" string=\"%$LOCAL_IP%: %timestamp% %hostname% %syslogtag% %msg%\\n\")" >> /etc/rsyslog.d/nginx-error.confecho ":syslogtag, isequal, \"NGINXERROR\" @$IP_ADDRESS:$PORT/$PROTOCOL;MyTemplate" >> /etc/rsyslog.d/nginx-error.confecho "已將 web錯誤日志轉發 配置寫入 /etc/rsyslog.d/nginx-error.conf 文件"
elseecho "未開啟 web 日志轉發,不寫入web錯誤日志"
fitemplate(name="MyTemplate" type="string" string="%$MY_IP%: %timestamp% %hostname% %syslogtag% %msg%\n")
LOG_TYPE @遠程服務器IP:端口號/協議;MyTemplate

寫入到/etc/rsyslog.d/wasb-remote.conf 中,按行隔開

# 將配置寫入文件
CONF_FILE="/etc/rsyslog.d/wasb-remote.conf"
echo "" > $CONF_FILE  # 清空文件內容
echo "template(name=\"MyTemplate\" type=\"string\" string=\"%$MY_IP%: %timestamp% %hostname% %syslogtag% %msg%\\n\")" >> $CONF_FILE
for log_type in "${LOG_TYPES[@]}"; doecho "$log_type @$IP_ADDRESS:$PORT/$PROTOCOL;MyTemplate" >> $CONF_FILEecho "" >> $CONF_FILE  # 添加空行分隔
doneecho "已將 日志類型.日志級別 配置寫入 $CONF_FILE 文件"

包含環境檢查的一鍵腳本

#!/bin/bash
# 檢查是否為 Debian 類型
if [ -f /etc/debian_version ]; thenecho "當前操作系統是 Debian 類型"SYSLOG_SERVICE="rsyslog"INSTALL_COMMAND="apt-get install -y"CONFIG_FILE="/etc/rsyslog.conf"RESTART_COMMAND="systemctl restart rsyslog"ID="debian"
elif [ -f /etc/redhat-release ]; then
# 檢查是否為 Red Hat 類型echo "當前操作系統是 Red Hat 類型或其衍生版本"SYSLOG_SERVICE="rsyslog"CONFIG_FILE="/etc/rsyslog.conf"INSTALL_COMMAND="yum install -y"RESTART_COMMAND="systemctl restart rsyslog"ID="redhat"
elseecho "不支持的 Linux 發行版。"exit 1
fi# 步驟 2:檢查 syslog 是否安裝
if ! command -v $SYSLOG_SERVICE &> /dev/null && ! systemctl status rsyslog.service &> /dev/null; thenecho "$SYSLOG_SERVICE 未安裝。正在安裝..."# 交互式詢問是否有互聯網連接read -p "是否有互聯網連接?(y/n): " INTERNET_CONNECTION#防止找不到pathexport PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binif [[ $INTERNET_CONNECTION == "y" ]]; then# 從互聯網倉庫安裝$INSTALL_COMMAND $SYSLOG_SERVICEelif [[ $INTERNET_CONNECTION == "n" ]]; then# 從本地軟件包安裝if [ -f /etc/debian_version ]; thenecho "正在使用debian類型 本地 rsyslog 軟件包安裝..."# todo 待補充echo "正在使用本地 rsyslog 軟件包安裝..."# 若path中找不到這個 修改path export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin#根據實際的上傳路徑文件包名修改#  dpkg -i /path/to/local/rsyslog/package.debdpkg -i /path/to/local/rsyslog/rsyslog_8.2302.0-1_amd64.debapt-get install -f   # 修復任何依賴elif [ -f /etc/redhat-release ]; thenecho "正在使用本地 rsyslog 軟件包安裝..."# todo 待補充#根據實際的上傳路徑文件包名修改rpm -ivh /path/to/local/rsyslog/rsyslog-8.24.0-57.el7_9.3.x86_64.rpm#yum install -f   # 修復任何依賴 這個命令有問題注釋掉fielseecho "無效的輸入。請輸入 'y' 或 'n'。"exit 1fi# 檢查安裝是否成功if [ $? -ne 0 ]; thenecho "$SYSLOG_SERVICE 安裝失敗。正在退出。"exit 1fi
fi# 獲取本機IP地址
LOCAL_IP=$(hostname -I | awk '{print $1}')# 提示用戶輸入要轉發 syslog 到的 IP 地址
read -p "請輸入要轉發 syslog 到的 IP 地址 [$LOCAL_IP]: " IP_ADDRESS
IP_ADDRESS=${IP_ADDRESS:-$LOCAL_IP}# 提示用戶輸入 syslog 轉發的協議
read -p "請輸入 syslog 轉發的協議 (tcp/udp): " PROTOCOL
PROTOCOL=${PROTOCOL:-udp}# 提示用戶輸入 syslog 轉發協議的端口
read -p "請輸入 syslog 轉發協議的端口 [514]: " PORT
PORT=${PORT:-514}# 提示用戶輸入要記錄的本機IP地址
read -p "請輸入要記錄的本機 IP 地址 [$LOCAL_IP]: " MY_IP
MY_IP=${MY_IP:-$LOCAL_IP}# 提示用戶輸入是否開啟web日志轉發(y/n)
read -p "是否開啟web錯誤日志收集?(y/n): " ENABLE_WEB_LOG_FORWARDING
ENABLE_WEB_LOG_FORWARDING=${ENABLE_WEB_LOG_FORWARDING:-n}# 提示用戶開啟哪些類型的日志轉發(類型.級別),循環實現,以橫線-結束
# 創建一個數組來存儲用戶選擇的日志類型和級別
DEFAULT_LOG_TYPES=("auth.*" "authpriv.*")
LOG_TYPES=("${DEFAULT_LOG_TYPES[@]}")# 提示用戶輸入要開啟的日志類型和級別,直到輸入橫線為止
while true; doread -p "請輸入要開啟的日志類型和級別 (類型.級別),或輸入 - 結束: " LOG_TYPEif [[ $LOG_TYPE == "-" ]]; thenbreakelif [[ " ${LOG_TYPES[@]} " =~ " $LOG_TYPE " ]]; thenecho "$LOG_TYPE 已經包含在默認值中,不需手動添加。"elseLOG_TYPES+=("$LOG_TYPE")fi
done# 打印用戶選擇的日志類型和級別
echo "您選擇了以下日志類型和級別:"
for log_type in "${LOG_TYPES[@]}"; doecho "$log_type"
doneecho "將 syslog 轉發到 IP 地址: $IP_ADDRESS,協議: $PROTOCOL,端口: $PORT,本機ip為:$MY_IP,是否開啟web日志轉發:$ENABLE_WEB_LOG_FORWARDING"if [[ $ENABLE_WEB_LOG_FORWARDING == "y" ]]; then# 將配置寫入文件 寫入的文件可能不存在 需要新建或者切換地址echo "module(load=\"imfile\")" > /etc/rsyslog.d/nginx-error.confecho "# 監控文件變化" >> /etc/rsyslog.d/nginx-error.confecho "input(type=\"imfile\"" >> /etc/rsyslog.d/nginx-error.confecho "    File=\"/var/log/nginx/error.log\"" >> /etc/rsyslog.d/nginx-error.confecho "    Tag=\"NGINXERROR\")" >> /etc/rsyslog.d/nginx-error.confecho "template(name=\"MyTemplate\" type=\"string\" string=\"$MY_IP: %timestamp% %hostname% %syslogtag% %msg%\\n\")" >> /etc/rsyslog.d/nginx-error.confecho ":syslogtag, isequal, \"NGINXERROR\" @$IP_ADDRESS:$PORT/$PROTOCOL;MyTemplate" >> /etc/rsyslog.d/nginx-error.confecho "已將 web錯誤日志轉發 配置寫入 /etc/rsyslog.d/nginx-error.conf 文件"
elseecho "未開啟 web 日志轉發,不寫入web錯誤日志"rm -f /etc/rsyslog.d/nginx-error.confecho "已清除/etc/rsyslog.d/nginx-error.conf"
fi# 將配置寫入文件
CONF_FILE="/etc/rsyslog.d/wasb-remote.conf"
echo "" > $CONF_FILE  # 清空文件內容
echo "template(name=\"MyTemplate\" type=\"string\" string=\"$MY_IP: %timestamp% %hostname% %syslogtag% %msg%\\n\")" >> $CONF_FILE
for log_type in "${LOG_TYPES[@]}"; doecho "$log_type @$IP_ADDRESS:$PORT/$PROTOCOL;MyTemplate" >> $CONF_FILEecho "" >> $CONF_FILE  # 添加空行分隔
doneecho "已將 日志類型.日志級別 配置寫入 $CONF_FILE 文件"# 重啟 rsyslog 服務
echo "正在重啟 rsyslog 服務..."
systemctl restart rsyslog# 打印 rsyslog 服務狀態
echo "rsyslog 服務狀態:"
systemctl status rsyslog

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713945.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713945.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713945.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vmware esxi虛擬主機狀態無效,無法注銷重啟等操作修復解決

問題 裝有ESXI系統的服務器在強制關機啟動后,顯示虛擬機狀態是無效的,并且無法進行任何操作。 解決辦法 對出問題的虛擬機重新注冊 1、開啟esxi系統的ssh功能 2、取消注冊出問題的虛擬機 找到問題的虛擬機 [rootlocalhost:~] vim-cmd vmsvc/getal…

燒腦問題解決辦法:如何選擇一款合適自己的手機流量卡

現在社會人們越來越離不開手機了,手機給我們生活帶來了翻天覆地的變化,手機需要最多的就是流量了,所以選擇一款合適自己的手機流量卡就顯得尤為重要了,今天小編就給大家來分享一下我的經驗,希望對大家能有幫助&#xf…

python基礎-基本數據類型深入-2.1

目錄 元組 什么是元組(tuple) 元組練習-1 元組的基本操作 元組常用內建函數 列表和元組的區別與總結 元組練習-2 元組練習-3 元組 什么是元組(tuple) 與列表(list)一樣,元組&#xff0…

【Web安全靶場】sqli-labs-master 54-65 Challenges 與62關二分法和like模糊搜索

sqli-labs-master 54-65 Challenges 其他關卡和靶場見專欄… 文章目錄 sqli-labs-master 54-65 Challenges第五十四關-聯合注入第五十五關-聯合注入第五十六關-聯合注入第五十七關-聯合注入第五十八關-報錯注入第五十九關-報錯注入第六十關-報錯注入第六十一關-報錯注入第六十…

grid的刪除

/u01/11.2.0/grid 為 grid 用戶的安裝主目錄 1、刪除 crs 配置信息 root: cd /u01/11.2.0/grid/crs/install perl rootcrs.pl -deconfig -force 2、刪除 crs 配置信息,并卸載軟件 cd /u01/11.2.0/grid/deinstall ./deinstall grid user: ./deinstall -home /…

Mysql與StarRocks語法上的不同

🐓 序言 StarRocks 是新一代極速全場景 MPP (Massively Parallel Processing) 數據庫。StarRocks 的愿景是能夠讓用戶的數據分析變得更加簡單和敏捷。用戶無需經過復雜的預處理,可以用StarRocks 來支持多種數據分析場景的極速分析。 🐓 語法…

嵌入式驅動學習第一周——linux的休眠與喚醒

前言 本文介紹進程的休眠與喚醒。 嵌入式驅動學習專欄將詳細記錄博主學習驅動的詳細過程,未來預計四個月將高強度更新本專欄,喜歡的可以關注本博主并訂閱本專欄,一起討論一起學習。現在關注就是老粉啦! 行文目錄 前言1. 阻塞和非阻…

第二節 數學知識補充

一、線性代數 向量的 L 2 L_2 L2?范數(Euclidean范數/Frobenius范數)&矩陣的元素形式范數 向量的 L 2 L_2 L2?范數: ∣ ∣ x ∣ ∣ 2 ( ∣ x 1 ∣ 2 ? ∣ x m ∣ 2 ) 1 2 ||x||_2(|x_1|^2\cdots|x_m|^2)^{\frac12} ∣∣x∣∣2?(∣…

Verilog參數、Verilog參數和屬性沖突、整數處理

Verilog參數 Verilog參數執行以下操作: ?允許您創建易于重用和擴展的參數化代碼。 ?使代碼更可讀、更緊湊、更易于維護。 ?將此類功能描述為: ○ 總線尺寸 ○ 建模設計單元中某些重復元素的數量 ?是常數。對于參數化模塊的每個實例化&#xf…

電腦桌面便簽哪個好,好用的電腦桌面便簽推薦

在如今信息爆炸的時代,人們的工作和生活節奏越來越快,記事和備忘變得尤為重要。而電腦桌面便簽作為一種方便快捷的記錄工具,備受廣大用戶青睞。那么,電腦桌面便簽哪個好,哪個更加出色呢? 作為一名人事專員…

CryoEM - 使用 cryoSPARC 基于單顆粒圖像從頭重構蛋白質三維結構

歡迎關注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/136384544 基于冷凍電鏡單顆粒圖像重構蛋白質三維結構,利用冷凍電鏡技術測定生物大分子結構的方法。原理是從冷凍電鏡獲得大量同一種蛋白質分子的二維投影圖…

【數據結構】實現隊列

大家好,我是蘇貝,本篇博客帶大家了解隊列,如果你覺得我寫的還不錯的話,可以給我一個贊👍嗎,感謝?? 目錄 一. 隊列的概念及結構二. 隊列的實現隊列的結構體初始化銷毀隊尾插入隊頭刪除顯示第一個節點的值…

【Java程序員面試專欄 算法思維】六 高頻面試算法題:動態規劃

一輪的算法訓練完成后,對相關的題目有了一個初步理解了,接下來進行專題訓練,以下這些題目就是匯總的高頻題目,本篇主要聊聊回溯算法,主要就是排列組合問題,所以放到一篇Blog中集中練習 題目關鍵字解題思路時間空間零錢兌換動態規劃+雙重循環dp[i]表示兌換金額為i元的最少…

從0開始學習NEON(0)

1、前言 ? 最近在學習NEON指令集,主要學習"單指令流,多數據流"的編程方式,在這之前主要是針對cuda編程進行學習。最近的一部分工作轉移到了arm主板上,接觸到了 ncnn這個開源項目,不得不佩服nihui的強大。在…

C# 線性插值

線性插值是一種常用的插值算法,適用于許多實際場景。 傳感器數據處理:在傳感器數據處理中,可能會出現數據點不連續或不均勻的情況。使用線性插值可以根據已知的數據點來估算在兩個數據點之間的數值,從而填補數據中的缺失或不連續之…

iOS消息轉發流程

當向Objc對象發送消息時,如果找到對象對應的方法,就會進入消息轉發流程,給開發者提供一些最后的機會處理消息無法發送問題,以免出現程序崩潰。 1. 回調對象的resolveInstanceMethod方法,在這個方法中,允許開…

阿里云定價_ECS產品價格_云服務器收費標準 - 阿里云官方活動

2024年最新阿里云服務器租用費用優惠價格表,輕量2核2G3M帶寬輕量服務器一年61元,折合5元1個月,新老用戶同享99元一年服務器,2核4G5M服務器ECS優惠價199元一年,2核4G4M輕量服務器165元一年,2核4G服務器30元3…

logo設計軟件及網站匯總

文章目錄 一、智能設計logo的網站二、常用的logo設計軟件 一、智能設計logo的網站 Canva:Canva是一個在線設計平臺,提供了豐富的模板和設計工具,可以幫助用戶輕松設計出專業水平的logo。 DesignEvo:DesignEvo是一個專業的在線log…

基于 LLaMA 和 LangChain 實踐本地 AI 知識庫

有時候,我難免不由地感慨,真實的人類世界,本就是一個巨大的娛樂圈,即使是在英雄輩出的 IT 行業。數日前,Google 正式對外發布了 Gemini 1.5 Pro,一個建立在 Transformer 和 MoE 架構上的多模態模型。可惜,這個被 Google 寄予厚望的產品并未激起多少水花,因為就在同一天…

動作生成學習筆記

目錄 ReMoDiffus 檢索和擴散 文字生運動 action生運動 ReMoDiffus 檢索和擴散 ICCV 2023 | 重塑人體動作生成,融合擴散模型與檢索策略的新范式ReMoDiffuse來了,根據文本生成動作 有例子和模型&