Linux

複製linux伺服器下的文件夾到windows伺服器

  • September 16, 2009

我需要找到一種方法將我的 Debian 伺服器的每日備份文件夾每周傳輸到 Windows 伺服器。實現這一目標的最簡單和最穩定的方法是什麼?我肯定需要在我的 Debian 伺服器上安裝 Samba 嗎?

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 中,就像我們為第一個解決方案所做的一樣。

引用自:https://serverfault.com/questions/65811