2026年7月20日 星期一

Proxmox VE local vm snt 設定範例

 #!/bin/sh
iptables -F -t nat
echo "1" > /proc/sys/net/ipv4/ip_forward

OIF=vmbr0
IIF=vmbr9
SNIP=172.16.255.0/24

# 1. 建立 NAT:將來自 vmbr9 網段的封包,在從 vmbr0 出去時轉換為 vmbr0 的 IP
iptables -t nat -A POSTROUTING -o ${OIF} -s ${SNIP} -j MASQUERADE

# 2. 允許 eth9 到 eth0 的轉發流量 (建立連線)
iptables -A FORWARD -i ${IIF} -o ${OIF} -s ${SNIP} -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# 3. 允許從 eth0 回到 eth9 的已建立連線流量 (回應封包)
iptables -A FORWARD -i ${OIF} -o ${IIF} -d ${SNIP} -m state --state ESTABLISHED,RELATED -j ACCEPT

#NAT PORT
OPORT=8007
IPORT=8007
IIP=172.16.255.1

iptables -t nat -A PREROUTING -i ${OIF} -p tcp --dport ${OPORT} -j DNAT --to-destination ${IIP}:${IPORT}

# 2. 確保轉發鏈允許該流量通過 (如果你的 FORWARD 預設是 DROP)

iptables -A FORWARD -p tcp -d ${IIP} --dport ${IPORT} -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

OPORT=8443
IPORT=8443
IIP=172.16.255.2

iptables -t nat -A PREROUTING -i ${OIF} -p tcp --dport ${OPORT} -j DNAT --to-destination ${IIP}:${IPORT}

iptables -A FORWARD -p tcp -d ${IIP} --dport ${IPORT} -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Proxmox VE 7/8/9 initrd 損毀無法開機

mkdir /mnt/pve
mount /dev/pve/root /mnt/pve
#mount /dev/sda2 /mnt/pve/boot/efi   # <--- EFI 分區代號

for i in dev proc sys run;do mount -o bind /${i} /mnt/pve/${i};done
chroot /mnt/pve

# 為所有已安裝的 Kernel 重新生成 initrd 映像檔
update-initramfs -u -k all

# 適用於 PVE 7/8/9 使用 proxmox-boot-tool 的系統)
proxmox-boot-tool refresh
update-grub
exit

umount -R /mnt/pve
reboot

2026年7月17日 星期五

Proxmox VE 9.x Alternative Names 重新自動掃描與產生

# 刪除 PVE 指令產生的設定
rm -f /usr/local/lib/systemd/network/50-pve-*.link
rm -f /usr/local/lib/systemd/network/50-pmx-*.link

# 刪除系統安裝時的設定
rm -f /etc/systemd/network/50-pve-*.link
rm -f /etc/systemd/network/50-pmx-*.link

#更新開機映像檔
update-initramfs -u -k all

#掃描並自動產生全新 Pinning
pve-network-interface-pinning generate

#更新開機映像檔
update-initramfs -u -k all

IPMI 網路 dhcp 重新取得 IP

 ipmitool lan set 1 ipsrc static && ipmitool lan set 1 ipsrc dhcp

2026年7月2日 星期四

Task Spooler 使用摘要

Debian 13 安裝
apt install task-spooler

新增任務到佇列
tsp 指令

查看目前佇列狀態
tsp

查看特定任務的輸出
tsp -c jobid

即時追蹤任務輸出
tsp -t jobid

刪除或取消任務
tsp -r jobid

調整任務的優先順序
ts -u jobid

調整並行數量
ts -S 數量

環境變數
TS_SOCKET

Linux nq 筆記

nq 說明
Linux 輕量、無需設定的命令列任務佇列工具
完全依賴檔案系統鎖(File-system lock)來管理佇列,不需要任何額外的設定或維護。

Debian 安裝
apt install nq

nq 環境變數
NQDIR:存放任務佇列目錄。預設為目前的執行目錄,透過 NQDIR 設定不同的路徑,可以同時管理多個佇列。
NQJOBID:nq 回傳給執行中任務的 Job ID,可用於腳本中追蹤。

使用範例
建立專屬 nq 佇列
export NQDIR="$HOME/nq"; mkdir -p ${NQDIR}

執行方式
export NQDIR="$HOME/nq"
nq ./my-script.sh
nq ./my-script2.sh
nq ./my-script3.sh
nq ./my-script4.sh
nq ./my-script5.sh

查詢目前 nq 佇列 Job
ls -lF ${NQDIR}   ## Ctrl-C 離開不中斷執行

查詢結果說明
-rw-r--r-- 1 root root 47 Jul  2 10:38 ,19f20aeff65.125177   已執行完畢
-rwxr--r-- 1 root root 22 Jul  2 10:38 ,19f20af01e5.125180*  <-* 表示目前正在執行
-rw-r--r-- 1 root root 20 Jul  2 10:38 ,19f20b17894.125225   未執行
-rw-r--r-- 1 root root 20 Jul  2 10:38 ,19f20b17bb4.125228   未執行
-rw-r--r-- 1 root root 20 Jul  2 10:38 ,19f20b17dc3.125231   未執行

,19f20af01e5.125180  <- ,開頭為 nq 狀態檔案,19f20af01e5 Job 送出時間,125180 系統執行的 process id

刪除 nq 佇列 Job ,19f20b17dc3.125231
rm ${NQDIR}/,19f20b17dc3.125231

中斷 nq 佇列 Job ,19f20b17dc3.125231
kill 125231

查詢 nq 佇列 Job ,19f20b17dc3.125231 執行內容或結果
cat  ${NQDIR}/,19f20b17dc3.125231

刪除已執行完畢 nq 佇列Job ,19f20b17dc3.125231
rm ${NQDIR}/,19f20b17dc3.125231

查詢目前  Job 執行狀態
nqtail  # Ctrl-C  離開,不中斷程式

共用 nq 佇列
nqdir=/var/spool/nq
nqgroup=nqusers
mkdir -p ${nqdir}
chown :${nqgrou} ${nqdir}
chmod 2775 ${nqdir}

更多的 指令說明
man nq
man nqtail

2026年6月22日 星期一