停止VSFTP服务:
恢复数据前,必须停止vsftpd服务以避免数据冲突或损坏。执行以下命令:
sudo systemctl stop vsftpd
确认数据存储路径:
VSFTP的默认数据目录通常为/var/ftp(匿名用户上传文件)或/home/ftpuser(对应用户的上传目录,如ftpuser用户的上传路径为/home/ftpuser)。需根据实际情况确认数据存储位置。
若之前已通过tar命令备份了VSFTP配置或数据,可通过以下步骤恢复:
VSFTP的主配置文件位于/etc/vsftpd/vsftpd.conf,备份文件通常命名为vsftpd_backup.tar.gz(位于/backup/ftp/或其他安全路径)。执行以下命令恢复:
sudo tar -xzvf /backup/ftp/vsftpd_backup.tar.gz -C /
此命令会将备份的配置文件解压到/etc/vsftpd/目录,覆盖原有文件。
若备份的是用户数据目录(如/home/ftpuser),使用tar命令解压到对应路径:
sudo tar -xzvf /backup/ftp/home_ftpuser_backup.tar.gz -C /
若备份的是FTP根目录(如/var/ftp),则执行:
sudo tar -xzvf /backup/ftp/ftp_root_backup.tar.gz -C /
确保解压目标路径与原始数据目录一致。
检查数据完整性:
恢复完成后,登录FTP服务器(通过命令行或FTP客户端),检查文件是否存在、权限是否正确(通常文件权限为644,目录权限为755)。
示例命令:
ls -l /var/ftp # 检查FTP根目录文件
ls -l /home/ftpuser # 检查用户目录文件
重启VSFTP服务:
确认数据无误后,启动vsftpd服务以恢复FTP功能:
sudo systemctl start vsftpd
可通过systemctl status vsftpd命令检查服务状态,确保其处于active (running)状态。
若未提前备份,可尝试使用数据恢复工具(如extundelete),但成功率取决于数据是否被新数据覆盖:
安装extundelete:
sudo yum install epel-release -y
sudo yum install extundelete -y
卸载目标分区:
假设数据存储在/dev/sda1分区(需替换为实际分区),执行:
sudo umount /dev/sda1
恢复数据:
恢复指定目录(如/var/ftp)下的所有文件:
sudo extundelete /dev/sda1 --restore-directory /var/ftp
恢复的文件将保存在当前目录下的RECOVERED_FILES文件夹中,需手动复制到原始路径。
tar或rsync命令备份VSFTP配置和数据,存储到外部设备或云存储。