10 款最佳 Ping 掃描工具,協助您尋找網路上的設備
比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。
範例場景(假設): Jordan 在 Ubuntu 系統上管理一台小型 Nextcloud 伺服器。應用程式檔案位於 `<app/application/app/users/users/app/ /var/www/nextcloudapplications /srv/nextcloud-data...
本範例為 Jordan 提供了一個可重複使用的 Restic 和 cron 工作流程。路徑、服務帳戶、資料庫名稱和計劃任務均為範例;請將其替換為您實際安裝中的值。這些命令並不表示此設定已在真實伺服器上運行或測試過。
單獨複製資料夾可能會遺漏 Nextcloud 重新連接檔案、使用者、共用和設定所需的資訊。目前的 Nextcloud 35 管理手冊列出了五項需要保留的內容:配置目錄、自訂應用程式(如有)、資料目錄、主題目錄和資料庫。復原指南指出,資料庫、資料目錄和設定檔至關重要。在參考範例之前,請先閱讀與您已安裝的 Nextcloud 版本對應的手冊。
Jordan 選擇備份完整的應用程式目錄,其中包括配置、應用程式和主題,以及單獨的資料目錄和資料庫轉儲。如果 Nextcloud 將使用者內容儲存在外部儲存位置,則還需要為每個外部儲存位置建立單獨的副本/srv/nextcloud-data。 Restic 只能保護備份程序可以讀取的路徑。
Nextcloud 的正式備份指南介紹了維護模式和資料庫備份。其復原指南則解釋了為什麼資料庫和檔案樹必須來自相容的復原點。
從您信任的軟體包來源安裝 Restic,並確認執行該作業的帳戶可以存取它。範例假設作業以 root 使用者身分執行,以便它可以讀取 Nextcloud 檔案和資料庫轉儲。它使用遠端 SFTP 儲存庫,因此 Jordan 的應用程式伺服器故障不會同時刪除唯一的備份副本。
restic version
install -d -m 700 /root/.config/restic
install -d -m 700 /root/.config/nextcloud
建立一個強密碼,並將其儲存/root/.config/restic/nextcloud-password為僅限 root 使用者存取的 Restic 儲存庫密碼。將該密碼的備份安全地保存在伺服器和儲存庫之外。 Restic 會對儲存庫資料進行加密,但遺失密碼可能會導致加密備份無法使用。請勿將密碼直接寫入腳本或 cron 任務中。
在遠端主機上為備份帳戶配置非互動式 SSH 訪問,並透過可信任通道驗證其主機金鑰。將以下儲存庫位置設定為該帳戶具有寫入權限的目錄:
export RESTIC_REPOSITORY='sftp:backup@vault.example.net:/srv/restic/nextcloud'
export RESTIC_PASSWORD_FILE='/root/.config/restic/nextcloud-password'
restic init
只需初始化一次儲存庫。 Restic 的儲存庫準備指南詳細介紹了支援的儲存後端和初始化方法。請將密碼檔案和 SSH 金鑰視為敏感訊息,並限制對其的存取。
Nextcloud 建議在備份時啟用維護模式,因為模式會阻止新登入並鎖定現有會話,以防止資料不一致。該命令必須以 HTTP 使用者身分執行;在典型的 Ubuntu 軟體包配置中,該使用者是www-data。 Jordan 的維護視窗將持續到資料庫轉儲和 Restic 備份完成,因此在此期間使用者無法使用 Nextcloud。
對於 MariaDB,Nextcloud 手冊建議mariadb-dump --single-transaction將資料庫憑證儲存在受保護的用戶端預設檔案中,例如 `.conf` /root/.config/nextcloud/mariadb.cnf,而不是將密碼嵌入到命令中:
[client]
user=nextcloud_backup
password=REPLACE_WITH_A_SECRET
host=localhost
使用權限限製檔案存取chmod 600 /root/.config/nextcloud/mariadb.cnf。建立一個僅具有伺服器和轉儲過程所需權限的資料庫帳戶。如果您的 Nextcloud 使用 PostgreSQL 或 SQLite,請替換為其文件中記錄的備份方法;不要直接執行 MariaDB 命令。
Jordan 會將以下內容儲存/usr/local/sbin/nextcloud-restic-backup並使其可執行。它使用鎖定來避免運行重疊,在建立轉儲之前啟用維護模式,將轉儲與應用程式和資料目錄一起備份,並且即使後續命令失敗,也會嘗試關閉維護模式。
#!/usr/bin/env bash
set -Eeuo pipefail
umask 077
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export RESTIC_REPOSITORY='sftp:backup@vault.example.net:/srv/restic/nextcloud'
export RESTIC_PASSWORD_FILE='/root/.config/restic/nextcloud-password'
NC_DIR='/var/www/nextcloud'
DATA_DIR='/srv/nextcloud-data'
DB_NAME='nextcloud'
DB_CNF='/root/.config/nextcloud/mariadb.cnf'
DUMP_DIR='/var/backups/nextcloud'
LOCK_FILE='/run/lock/nextcloud-restic-backup.lock'
STAMP=$(date -u +%Y%m%dT%H%M%SZ)
DUMP_FILE="$DUMP_DIR/nextcloud-$STAMP.sql"
maintenance_started=0
mkdir -p "$DUMP_DIR"
exec 9>"$LOCK_FILE"
flock -n 9 || { echo 'A Nextcloud backup is already running.' >&2; exit 1; }
finish() {
result=$?
trap - EXIT
if [[ "$maintenance_started" == 1 ]]; then
sudo -u www-data -- php "$NC_DIR/occ" maintenance:mode --off || result=1
fi
rm -f -- "$DUMP_FILE" || result=1
exit "$result"
}
trap finish EXIT
sudo -u www-data -- php "$NC_DIR/occ" maintenance:mode --on
maintenance_started=1
mariadb-dump --defaults-extra-file="$DB_CNF" --single-transaction \
--default-character-set=utf8mb4 --databases "$DB_NAME" > "$DUMP_FILE"
restic backup --tag nextcloud "$NC_DIR" "$DATA_DIR" "$DUMP_FILE"
檢查路徑後,以 root 使用者身分和權限建立可執行檔700。此腳本假定安裝程式使用www-dataMariaDB 和列出的路徑;請先核對這些路徑config/config.php和您的 Web 伺服器配置。此外,腳本也假定沒有其他管理員已啟用維護模式。如果命令、轉儲或 Restic 上傳失敗,shell 將退出並報錯,並且陷阱會嘗試復原服務;請檢查日誌以確認是否已復原。轉儲檔案以嚴格的權限存儲,並在運行後刪除。
這種簡單的模式會導致網站在整個 Restic 掃描和上傳過程中無法存取。對於大型資料目錄來說,這可能會耗費太長時間。如果您的檔案系統或儲存平台支持,請使用協調的資料庫轉儲和儲存快照,或其他應用程式一致的備份方案。確保資料庫快照和檔案快照代表的是同一時間點;單獨複製正在運行的資料庫和不斷變化的資料目錄可能會產生難以復原的備份。
手動運行成功後,Jordan 會安裝腳本並將其安排在靜默期運行。以 root 使用者身分編輯 root crontab 檔案sudo crontab -e並新增:
15 2 * * * /usr/local/sbin/nextcloud-restic-backup >> /var/log/nextcloud-restic.log 2>&1
此範例根據伺服器的 cron 時區從凌晨 2:15 開始;請選擇一個維護視窗可接受的時間。 Cron 的環境比互動式 shell 小,因此腳本會PATH明確設定並使用絕對路徑。建立具有嚴格權限的日誌檔案並配置日誌輪換,或將輸出傳送到系統的常規日誌服務。 Cron 調度僅啟動任務:它不會確認備份是否完成或還原是否成功。
備份成功後,Jordan 檢查快照是否出現:
restic snapshots --tag nextcloud
restic check
restic check檢查儲存庫結構。定期檢查restic check --read-data還會讀取儲存的數據,並可能佔用大量網路和磁碟時間,因此應根據儲存庫大小和復原需求進行調度。 Restic 的快照保留指南解釋說,刪除快照和清理不再引用的資料是兩回事,而且清理操作會鎖定儲存庫。建議先進行一次模擬運行,並制定符合您保留要求的策略:
restic forget --tag nextcloud --keep-daily 7 --keep-weekly 5 \
--keep-monthly 12 --dry-run
查看系統建議刪除的快照。確認無誤後,執行刪除--dry-run和新增操作--prune;在不與每日備份衝突的情況下執行快照清理。這些保留計數僅為範例,並非通用策略。請考慮法律規定的保留期限、可用儲存空間以及您可能需要恢復的時間跨度。
真正有意義的測試是恢復演練。將最近的快照還原到獨立系統上的臨時目錄中,而不是還原到 Jordan 的 Nextcloud 即時路徑上:
restic restore latest --tag nextcloud --target /tmp/nextcloud-restore-check
確認復原後的目錄樹包含預期的配置、資料和資料庫轉儲,並檢查代表性檔案。為了完整地執行復原操作,請在隔離環境中按照 Nextcloud 復原手冊進行操作,並在執行復原步驟之前驗證登入、檔案存取權限和預期共用。 Restic 的復原文件介紹如何選擇快照和復原目標。
Jordan 的定時任務僅適用於維護視窗與備份持續時間相匹配,且所有必要的資料路徑均位於本機且可讀的情況。當出現以下任何跡象時,應更改設計:
對 Jordan 而言,成功是顯而易見的:定時任務日誌顯示運行已完成,restic snapshots列出了最近標記的快照,存儲庫檢查未發現任何錯誤,並且恢復演練成功恢復了一個完整的 Nextcloud 實例。定時任務指令是備份例程的開始;只有完整且可復原的資料庫、設定、應用程式和使用者資料才能提供切實可行的復原路徑。
比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。
比較六款網路管理工具的效能監控功能,包括 SNMP 覆蓋範圍、映射、警報、部署模型和成本權衡。
比較適用於 Windows、iPhone 和 Android 的 Wi-Fi 分析器,包括頻道擁塞、訊號覆蓋範圍、熱圖和網路故障排除工具。
比較七款免費開源的 ping 監視器,從完整的網路套件到專注於延遲探測的工具,選擇最適合可用性、丟包率和歷史記錄的工具。
了解 QoS 在網路中的意義,DSCP 標記和流量佇列如何對語音、視訊和業務應用程式進行優先排序,以及 QoS 無法解決的問題。
比較適用於 Windows 和 Linux 的可靠 SFTP 伺服器軟體,包括 OpenSSH、Bitvise、SolarWinds 和 SFTPGo。尋找最適合您的安全性和文件傳輸需求的軟體。
比較七款 IP 位址管理工具,包括子網路發現、DNS 和 DHCP 協調、網路清單和開源 IPAM。
建置實用的網路監控,提供清晰的設備覆蓋範圍、有用的效能指標、可操作的警報,並對 SolarWinds NPM、PRTG 和 OpManager 進行比較。
比較網路掃描工具,以實現快速設備發現、跨平台 IP 掃描和企業級 IPAM,並指導如何將每個選項與您的網路相符。
使用 Nmap 的 --traceroute 選項將躍點對應到授權主機,了解躍點和 RTT 輸出,並在不進行過度掃描的情況下排查缺失的回應。