Автоматическое копирование файлов с компьютера с Linux на компьютер с Windows - PullRequest
6 голосов
/ 14 ноября 2008

Мне нужно автоматически копировать файлы с машины linux на windows один раз в день.

Я ищу что-то простое и безопасное, например, scp, rsync, sftp. К сожалению, я не знаю, как настроить это на компьютере с Windows.

Кто-нибудь знает, как это сделать?

Ответы [ 5 ]

6 голосов
/ 14 ноября 2008

Вы можете попробовать смонтировать диск Windows в качестве точки монтирования на машине с Linux, используя smbfs; После этого вы сможете использовать обычные инструменты написания сценариев и копирования для Linux, такие как cron и scp / rsync, для копирования.

2 голосов
/ 14 ноября 2008

Я не использовал его уже много лет, но вы можете попробовать Unison с http://www.cis.upenn.edu/~bcpierce/unison/

Это можно сделать с помощью 'smbclient', который во многом похож на FTP-клиент для общего ресурса Windows. Проверьте man-страницу: man smbclient и поищите способы ее сценария с опцией -c или man expect для управления.

Вот как я бы, вероятно, сделал это:

  1. Выберите, каким пользователем вы будете когда вы синхронизируете файлы. Войти как этот пользователь и введите «ID», и получите числовой идентификатор. Вы будете использовать этот идентификатор в шаг 4
  2. Стать 'root'
  3. mkdir /mnt/sharename
  4. Отредактируйте ваш файл / etc / fstab и добавьте запись примерно так. Замените идентификатор пользователя 500 на ваш идентификатор пользователя. Замените sharename на имя вашего общего ресурса Windows. Замените WINDOWSHOSTNAME своим именем хоста или IP-адресом. Если вы не знаете акции, запустите smbclient -L WINDOWSHOSTNAME.

    //WINDOWSHOSTNAME/sharename /mnt/sharename cifs credentials=/root/smblogin,uid=500,noauto,user 0 0

  5. Отредактируйте / root / smblogin и вставьте в него следующие две строки

    username=YOUR_WINDOWS_USERNAME<br> password=YOUR_WINDOWS_PASSWOD

  6. Войдите в систему как пользователь с шага 1.

  7. Попробуйте смонтировать общий ресурс: mount /mnt/sharename
  8. Если это удастся, напишите скрипт, который сделает это автоматически. Давайте назовем его «backup.sh»:

    #!/bin/sh<br> df | grep -q /mnt/sharename<br> if test $? -ne 0 ; then<br> mount /mnt/sharename<br> fi<br> cp -r /path/to/dir /mnt/sharename/destination/

  9. Используйте cron для запуска скрипта.

    1. Тип crontab -e
    2. Поместите в файл следующее:

    PATH=/bin:/usr/bin<br> # Backup at 2:15 A.M. every day. Run 'man 5 crontab' for help on the time format<br> 15 2 * * * /path/to/backup.sh

2 голосов
/ 14 ноября 2008

«Я не знаю, как настроить это на компьютере с Windows». Windows это клиент или сервер? В убыток означает, что конкретно? Что ты не можешь сделать?

«linux machine to windows» можно сделать двумя способами.

  1. Linux является клиентом. Windows запускает сервер FTP, SCP или SSH. В Linux есть клиент, который отправляет файл в Windows. Посмотрите на FileZilla для бесплатного Windows FTP-сервера. Кроме того, в Windows часто есть служба FTP, которая отключена. Включите его.

  2. Windows - это клиент. Windows периодически вытягивает файл с сервера linux. Это проще, поскольку в Linux уже есть все необходимые серверы. Вы, однако, должны запустить их в Linux.

Существует множество клиентов sftp, scp для Windows. Windows поставляется с FTP-клиентом. Google для клиента sftp. Вы найдете WinSCP , Putty , filezilla и список free country список клиентов sftp.

2 голосов
/ 14 ноября 2008

Вы можете найти rsync для Windows в Cygwin, с помощью которого вы можете настроить сервер rsync на Windows и запустить на компьютере Linux задание cron rsync, отправив все файлы на компьютер Windows. Мы привыкли это делать, и все работало нормально.

1 голос
/ 14 ноября 2008

Вы можете попробовать WinSCP и поддержку сценариев . И Windows поддерживает какую-то cron-подобную операцию в управлении, не так ли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...