Если надо делать копию каталога который находится на Windows машине, поможет простой скрипт, конечно он ну очень простой, хотя и этого бывает достаточно.
В общем, будем сохранять файлы с машины Windows которая имеет IP 192.168.10.100 и имя хоста "coputername". Допустим на этом хосте имеется общая (расшаренная) папка с именем "SharedFolder" к которой можно попасть введя логин User и пароль Password/
Создаем файл, например /opt/backupfolder.sh
Хотя правильный каталог для скриптов обычно находится по адресу /usr/bin
#!/bin/bashD=$(date +%Y-%m-%d)mount -t cifs //192.168.10.100/SharedFolder /mnt/storage -o user=User,password=Password,domain=computernamemkdir -p /mnt/share/tempfolderrsync -zvr /mnt/storage/ /mnt/share/tempfolder/tar -zcf /mnt/share/backup/Folder$D.tar.gz /mnt/share/tempfolder/rm -rf /mnt/share/tempfolderecho Deleting copiesfind /mnt/share/backup/ -mtime -3 -exec rm {} \;echo Umount share //192.168.10.100/SharedFolderumount //192.168.10.100/SharedFolder
Здесь:
- Строка 1: Переменная D хранит текущею дату
- Строка 2: Команда mount монтирует каталог Windows машины "computername" используя логин User и пароль Password в точку /mnt/storage/
- Строка 3: Создаем временный каталог /mnt/share/tempfolder на Linux хосте
- Строка 4: С помощью rsync копируем содержимое /mnt/storage во временный каталог /mnt/share/tempfolder
- Строка 5: Как только данные скопировались в каталог /mnt/share/tempfolder, приступаем к их сжатию и созданию архива в каталоге /mnt/share/backup/. Имя файла архива при этом FolderТек.Дата.tar.gz
- Строка 6: Архив создан, теперь удаляем содержимое каталога /mnt/share/tempfolder
- Строка 7: Проверяем количество файлов резервных копий в каталоге /usr/share/backup/ которые старше трех суток, если мы делаем бекап каждый день их три штуки от каждого дня, удаляем лишние.
- Строка 8: Отключаем сетевой каталог //192.168.10.100/SharedFolder
Для теста скрипта, можно создать временные файлы со старой датой создания:
# touch -d '19 OCT 2016 14:16' Folder2016-10-19.tar.gz
И потом проверить командой find:
# find /mnt/share/backup/ -type f -mtime -3
Здесь команда find найдет все файлы старше 3 дней.