在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等工具定期备份重要数据,确保备份文件存储在安全位置(如异地服务器、云存储);