Февруари 26, 2026

Скриптът snapshot_prep


Скриптът snapshot_prep — подготвяне на сървъра за създаване на образ (image)

 

Какво представлява?

Скриптът snapshot_prep, който се намира на адрес /usr/local/cpanel/scripts/snapshot_prep, се използва, за да подготви сървъра за създаване на “deployment image” — тоест образ, който можеш да използваш за клониране или инсталиране на други сървъри със същата конфигурация.

Важно: Този скрипт не е съвместим с всички конфигурации на сървъра. Той проверява част от тях и ако открие някои несъвместимости — ще спре автоматично.

 

Конфигурации, които правят скрипта несъвместим:

Ако някое от следните неща е налице на сървъра ти, скриптът ще откаже да се изпълни:

  • Използване на API tokens 
  • Наличен бекъп на сървъра или директория за бекъпи 
  • Активирана двуфакторна автентикация (2FA) за root потребителя 
  • Сървърът е свързан в кластър или линк с друг сървър 
  • Има настроени контакти в /etc/wwwacct.conf или /etc/wwwacct.conf.shadow 
  • Има активен отдалечен MySQL профил (през WHM » Database Services » Manage Database Profiles) 

Това не е пълен списък. За пълна информация прегледай документацията Best Practices for cPanel Virtualization Templates.

 

Как се изпълнява?

Команда:

 

/usr/local/cpanel/scripts/snapshot_prep [опции]

 

Възможни опции:
Опция Какво прави Пример
–no-post-service Не инсталира услуга, която се стартира при първо пускане. Ще трябва ръчно да стартираш post_snapshot при първо пускане на инстанцията. –no-post-service
–list-tasks Показва списък с всички действия, които скриптът ще извърши. –list-tasks
–skip Изброява задачи, които да се пропуснат. Не се препоръчва! Може да доведе до непредвидено поведение. Не може да се комбинира с –only. –skip=mysql,license
–only Изпълнява само конкретни задачи, останалите се пропускат. Не се препоръчва! Не може да се комбинира с –skip. –only=license
–instance-packages Списък с пакети, които ще се инсталират при първо пускане на създадената инстанция. Това е полезно, ако пакетите генерират уникални данни и не искаш да ги включваш в самия образ. –instance-packages=package1,package2
–delete-saved-copies Изтрива запазените копия на конфигурационни файлове, които скриптът е направил. Ако не ги изтриеш, те ще се включат в образа. –delete-saved-copies
–help Показва помощна информация за скрипта. –help

 

Създаване на приставка (plugin) за скрипта

Ако разработваш допълнителен (third-party) софтуер за сървъри с cPanel & WHM, можеш да направиш приставка, която да се изпълнява заедно със snapshot_prep. Така можеш да добавиш специални задачи към процеса по създаване на образ.

 

Пример:

Ако твоят софтуер използва уникален достъп токен, можеш да направиш приставка, която:

  1. Изчиства токена по време на snapshot_prep, за да не се включи в образа. 
  2. Генерира нов токен при първото стартиране на инстанцията. 

Важно: cPanel & WHM не създава приставки за теб — ти сам трябва да ги направиш.

 

Как работят приставките:

Скриптът използва .json файлове, за да разбере какво да изпълнява. Те трябва да се поставят в директорията:

/var/cpanel/snapshot_prep.d

 

Примерно съдържание на .json файл:

{

  “name”: “exampleplugin”,

  “type”: “non-repair only”,

  “pre”: [“/var/cpanel/exampleplugin.py”, “–before”],

  “post”: [“/var/cpanel/exampleplugin.py”, “–after”],

  “description”: “Perform a task.\n”

}

 

Обяснение:
Поле Какво означава
name Името на приставката (без .json в края). Може да съдържа само букви, цифри и долна черта.
type Задължително трябва да е non-repair only.
pre Скрипт, който се изпълнява преди основната операция.
post Скрипт, който се изпълнява след операцията.
description Кратко описание на това, което приставката прави.