我需要找到一种方法,每周将 Debian 服务器的每日备份文件夹传输到 Windows 服务器。实现此目的最简单、最稳定的方法是什么?我是否一定需要在 Debian 服务器上安装 Samba?
答案1
MS-Windows 共享文件夹: 您可以在 Windows 和 Linux 系统之间共享数据,以便进行以下用途:例如,您想通过挂载到 Linux 系统下的 /mnt/win 目录来访问名为 //windowsserver/sharename 的 MS-Windows 共享。因此,请执行以下命令:
mkdir -p /mnt/win
mount -t smbfs -o username=winntuser,password=mypassword //windowsserver/sharename /mnt/win
接下来创建密码文件 /etc/sambapasswords:
cat > /etc/sambapasswords
username = winntuser
password = mypassword
确保只有 root 才能访问它
chown root:root /etc/sambapasswords
chmod 600 /etc/sambapasswords
在 /etc/fstab 中添加一个条目:
//windowserver/share /mnt/win smbfs
auto,gid=users,fmask=0664,dmask=0775,iocharset=iso8859-15, credentials=/etc/sambapasswords 0 0
如果您需要每天凌晨 1 点进行备份,请像这样将一个条目附加到您的 crontab 中:
0 1 * * * cp /path/to/yourbackup /mnt/win
FTP 解决方案:
您可以在 Windows 计算机上安装 ftp 服务器。filezilla 服务器可以完美地完成这项工作。设置一个 ftp 文件夹和一个具有所有必需权限的帐户。稍后设置一个名为 ~/.netrc 的文件,内容如下:
machine windowserver
login ftpuser
password ftppassword
确保只有 root 有权限访问它:
chown root:root ~/.netrc
chmod 600 ~/.netrc
将此行附加到您的备份脚本,将您的备份文件远程传输到您的 ftp 服务器:
#!/bin/bash
filename=yourbackupfile
ftp <<
EOF
open windowserver
bin
verbose
prompt
cd ${remote_path}
put ${filename}
bye
EOF
最后将您的备份脚本添加到您的 crontab 中,就像我们对第一个解决方案所做的那样。
答案2
您也可以使用 rsync 执行此操作。在 Linux 计算机上设置 rsync 服务器,并使用rsync 客户端在 Windows 机器上获取文件。
使用 rsync,你将能够恢复中断的传输
答案3
以下是我用来与 Windows 服务器通信的脚本。您需要在 Windows 机器上添加共享(即 Samba 共享):
#!/bin/sh
# Script d'envoi des archives
cd /mount directory
mount -t cifs //SMB-SHARE share name/ -o username=USER,password=PASSWORD,dir_mode=0777,file_mode=0777
umount share