web-dev-qa-db-ja.com

LinuxからWindowsに毎分コピーする

私は現在、Linuxマシンから複数の人がアクセスできるWindows共有にファイルをコピーする方法をすばやく設定していますが、より良い方法を探しています。

Windows 7では、すべてのユーザーがフォルダーにアクセスできるようにしました。

Linuxでは、ディレクトリ/ mnt/windows_shareを作成し、sambaを使用してWindows共有をマウントしました。

Sudo mount -t cifs -o username=mouche,password=1234 //COMPUTERNAME/share_dir /mnt/windows_share

次に、ファイルのコピー元のディレクトリでSudoを使用してこのスクリプトを実行しました。

#!/usr/bin/Perl -w
while (1)
{
    system("cp -u * /mnt/windows_share/");
    sleep 1;
}

これに関する1つの問題は、cpに-uオプションを追加したにもかかわらず、更新するたびにWindowsの「変更日」プロパティが更新されることです。また、マシンが再起動した場合は、mountコマンドとスクリプトを再度実行する必要があります(Sudoを使用するため、パスワードを知っている必要があります)。

このプロセスを改善する方法について何か提案はありますか?

5
mouche

Cpの代わりにrsyncを試す必要があります:rsync -avz linux_path /mnt/windows_share/およびPerlループの代わりにcrontab:crontab -eそしてそれに次の行を追加します:

* * * * * rsync -avz linux_path /mnt/windows_share/

これは毎分実行される予定であり、それがあなたの場合のオプションである場合は、whileループよりも堅牢です。

10

共有をfstab(/ etc/fstab)に追加することで、共有を再マウントする必要をなくすことができます(また、非特権ユーザーアカウントによるマウントを許可することもできます)。

2
Sean C.