centos ssh如何恢复数据
导读:CentOS系统中通过SSH恢复数据的常见场景及方法 在CentOS系统中,“通过SSH恢复数据”主要涉及通过SSH传输备份数据进行恢复、恢复SSH服务自身数据及恢复服务器内误删文件三大类场景,以下是具体操作步骤: 一、通过SSH传输备份数...
CentOS系统中通过SSH恢复数据的常见场景及方法
在CentOS系统中,“通过SSH恢复数据”主要涉及通过SSH传输备份数据进行恢复、恢复SSH服务自身数据及恢复服务器内误删文件三大类场景,以下是具体操作步骤:
一、通过SSH传输备份数据进行恢复(文件/数据库)
若已通过SSH工具(如rsync
、scp
、tar+ssh
)将数据备份至远程服务器,可通过反向操作将数据恢复至本地或目标服务器。
1. 文件恢复(使用rsync)
若备份时使用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/
:本地需恢复的目标目录。
该命令会将远程备份目录中的文件同步至本地目标目录,保留文件权限、时间戳等信息。
2. 文件恢复(使用scp)
若备份时使用scp -r
递归复制目录,恢复时同样反转路径:
scp -r user@remote_host:/path/to/backup/ /path/to/local/destination/
-r
:递归复制目录及其子目录;- 其他参数与备份命令一致。
3. 数据库恢复(MySQL示例)
若数据库备份文件(如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服务自身数据(配置文件/密钥)
若SSH服务的配置文件(sshd_config
)或密钥文件(ssh_host_*
)丢失,可通过备份文件恢复:
1. 恢复SSH配置文件
- 若备份时使用
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 /
2. 恢复SSH密钥文件
- 若备份了SSH主机密钥(如
ssh_host_rsa_key
、ssh_host_ecdsa_key
),解压至/etc/ssh/
目录:sudo tar xzvf ssh_keys_backup.tar.gz -C /
- 恢复完成后,重启SSH服务使配置生效:
sudo systemctl restart sshd
注意事项:恢复前需确保备份文件的完整性与权限(如sshd_config
需为600
权限,密钥文件需为600
权限)。
三、恢复服务器内误删文件(extundelete/testdisk)
若服务器内的文件因误操作删除,可通过以下工具恢复(需停止对目标分区的写入操作,防止数据覆盖):
1. 使用extundelete(适用于ext3/ext4文件系统)
- 安装工具:
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
文件夹中。
2. 使用testdisk(适用于多种文件系统)
- 安装工具:
sudo yum install testdisk
- 运行testdisk:
sudo testdisk
- 选择磁盘与分区:按照提示选择包含误删文件的磁盘(如
/dev/sda
)及分区(如/dev/sda1
); - 分析分区:选择
Analyse
→Quick Search
(快速搜索)或Deep Search
(深度搜索),找到误删文件; - 恢复文件:选中文件后按
C
键,选择保存路径(建议选择其他分区)。
注意事项
- 及时停止写入:数据丢失后,立即停止对目标分区的写入操作(如卸载分区、关闭应用程序),避免新数据覆盖旧数据;
- 定期备份:通过
rsync
、tar+ssh
等工具定期备份重要数据,确保备份文件存储在安全位置(如异地服务器、云存储); - 测试恢复流程:定期测试备份文件的恢复流程,确保备份有效性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos ssh如何恢复数据
本文地址: https://pptw.com/jishu/726786.html