Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Резервное копирование на FLASH-накопитель  (Прочитано 2872 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Viveda

  • Активист
  • *
  • Сообщений: 376
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #15 : 13 Июня 2015, 11:28:23 »
Так... видимо, я чего-то недопонимал/недопонимаю :)
Уточню одно из требований. Я хотел, чтобы скрипт был полностью автономен, т. е., чтобы не приходилось что-либо настраивать еще. Как я вижу, это не выполнимо?

Т.е. чтобы на любой системе запуская скрипт автоматом (без пароля рута) монтировалась флешка? Нет, так нельзя.

Цитировать
Т. е., возможные варианты.
1. Настраиваем sudo, чтобы для команды mount (или для нашего скрипта, в котором используется эта команда) не запрашивался пароль. Соответственно, "sudo mount" в скрипте работает без запроса пароля.
2. Вписываем строку в fstab с опцией auto и в скрипте ничего не монтируем - раздел будет примонтирован автоматически.
3. Вписываем строку в fstab с опциями noauto, user. Раздел автоматически не монтируется, монтируем в скрипте без sudo под любым пользователем.

Так?
Я пока не совсем понимаю, какое преимущество, кроме возможности автоматического монтирования, дает внесение строк в fstab?
Что-то я не пойму, какой вариант оптимальнее будет?
Первый, вроде, с точки зрения безопасности не очень... Третий... нет смысла монтировать/размонтировать в скрипте...
Второй?

Ну так выше я предлагал еще 4-й вариант:
Цитировать
Кстати, лучше в sudoers добавить свой скрипт, вместо mount/umount.

ALL ALL=(ALL) NOPASSWD:/usr/local/mybackupscript.sh
WBRGDS, Viveda

Оффлайн koluna

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #16 : 13 Июня 2015, 11:58:35 »
Т.е. чтобы на любой системе запуская скрипт автоматом (без пароля рута) монтировалась флешка? Нет, так нельзя.

Да, хотел именно так. Теперь понял, что нельзя, спасибо.

Цитировать
Ну так выше я предлагал еще 4-й вариант:

Это я отнес к первому варианту (в скобках указано) :)

А по поводу fstab что можете сказать (вопросы выше)?

Оффлайн Viveda

  • Активист
  • *
  • Сообщений: 376
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #17 : 13 Июня 2015, 12:14:08 »
Ну скрипт с точки зрения безопасности понадежнее будет, чем давать права на mount/umount без пароля.

А по поводу fstab - я не совсем пойму поставленную задачу. Скрипт будет проверять доступность флешки и что-то делать/предупреждать?
WBRGDS, Viveda

Оффлайн koluna

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #18 : 13 Июня 2015, 12:34:57 »
Ну скрипт с точки зрения безопасности понадежнее будет, чем давать права на mount/umount без пароля.

Согласен, но если весь скрипт выполнять под sudo, то по ошибке можно систему убить, как я понимаю?

Цитировать
А по поводу fstab - я не совсем пойму поставленную задачу. Скрипт будет проверять доступность флешки и что-то делать/предупреждать?

Я просто не совсем понял, какие преимущества вообще дает нам fstab.
Я вижу пока только:
1. Возможность автоматического монтирования.
2. Указание множества опций в файле и последующее облегчение монтирования командой mount без указания этого множества опций.

Вообще, скрипт перед записью на накопитель, конечно, должен проверить, смонтирован ли накопитель или нет.

У меня сейчас другая проблема. При подключенной FLASH GRUB путается в разделах и не запускает систему...

Оффлайн piyavking

  • Активист
  • *
  • Сообщений: 761
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
Re: Резервное копирование на FLASH-накопитель
« Ответ #19 : 13 Июня 2015, 12:58:39 »
в /etc/sudoers прописать, чтоб пароль не спрашивал. вот мой (я себе запрос пароля вообще отключил):

(Нажмите, чтобы показать/скрыть)

его, ЕМНИП, можно настроить так, чтоб он именно на конкретную команду пароль не запрашивал, в твоём случае - на mount.

Главное - редактировать предельно аккуратно, и забэкапив старый файл, потому, что ошибка в /etc/sudoers тут же наглухо перекрывает возможность сделать что-то от root'а, и единственный выход тогда - грузиться с флешки, и восстановить бэкап этого файла.
RPI4, awesomeWM, st, librewolf, vim/gvim, mpv/smplayer, jack, guitarix, lmms, ardour, mednafen, rhvoice, dsda-doom

Оффлайн koluna

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #20 : 13 Июня 2015, 13:24:54 »
в /etc/sudoers прописать, чтоб пароль не спрашивал. вот мой (я себе запрос пароля вообще отключил):

Я знаю, что можно прописать, но, как писал выше, не хотелось бы трогать системные файлы (особенно конфиг sudo).
Попробую через fstab.

Оффлайн piyavking

  • Активист
  • *
  • Сообщений: 761
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
Re: Резервное копирование на FLASH-накопитель
« Ответ #21 : 15 Июня 2015, 00:46:58 »
не хотелось бы трогать системные файлы (особенно конфиг sudo).
Попробую через fstab.

fstab как бы тоже ведь системный файл

впрочем, вольному - воля)
RPI4, awesomeWM, st, librewolf, vim/gvim, mpv/smplayer, jack, guitarix, lmms, ardour, mednafen, rhvoice, dsda-doom

Оффлайн koluna

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #22 : 15 Июня 2015, 10:24:01 »
не хотелось бы трогать системные файлы (особенно конфиг sudo).
Попробую через fstab.

fstab как бы тоже ведь системный файл

Я знаю, но на мой взгляд сейчас, использование его - более правильный вариант, раз уже без редактирования системных файлов не обойтись... попробовал, получается. Позже выложу на ревью, что написал:)

У меня сейчас другие проблемы...
1. Вставленная FLASH при загрузке сбивает GRUB. Что-то с нумерацией дисков и ОС не загружается.
2. Странно, но во время работы над скриптом резервного копирования я получил подтверждение, что не зря этим занимаюсь, т. к. на днях выплыло "400-ahci port0 device error". Проверил smartctl - винт умирает. Данные забекапил, купил новый винт, систему поднимаю...

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #23 : 15 Июня 2015, 12:07:08 »
есть параметры nouser, group и owner под ключём -o

Эта команда запрашивает пароль:
Цитировать
sudo mount /dev/sdb1 /media/flash -t vfat -o user,sync,iocharset=utf8,codepage=866,umask=000
Что я не так делаю?
Смотреть на буквы из моего сообщения и текст man до просветления.

Кроме того, я бы на вашем месте проверял, не смонтировано ли уже что-то в данную директорию.

Оффлайн koluna

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #24 : 21 Июня 2015, 10:16:46 »
Всем привет!

Как и обещал, выкладываю на ревью свой скрипт. Скрипт рабочий, но, возможно несколько корявый...
Буду благодарен замечаниям и предложениям.

Раздел монтируется автоматом через fstab. Но если при запуске скрипта раздел не смонтирован и есть возможность его смонтировать, то он монтируется скриптом. Размонтирование не осуществляется. Если в заданную точку монтирования смонтирован другой раздел или заданный раздел смонтирован в точку монтирования, отличную от заданной, то скрипт завершается с ошибкой.

(Нажмите, чтобы показать/скрыть)

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #25 : 22 Июня 2015, 12:51:35 »
Переменные в кавычки не обязательно оборачивать.
Лучше, на мой взгляд, имя точки монтирования генерить на лету (на мой взгляд fstab здесь не нужен). Тоже самое с /tmp.
Проверять точку монтирования нужно сначала.
SUFFIX_NAME не  удобно при сортировке -- лучше Г-М-Д-Ч-М-С.
Хорошо бы проверять свободное место перед началом. И после каждой итерации со следующим репозиторием очищать всё (т.е. копировать на каждой итерации, а не в конце).
Так как предпологается автоматизация, и вероятно будет идти в лог, то я бы добавил отметки времени начала и окончания процесса.

Что произойдёт, если будут запущены две копии скрипта?

Пользователь решил продолжить мысль 22 Июня 2015, 12:58:49:
http://www.ibm.com/developerworks/ru/library/l-lpic1-v3-104-3/
« Последнее редактирование: 22 Июня 2015, 12:58:49 от Freezeman »

Оффлайн koluna

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #26 : 22 Июня 2015, 15:22:28 »
Переменные в кавычки не обязательно оборачивать.

Если Вы про синтаксис вида "$VAR", то да, согласен, но рекомендуют заключать, вдруг там будет пробел, ну и для дисциплины :)
Кстати, "`mount | grep "$FLASH_PARTITION" | grep "$FLASH_MOUNT"`" без внешних кавычек у меня работать отказалась в условном блоке...

Цитировать
Лучше, на мой взгляд, имя точки монтирования генерить на лету (на мой взгляд fstab здесь не нужен). Тоже самое с /tmp.

Не понял. Я задействовал fstab для того, чтобы монтировать бекап-раздел от любого пользователя, не настраивая sudo и не запуская скрипт от рута.

Цитировать
Проверять точку монтирования нужно сначала.

Всмысле? Перед чем?

Цитировать
SUFFIX_NAME не  удобно при сортировке -- лучше Г-М-Д-Ч-М-С.

Ок, но секунды, возможно, излишни.

Цитировать
Хорошо бы проверять свободное место перед началом.

В планах. Еще бы и ротацию сделать :) Можно простейшим образом: удаляя самый старый файл, соответствующий шаблону.

Цитировать
И после каждой итерации со следующим репозиторием очищать всё (т.е. копировать на каждой итерации, а не в конце).

Хм... это немного другая идеология. Я сделал так: выгружаем последовательно все дампы во временный каталог, архивируем временный каталог, полученный архив кидаем куда надо. А Вы предлагаете для каждого репозитория свой архив?

Цитировать
Так как предпологается автоматизация, и вероятно будет идти в лог, то я бы добавил отметки времени начала и окончания процесса.

В лог не против записать. Пока не знаю как это сделать и время добавить... сейчас просто на экран вывожу.

Цитировать
Что произойдёт, если будут запущены две копии скрипта?

Пока гоню такую мысль :) Надо как-то блокировать? Файл-флаг? Проверка запущен ли уже процесс?

Ссылку почитаю, спасибо большое.

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #27 : 22 Июня 2015, 18:25:06 »
koluna,
Цитировать
Файл-флаг?
Не, не пойдёт: если скрипт упадёт, то файл останется. Если только проверять, не открыт ли он на запись.

Цитировать
В лог не против записать. Пока не знаю как это сделать и время добавить
Код: (bash) [Выделить]
$ script.sh >> backup.log
Либо в syslog: http://www.cyberciti.biz/tips/howto-linux-unix-write-to-syslog.html
Ну а дата, тот же date.

Цитировать
А Вы предлагаете для каждого репозитория свой архив?
Так логичней. Не нужно лазить по архивам выясняя, есть ли там требуемый дамп. Кроме того, тупо экономия места.

Цитировать
Цитировать
Проверять точку монтирования нужно сначала.

Всмысле? Перед чем?
Ваш скрипт уже успел подготовить архивы. И тут выясняется, что вы забыли вставить флешку. Рукалицо.

Цитировать
Не понял. Я задействовал fstab для того, чтобы монтировать бекап-раздел от любого пользователя, не настраивая sudo и не запуская скрипт от рута.

Цитата: man mount
user   Allow an ordinary user to mount the filesystem.  The name of the mounting user is written to mtab so that he can unmount the  filesystem  again.   This  option  implies  the
              options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line user,exec,dev,suid).



Пользователь решил продолжить мысль 22 Июня 2015, 18:34:45:
Цитировать
Еще бы и ротацию сделать :) Можно простейшим образом: удаляя самый старый файл, соответствующий шаблону.
Лучше удалять простроченные, например, старше одного месяца.
« Последнее редактирование: 22 Июня 2015, 18:34:45 от Freezeman »

Оффлайн koluna

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #28 : 30 Июня 2015, 19:38:51 »
Не, не пойдёт: если скрипт упадёт, то файл останется. Если только проверять, не открыт ли он на запись.

Сделал по имени процесса (по количеству процессов). Может быть не очень красиво...

Цитировать
$ script.sh >> backup.log

А, ну это понятно, но слишком просто, вот syslog - совсем другое дело :)

Цитировать
Ваш скрипт уже успел подготовить архивы. И тут выясняется, что вы забыли вставить флешку. Рукалицо.

Скрипт копирует в несколько источников. Сейчас на жесткий диск и FLASH. Если FLASH не вставлена - ну и пусть.
Потом подправим.

Цитата: man mount
user   Allow an ordinary user to mount the filesystem.  The name of the mounting user is written to mtab so that he can unmount the  filesystem  again.   This  option  implies  the
              options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line user,exec,dev,suid).

Читал, читал... но Вас все равно не пойму...
В mtab содержится информация о примонтированных разделах, он помогает размонтировать.
Но ведь в fstab все равно нужно прописывать свой раздел с опцией user, а иначе как без sudo примонтировать?

Цитировать
Лучше удалять простроченные, например, старше одного месяца.

Так и сделал.

(Нажмите, чтобы показать/скрыть)

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: Резервное копирование на FLASH-накопитель
« Ответ #29 : 01 Июля 2015, 01:15:05 »
fstab монтирует автоматом при старте системы. Это никак не связано с ручным монтированием.

 

Страница сгенерирована за 0.177 секунд. Запросов: 23.