在CentOS系統中,“通過SSH恢復數據”主要涉及通過SSH傳輸備份數據進行恢復、恢復SSH服務自身數據及恢復服務器內誤刪文件三大類場景,以下是具體操作步驟:
若已通過SSH工具(如rsync
、scp
、tar+ssh
)將數據備份至遠程服務器,可通過反向操作將數據恢復至本地或目標服務器。
若備份時使用rsync -avz -e ssh
將數據同步至遠程服務器,恢復時只需反轉源目錄與目標目錄:
rsync -avz -e ssh user@remote_host:/path/to/backup/ /path/to/local/destination/
user@remote_host
:備份服務器的用戶名與IP/域名;/path/to/backup/
:遠程服務器上的備份目錄;/path/to/local/destination/
:本地需恢復的目標目錄。若備份時使用scp -r
遞歸復制目錄,恢復時同樣反轉路徑:
scp -r user@remote_host:/path/to/backup/ /path/to/local/destination/
-r
:遞歸復制目錄及其子目錄;若數據庫備份文件(如backup.sql
)存儲在遠程服務器,可通過SSH將備份文件傳輸至本地后恢復:
scp user@remote_host:/path/to/backup.sql /path/to/local/
mysql -u username -p database_name < /path/to/local/backup.sql
替換username
為數據庫用戶名、database_name
為目標數據庫名,輸入密碼后即可恢復數據。若SSH服務的配置文件(sshd_config
)或密鑰文件(ssh_host_*
)丟失,可通過備份文件恢復:
cp
命令復制了sshd_config
(如/path/to/backup/sshd_config.bak
),執行以下命令恢復:sudo cp /path/to/backup/sshd_config.bak /etc/ssh/sshd_config
tar
打包備份,解壓至原位置:sudo tar xzvf sshd_config_backup.tar.gz -C /
ssh_host_rsa_key
、ssh_host_ecdsa_key
),解壓至/etc/ssh/
目錄:sudo tar xzvf ssh_keys_backup.tar.gz -C /
sudo systemctl restart sshd
注意事項:恢復前需確保備份文件的完整性與權限(如sshd_config
需為600
權限,密鑰文件需為600
權限)。
若服務器內的文件因誤操作刪除,可通過以下工具恢復(需停止對目標分區的寫入操作,防止數據覆蓋):
sudo yum install extundelete
/dev/sda1
的/home
目錄):sudo umount /dev/sda1
sudo extundelete /dev/sda1 --restore-file /home/user/deleted_file.txt
sudo extundelete /dev/sda1 --restore-directory /home/user
RECOVERED_FILES
文件夾中。sudo yum install testdisk
sudo testdisk
/dev/sda
)及分區(如/dev/sda1
);Analyse
→Quick Search
(快速搜索)或Deep Search
(深度搜索),找到誤刪文件;C
鍵,選擇保存路徑(建議選擇其他分區)。rsync
、tar+ssh
等工具定期備份重要數據,確保備份文件存儲在安全位置(如異地服務器、云存儲);