Добрый день. Помогите пожалуйста разобраться с такой задачей:
За архивировать каталог(только измененные файлы) на Linux(ubuntu) машине и отправить его по локальной сети на Windows(seven) машину.
Хотелось бы автоматизировать данный процесс, что бы он проводился каждый день ну где то часов в 21:00.
пользователь на windows: odmin
пароль: odmin
имя: srv5
путь для копирования: D:/Arch/
Буду очень признателен за Вашу помощь..
Автоматизация резервного копирования из Linux в Windows
хотелось бы просто написать bash'евский скрипт...
Делаем шару (Arch/соответственно разрешаем нашему пользователю odmin в нее запись) на w7, далее монтируем каталог в ubunt с помощью mount.cifs в папку допустим /mnt/arch, далее выполняем синхронизацию с помощью rsync, на w7 ставим winrar допустим, далее по планировщику делаем архив каталога arch(но это для экономии места)
[quote=Lupo Alberto]Как один из вариантов решения проблемы.
хотелось бы просто написать bash'евский скрипт...[/quote]
И что вас останавливает? rdiff-backup'у графический интерфейс не нужен. Вы хотели бы, чтобы скрипт написали за вас?
реальный пример(только немного изменено)
#!/bin/bash
date
sleep 2
cd /mnt
mkdir tmp_backup
sleep 2
/bin/mount -t cifs BACKUPSERVER:/share /mnt/tmp_backup -o username=USERNAME,password=PASSWORD >> /var/log/backup_mount.log
sleep 2
/usr/bin/rsync -rlcpvz /home/USERNAME_LINUX /mnt/tmp_backup >> /var/log/backup_files.log
sleep 2
/bin/umount /mnt/tmp_backup
sleep 2
cd /mnt
rm -rf tmp_backup
где:
BACKUPSERVER - ip или имя сервера(рабочей станции где есть шара)
share - каталог
USERNAME и PASSWORD - имя и пароль пользователя на сервере, для доступа к шаре
USERNAME_LINUX - и так все ясно
далее в cron прописываем когда и сколько раз будет выполняться данный скрипт, про tar писать не стал, думаю там все ясно будет, есть пару недостатков, нет проверки, доступен ли хост или нет. Как то так в общем)
(только измененные файлы)
man find (на предмет опции -newer) - тестовый файл == последний бекап.
За архивировать каталог
man tar
отправить его по локальной сети на Windows(seven) машину.
man mount на предмет cifs
Хотелось бы автоматизировать данный процесс, что бы он проводился каждый день ну где то часов в 21:00.
man crontab
Найти файлы измененные за последние сутки:
find / -mtime -1 -printНайти файлы измененные за последние сутки:
всё верно, но вариант с -newer намного лучше, он находит файлы, изменённые со времени создания прошлого бекапа.
(возможно провод был оборван, бекап не передался, и потому бекапить надо за 2 дня)
Всем кто откликнулся большое спасибо. Попробую разобраться. Если будут еще предложения у удовольствием выслушаю. Еще раз спасибо.
Ввожу такую команду: mount -t cifs srv5:/arch /mnt/tmp_backup -o username=odmin,password=odmin >> //home/odmin/file
выводит: только root может сделать это
Ввожу: mount -t cifs //srv5/arch /mnt/support
он опять тоже самое..
Пароля рота нет. Помогите пожалуйста. Остается только разобраться как закидывать файлы на локальный компьютер(с Ubuntu на Windows 7)
только root может сделать это
из под root необходимо выполнять монтирование каталогов.или sudo mount -t cifs srv5:/arch /mnt/tmp_backup -o username=odmin,password=odmin
>> //home/odmin/file- это не обязательно делать :-)
Пароля рота нет.
насколько я помню, для самбы пароль не нужен, есть команда, smbcmd если я не ошибаюсь, она не требует пароля рута. Для ваших целей и это подойдёт. А монтирование запрещено всем, кроме рута.
Я монтирую свой windows файловый сервер как в данном примере http://commandlist.ru/command/3503 и акрониксом складываю образы в смонтированную директорию. Важно после отмантировать smb шару, а то будет ядро колбасить при выключенном windows сервере. ;)