Установка скрипта бекапа віртуальних машин на vmware esxi, ще один блог

Ось тут існує відмінний безкоштовний скрипт для резервного копіювання віртуальних машин на VMWare ESXi сервері, причому він працює на free версії ESXi 4 і 5 версій без установки будь-яких додаткових приблуд типу VMA і т.п. Проблема тільки в тому, що інструкція там не зовсім точна, тому я довго возився з цим скриптом, щоб він все-таки заробив саме в автоматичному режимі ...

Детально расспісивать як пріконнектіца до ESXi по SSH я не буду, розпишу лише кроки налаштування, з якими все запрацювало у мене.

Спочатку качаємо скрипт за посиланням вище і заливаємо на сервер, заливати потрібно прямо в архіві! Найпростіше це зробити через vSphere Client. У мене на сервері два диска - на одному працюють машини, а на іншому лежать всякі iso-образи і самі бекапи. Називаються диски відповідно datastore1 і datastore2. Все бекапи, скрипт і конфіги лежать в папці backup. Ще зверніть увагу, що назви файлів і папок чутливі до регістру, тому якщо папка називається backup. а ви пишіть в скрипті Backup. то працювати не буде!

Конфігурація Cron (для автоматичного запуску скрипта)

  1. Дати дозвіл на запис в файл chmod + w / var / spool / cron / crontabs / root
  2. Додаємо через vi рядок в / var / spool / cron / crontabs / root
    15 0 * / 3 * * /vmfs/volumes/datastore2/backup/StartBackup.sh
    Запуск в 00:15 ночі кожні три дні. У мене часовий пояс +4 Москва, тобто насправді скрипт запускається о 4:15 ранку, це буде видно по даті зміни балки через vSphere. Само собою час і періодичність можете вибрати інші.
  3. Тепер потрібно виконати дві команди, щоб перезапустити cron
    kill $ (cat /var/run/crond.pid)
    crond
  4. Додати за допомогою vi 3 рядки в самий кінець файлу /etc/rc.local
    Це потрібно, тому що після перезавантаження сервера вміст файлу з 2го пункту з запуском нашого скрипта буде відновлено до попереднього стану, тому в rc.local вказуємо, що після перезавантаження потрібно виконати наступні команди - зупинка cron, додавання рядка для автоматичного запуску скрипта і запуск cron .
    / Bin / kill $ (cat /var/run/crond.pid)
    / Bin / echo "15 0 * / 3 * * /vmfs/volumes/datastore2/backup/StartBackup.sh» >> / var / spool / cron / crontabs / root
    crond
  5. Тепер виконаємо виконати команду /sbin/auto-backup.sh. щоб упевнитися, що всі наші зміни збереглися.

Невелике пояснення - чому потрібно створювати скрипт StartBackup.sh. а не просто взяти і його вміст помістити в / var / spool / cron / crontabs / root. Існує якесь обмеження на розмір цього файлу і частина рядків в ньому просто не буде працювати, хоча можете спробувати зробити і так, спочатку у мене працювало, але потім, мабуть, вийшли якісь патчі і перестало. Більш того, це просто зручніше - якщо буде потрібно змінити розклад резервного копіювання, то ви просто керуєте файл StartBackup.sh і не потрібно танців з бубном навколо cron з його перезапуском і внесенням тих же змін в /etc/rc.local.

PS: Час іде, все змінюється, сам скрипт змінюється, ESXi5 вже вийшов, так що десь, щось може вже і не працювати 🙂

Додаток: Синтаксис cron

Команда cron виглядає ось так:

1 2 3 4 5 /vmfs/volumes/datastore2/backup/StartBackup.sh

  1. Запуск в 5 хвилин на першу ночі, кожен день
    5 0 * * * /vmfs/volumes/datastore2/backup/StartBackup.sh
  2. Запуск о 2:15 кожен перший день місяця
    15 14 1 * * /vmfs/volumes/datastore2/backup/StartBackup.sh
  3. Запуск о 22:00 кожного робочого дня
    0 22 * ​​* 1-5 /vmfs/volumes/datastore2/backup/StartBackup.sh
  4. Запуск в 23 хвилини після півночі і далі кожні дві години (2:23, 4: 23 ... і т.д.), кожен третій день
    23 0-23 / 2 * * * / 3 /vmfs/volumes/datastore2/backup/StartBackup.sh

Схожі статті