LINUX.ORG.RU

Сообщения Pi_Patel

 

Выполнение скрипта при завершении работы (Arch Linux, Unit)

Форум — Admin

Добрый день! Написал скрипт который архивирует некоторые папки, два образа из Docker и дамп SQL базы из контейнера. Так же он удаляет старые бэкапы. Весь процесс занимает до 10 сек. Хочу чтобы выполнение этого скрипта было при выходе в сон, выключении, гибернации и т.д. Сделал его юнитом (/etc/systemd/system/backup-project.service), при остановки службы он выполняется всё нормально. Но стал тестировать уже при отключении и он не успевает выполниться. Только архив каталога, и нулёвый дамп SQL. Подозрение что когда он выполняется Docker служба завершается. Если закинуть в crontab:

@reboot /usr/local/Scripts/backup-project.sh
Всё нормально работает, только мне мало при ребуте его выполнение. Подскажите пожалуйста как можно выставить чтобы Docker юнит не завершался пока моя служба работает? Система Arch Linux.
[Unit]
Description=Backup project
After=systemd-user-sessions.service

[Service]
ExecStop=/bin/bash '/usr/local/Scripts/backup-project.sh'
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target reboot.target poweroff.target hibernate.target sleep.target

 

Pi_Patel
()

Переменные в Bareos

Форум — Admin

Всех приветствую! Развернул самый свежий Bareos, настроил вроде работает. Но есть один интересный вопрос. Можно ли в конфигах передавать переменные? К примеру у нас на Windows файловая шара, и папки учётных записей которые нужно бэкапить расположены на одном диске. Каждую папку учётки с файлами требуется делать отдельным бэкапом. Для этого будет свой личный для каждого конфиг в Bareos:

...
Job {
      Name = "id100-3-Days"
      Client = "id100"
      JobDefs = "Clients-test"
      Schedule = "3-Days"
      FileSet = "Template"
      Storage = "stor-share-01"
      Pool= "id100-3-Days"
    }
...

Но вот шаблон «FileSet» хочется сделать и забыть. Чтобы больше не лазить туда при добавлении новых клиентов.

FileSet {
  Name = "Template"
  Include {
 ...
    }
    File = "E://Users//id100"
    }
  Include {
    Options {
    signature = MD5
    Compression = GZIP
    }
    File = "E://Users//id100//bla-bla"
    }
}

А это путь к папке «id100», они будут меняться при добавлении новых клиентов. Я пробовал использовать переменные окружения:

File = "E://Users//%c//bla-bla"
и
File = "E://Users//%c"
Увы не вышло. И вот вопрос могу ли я сделать что-то похожее:
...
$client = id100;

Job {
      Name = "id100-3-Days"
      Client = "id100"
      JobDefs = "Clients-test"
      Schedule = "3-Days"
      FileSet = "Template"
      Storage = "stor-share-01"
      Pool= "id100-3-Days"
    }
...

А в FileSet:

File = "E://Users//$client//bla-bla"
и
File = "E://Users//$client"
Конечно именно таким способом не пройдёт, нужно передавать переменные или куда-то отдельно записывать. Кому-то приходилось работать с похожей манипуляцией? Подскажите пожалуйста.

 ,

Pi_Patel
()

RSS подписка на новые темы