qemu-img

qemu-img info vm100.qcow2 #查看 qcow2
qemu-img snapshot -l vm100.qcow2 #檢查 vm100 快照
qemu-img snapshot -c snapshot01 vm100.qcow2 #snappshot01(快照名) test.qcow2(要快照的檔案)
qemu-img snapshot -a snapshot01 vm100.qcow2 #使用 -a snapshot-01 回復快照
qemu-img snapshot -d snapshot01 vm100.qcow2 #刪除 -d snapshot-01 刪除快照

‘snapshot’ is the name of the snapshot to create, apply or delete
‘-a’ applies a snapshot (revert disk to saved state)
‘-c’ creates a snapshot
‘-d’ deletes a snapshot
‘-l’ lists all snapshots in the given image
————————————————————-

發表於 未分類 | 已標籤 | 發表迴響

routeos Firewall Tool

國別路由段

https://mikrotikconfig.com/firewall/

發表於 未分類 | 已標籤 | 發表迴響

zfs_重點

zfs set mountpoint=/目錄 tank #設定儲存池掛載點
zfs mount -a #掛載所有ZFS磁區:

zfs set sync=disabled zsysvol/share #測試過讀寫速度最快
zfs set sync=always zsysvol/share #Samba 很慢
zfs set sync=standard zsysvol/share

zfs clone zsysvol/share@today zsysvol/sharetoday # clone 快照為新的dataset,注意 快照不能刪
zfs list -r zsysvol/sharetoday
# 請參考 https://docs.freebsd.org/zh-tw/books/handbook/zfs/
zfs get origin zsysvol/sharetoday #查看原始 zfs clone 祖的資料集
zfs promote zsysvol/sharetoday #提升 clone 副本為獨立資料集

zfs rename zsysvol/oldname zsysvol/newname #zfs dateset 更名

zfs set primarycache=none rpool #關閉ARC快取:

zpool add zsysvol cache da0s1 #加入cache
zpool remove zsysvol da0s1 #移除cache
zpool set autoexpand=on tank #設定自動擴展容量
zpool get fragmentation #取得碎片化狀態
zpool labelclear #清除超級塊:

zfs rollback zsysvol/vm/pve-1@test #回滾快照: 選填 -r 遞迴子目錄

zfs create -o compression=on tank(儲存池名稱) # 壓縮打開
zfs create -o compression=lz4 tank(儲存池名稱) #新建儲存池並開啟lz4 壓縮功能(建議使用-但會慢適用大儲存池)
zfs set compression=lz4 tank(儲存池名稱) #設定現有儲存池為lz4壓縮
zfs get compression #查詢現有儲存池的壓縮方式
zfs get compressratio #查看壓縮率(越大越好,基本1.00x)
註:Proxmox 大部分的pool 皆可以開啟lz4壓縮功能唯獨 rpool/swap 請使用zle壓縮加速勿使用lz4

如果遇到cannot create ‘tank(儲存池名稱)‘: pool must be upgraded to set this property or value ,則為需要更新zpool 版本使用以下指令更新:
zpool upgrade tank
後即可可用

zfs 備份 -檔案方式
1.zfs snapshot zsysvol/share@today_bak1 #必做第一步
2.zfs send zsysvol/share@today_bak1 >/backup/backup1 #這裡指的是該快照中內含的所有資料,並非只有上次快照到該快照間的變更。
回置方法 zfs receive zsysvol/share_new< /backup/backup1 #會自動建立 zsysvol/share_new dataset_資料集

zfs 備份 -dataset to dataset
1.zfs snapshot zsysvol/share@today_bak1 #必做第一步
2.zfs send -v sysvol/share@today_bak1 | zfs receive backup/share@today_bak1#將資料從一個儲存池複製到另一個,傳輸完成後可以直接使用接收儲存池上的資料。一個資料集只可以被複製到另一個空的資料集。

zfs 備份 - 漸進式
1.zfs snapshot zsysvol/share@today_bak1 #必做第一步
2.zfs send -v -i sysvol/share@today_bak1 | zfs receive backup/share #使用 zfs send -i 並指定要用來產生漸進備份串流的快照,串流中只會含有做過更改的資料。這個動作只在接收端已經有初始快照時才可用。
zfs list -t all |grep share
backup/share 底下會出現 zsysvol/share@today_bak1
#若指定 -P,會一併複製資料集的屬性,這包含壓縮 (Compression) 設定,配額 (Quota) 及掛載點 (Mount point)。若指定 -R,會複製所有指定資料集的子資料集,及這些子資料集的所有屬性。可將傳送與接收自動化來定期使用第二個儲存池做備份

複製虛擬機虛擬磁碟檔 (zfs)
1.zfs snapshot vmimage/vm-109-disk-0@copy #先快照
2.zfs send -Rv vmimage/vm-109-disk-0@copy | zfs receive -F vmimage/vm-111-disk-0 #利用 Send 和 receive copy
3.zfs destroy vmimage/vm-109-disk-0@copy ; zfs destroy vmimage/vm-111-disk-0@copy #destroy 刪掉 2邊 快照

發表於 proxmox | 發表迴響

Proxmox:如何啟用局域網喚醒?

1. apt-get install ethtool
2. 檢查網口 ethtool enp3s0
3. ethtool -s enp3s0 wol g #pve安装好后,host默认是不能通过wol唤醒的,需要手动开启wol功能。

pvenode config set -wakeonlan XX:XX:XX:XX:XX:XX x 是你的 MAC 地址

發表於 proxmox | 發表迴響

Proxmox 修改 root delay 和 Close spliet_lock

vi /etc/default/grub.d/proxmox-ve.cfg
#新增下面這一行
GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=30 quiet split_lock_detect=off"
執行 update-grub

journalctl -b
#檢測 split_lock 是否禁禜
#pve kernel: x86/split lock detection: disabled

https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysboot_edit_kernel_cmdline

發表於 未分類 | 發表迴響

python 初學參考網站

https://steam.oxxostudio.tw/category/python/info/start.html?fbclid=IwAR1UQN1kaNIfIbKcMC2IOzsDT9CcpxodvlFeIFBiH_uDm9CV0vqKeDaMphI

發表於 python | 發表迴響

ping telegarm 通知

#!/bin/bash
PINGHOST="主機IP"
HOSTNAME="客戶名"
NOWTIME=$(date +’%Y%m%d-%H:%M:%S’)
GOODMSG=("$HOSTNAME主機_$PINGHOST-於$NOWTIME-恢復正常")
ERRORMSG=("$HOSTNAME主機_$PINGHOST-於$NOWTIME-發生故障")
TERRORMSG="/etc/sh/terrormsg.sh"
DAY=1
HOURS=8h
SEC=60s

# 正常:0 不正常:1
KEYOK=0

#虛擬機開機準備
sleep 90s
echo -e "預設 KEYOK=$KEYOK 正常\n"
while true
do
if [ $KEYOK == 1 ]
then
#進入第2迴圈,除非正常才會跳出到第一迴圈
while true
do
echo "login 2 while"
sleep $SEC
NOWTIME=$(date +’%Y%m%d-%H:%M:%S’)
GOODMSG=("$HOSTNAME主機_$PINGHOST-於$NOWTIME-恢復正常")
#ping $PINGHOST -c 1 >>/dev/null && echo "2 ok" || $TERRORMSG $GOODMSG
sleep 1s
ping $PINGHOST -c 1 >>/dev/null && KEYOK=0 || KEYOK=1
if [ $KEYOK == 0 ]
then
echo "logout 2 "
$TERRORMSG $GOODMSG
echo "$GOODMSG" >>/tmp/psave.log
break
fi
done

else
NOWTIME=$(date +’%Y%m%d-%H:%M:%S’)
ERRORMSG=("$HOSTNAME主機_$PINGHOST-於$NOWTIME-發生故障")
#ping $PINGHOST -c 1 >>/dev/null && echo "ok" || $TERRORMSG $ERRORMSG
sleep 1s
ping $PINGHOST -c 1 >>/dev/null && KEYOK=0 || KEYOK=1
if [ $KEYOK == 1 ]
then
echo "ping $PINGHOST error"
echo "$ERRORMSG" >>/tmp/psave.log
$TERRORMSG $ERRORMSG
fi
sleep $SEC
fi
done

或參考

https://github.com/dmitriypavlov/pve-watchdog/blob/master/watchdog.sh

發表於 proxmox | 已標籤 | 發表迴響

ros moblie01 書籤

https://www.mobile01.com/topicdetail.php?f=110&t=3205444

發表於 ros | 發表迴響

顯示 mac address table

所有網橋的 mac 地址表的內容
interface bridge host print

列出特定網橋接口的 mac 地址表(大小寫有差)
interface bridge host print where bridge=bridge1

查找通過特定端口學習的 MAC 地址
interface bridge host print where on-interface=ether10

查找通過特定網橋上的特定端口學習的 MAC 地址
interface bridge host print where on-interface=ether10 bridge=bridge1

過濾掉本地mac地址
interface bridge host print where local=no

在表中搜索特定的 MAC 地址
interface bridge host print where mac-address=44:D9:E7:36:E1:67

搜索所有帶有特定 OUI 前綴的 mac 地址
interface bridge host print where mac-address~44:D9:E7

發表於 未分類 | 已標籤 | 發表迴響

python function

字典
利用 get 取值
get(‘key’,'no data’) #1:key值, 2:none 後顯示
keys() #取得所有 key
values() #取得所有 values
items() #取得所有 key 和values
範例 dict2.itmes()

發表於 python | 發表迴響