
Ubumtu VM 動態擴展根目錄(Hyper-V適用)
當你使用VM的時候,常常會預估錯誤硬碟的大小,預留太小的空間,要增加空間可以用以下的方法
1.在 VM 管理中先增大硬碟空間

2.確認分割區大小
3.下載擴展工具
sudo apt update && sudo apt install cloud-guest-utils -y
4.使用 growpart 將硬碟擴展大最大空間
sudo resize2fs /dev/sda1
當你使用VM的時候,常常會預估錯誤硬碟的大小,預留太小的空間,要增加空間可以用以下的方法
sudo apt update && sudo apt install cloud-guest-utils -y
sudo resize2fs /dev/sda1
Wubuntu(全名為 Windows Ubuntu)是一款基於 Ubuntu 的作業系統,在提供與 Microsoft Windows 相似的主題和工具,但不需要高規格的系統要求,並且可以在 linux 環境下使用 exe 檔案和 Android 應用,也可以支援 Nvidia 顯卡和繁體中文。
Wubuntu 的最新版本基於 Kubuntu 24.04.1 LTS,代號為「Winux」或「Windows Theme Over Linux」。
這是一組工具,提供類似於 Windows 系統的控制面板和設定,以及增強的 Windows 和 Android 子系統支援,還可以上網用 OneDrive 和 Google Drive。
使用者可以透過官方網站下載 Wubuntu 的最新版本,安裝檔案是 ISO 檔案,是可以用 VM 安裝或是用 USB 隨身碟安裝。
開機的安全性選項要選擇 Microsoft UEFI
Wubuntu 可能涉及一些版權和商標問題,以及使用者資料處理方面的爭議。
今天來實做一個備份任務,要在 Ubuntu 上設定每日凌晨 4:00 自動備份 MariaDB 中的所有資料庫,我們可以使用 cron
和一個自定義的 Shell 腳本來完成這個任務,以下是詳細步驟和代碼:
先創建一個備份 Shell Script,這個腳本將備份所有資料庫並分開儲存。
1.在 /usr/local/bin
目錄下創建一個新的 Shell 腳本:
sudo nano /usr/local/bin/backup_mariadb.sh
2. Script 的內容指令如下
#!/bin/bash # 設定資料庫的用戶名和密碼 DB_USER="your_db_user" DB_PASSWORD="your_db_password" DB_HOST="10.0.0.1" # 設定備份儲存目錄 BACKUP_DIR="/path/to/backup/dir" mkdir -p $BACKUP_DIR # 獲取當前日期和時間 CURRENT_DATE=$(date +%Y-%m-%d-%H-%M-%S) # 獲取所有資料庫名稱 DATABASES=$(mysql -h$DB_HOST -u$DB_USER -p$DB_PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database) # 備份每個資料庫 for DB in $DATABASES; do if [[ "$DB" != "information_schema" && "$DB" != "performance_schema" && "$DB" != "mysql" && "$DB" != "sys" ]]; then BACKUP_FILE="$BACKUP_DIR/$CURRENT_DATE-$DB.sql" mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASSWORD --databases $DB > $BACKUP_FILE fi done
其中要修改的有
3.將 .sh 變成可執行擋
sudo chmod +x /usr/local/bin/backup_mariadb.sh
1.打開 cron
crontab -e
2.加入設定內容,要注意的是實間是主機時間,通常主機是 UTC+0 的時區,要注意轉換,才會是正確的當地時間,可以參考這篇
0 4 * * * /usr/local/bin/backup_mariadb.sh
這樣就會在每天的早上四點去備份資料庫了
程式碼區塊要改成下面這一個
# 備份每個資料庫並壓縮 for DB in $DATABASES; do if [[ "$DB" != "information_schema" && "$DB" != "performance_schema" && "$DB" != "mysql" && "$DB" != "sys" ]]; then BACKUP_FILE="$BACKUP_DIR/$CURRENT_DATE-$DB.sql" ZIP_FILE="$BACKUP_DIR/$CURRENT_DATE-$DB.zip" mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASSWORD --databases $DB > $BACKUP_FILE zip $ZIP_FILE $BACKUP_FILE rm $BACKUP_FILE fi done
可以利用下面的指令,放在程式碼的最後面
# 刪除兩天前的備份文件 find $BACKUP_DIR -type f -name "*.zip" -mtime +2 -exec rm {} \;
需要改時間的話,只要修正 -mtime +2 ,把+2改成自己需要的時間
https://help.ubuntu.com/community/CronHowto
Linux 的 find
指令是一個非常強大而且必定要學習的工具,用於在文件系統中搜索符合特定條件的文件或目錄。以下想要介紹這個指令,通過各種參數和選項來定制搜索條件,讓你能夠精確地找到所需的文件。
find
指令的基本語法如下:
find [路徑...] [選項] [動作]
find
指令開始搜索的目錄。如果不指定,默認為當前目錄。-name 'pattern'
:搜索文件名匹配指定的模式的文件。模式可以包含通配符,如 *
和 ?
。find /home/user -name '*.txt'
-type f
:僅搜索文件。-type d
:僅搜索目錄。find /var/log -type f
-mtime +n
:搜索在 n 天之前被修改過的文件。-mtime -n
:搜索在最近 n 天內被修改過的文件。find / -mtime -10
-size +n
:搜索大於 n 單位的文件。單位可以是 k(KB)、M(MB)、G(GB)。-size -n
:搜索小於指定大小的文件。find / -size +100M
-print
:輸出匹配文件的完整路徑(這是默認動作)。-delete
:刪除找到的文件。-exec cmd {} \;
:對找到的每個文件執行指定的命令。{}
是一個占位符,代表當前找到的文件名。find /tmp -type f -mtime +30 -exec rm {} \;
搜尋整個硬碟中大於100MB的log檔案(不分大小寫),並且把她刪除
find / -type f -size +100M -iname "*.log" -delete
尋找並刪除 30 天前的臨時文件:
find /tmp -type f -mtime +30 -delete
尋找特定大小的日誌文件並列出詳細信息:
find /var/log -type f -size +50M -exec ls -lh {} \;
尋找所有 JPG 文件並複製到另一個目錄:
find /home/user/Pictures -name '*.jpg' -exec cp {} /home/user/Backup/ \;
https://www.redhat.com/sysadmin/linux-find-command
如今的網站管理,一個強大且易於使用的主機管理器是不可或缺的。堡塔面板(BT.CN)用其簡潔的介面以及豐富的功能,成為了多數中文為主的站長們和開發者的首選工具之一。
今天將詳細介紹寶塔面板的功能特點,特別是其WAF(Web應用防火牆)功能,以及它為何被譽為好用且美觀的主機管理器。
堡塔面板,簡稱BT,是一款免費的Linux/Windows伺服器管理軟件。它通過簡潔的Web介面,幫助用戶輕鬆管理伺服器上的網站、資料庫、FTP、SSL等服務。無論是初學者還是專業運維人員,都能快速上手並高效地管理伺服器。
https://www.bt.cn/new/download.html
產品線分為面板、WAF、安全模組、日誌分析、手機APP管理模組
WAF是寶塔面板的一項重要安全功能。它能夠有效地保護網站免受各種網路攻擊,如SQL注入、XSS攻擊、文件包含等。以下是寶塔面板WAF功能的幾個亮點:
有分免費版(基礎功能,管理功能,資源監控)、專業版(專業功能,多數是防火牆)、企業版(增強功能,進階安全防護功能)
https://www.bt.cn/new/pricing.html
預設在你的windows下的 Linux 系統會取得一個 IP,通常是172.19開頭的,這是因為用的是 Hyper-V 架構導致的,變成你再 WSL 內開發的服務都很難對外,但其實只要利用 windows 內建的 Netsh interface portproxy 即可
透過 netsh interface portproxy 來作設定
netsh interface portproxy add v4tov4 listenport=<yourPortToForward> listenaddress=0.0.0.0 connectport=<yourPortToConnectToInWSL> connectaddress=(wsl hostname) -I)
其中
listenport 和 connectport 通常設定一樣,也就是你的服務的 port
listenaddress=0.0.0.0 (固定)
connectaddress 要記得是填入你 ubuntu 的IP喔,可以透過 wsl hostname -I 找出 IP
wsl hostname -I
假設你有一個服務是運行在 port 3001,ubuntu 的 ip 172.19.227.52,修改後的你指令應該要長成
netsh interface portproxy add v4tov4 listenport=3001 listenaddress=0.0.0.0 connectport=3001 connectaddress=172.19.227.5
最後記得要打開對應的防火牆的設定喔
關於 netsh 的控制指令說明
顯示目前所有的設定
netsh interface portproxy show all
重新設定 netsh
netsh interface portproxy reset
https://learn.microsoft.com/zh-tw/windows/wsl/networking
近期留言