使用Linux SFTP备份数据是一个相对简单的过程,以下是详细步骤:
安装SFTP服务器:
sudo apt-get install openssh-server # Debian/Ubuntu
sudo yum install openssh-server # CentOS/RHEL
sudo dnf install openssh-server # Fedora
配置SFTP服务器:
/etc/ssh/sshd_config
:sudo nano /etc/ssh/sshd_config
Subsystem sftp /usr/lib/openssh/sftp-server
PasswordAuthentication yes
sudo systemctl restart sshd
创建备份目录:
sudo mkdir -p /backup/data
sudo chown nobody:nogroup /backup/data
连接到SFTP服务器:
sftp
或图形化工具如FileZilla。sftp username@hostname
上传文件或目录:
put
命令上传单个文件:put /path/to/local/file /backup/data/
put -r
命令递归上传整个目录:put -r /path/to/local/directory /backup/data/
下载文件或目录(可选):
get
命令:get /backup/data/file /path/to/local/
get -r /backup/data/directory /path/to/local/
退出SFTP会话:
exit
退出SFTP会话。为了简化备份过程,你可以编写一个自动化脚本。以下是一个简单的示例脚本:
#!/bin/bash
# 配置变量
LOCAL_DIR="/path/to/local/directory"
REMOTE_DIR="/backup/data"
HOSTNAME="hostname"
USERNAME="username"
# 创建备份目录(如果不存在)
ssh ${USERNAME}@${HOSTNAME} "mkdir -p ${REMOTE_DIR}"
# 上传本地目录到远程服务器
rsync -avz --delete ${LOCAL_DIR}/ ${USERNAME}@${HOSTNAME}:${REMOTE_DIR}
echo "Backup completed successfully!"
将上述脚本保存为 backup.sh
,然后赋予执行权限并运行:
chmod +x backup.sh
./backup.sh
这个脚本使用 rsync
工具来同步本地和远程目录,并删除远程目录中不再存在的文件。
通过以上步骤,你可以轻松地使用Linux SFTP进行数据备份。