/var/lib/vz/snippets) и добавить его к ВМ или контейнеру.
Примечание
hookscript:
#где <script_file> — исполняемый файл скрипта.qm set <vmid> --hookscript <storage>:snippets/<script_file>#pct set <vmid> --hookscript <storage>:snippets/<script_file>
# qm set 103 --hookscript snippet:snippets/guest-hookscript.pl
update VM 103: -hookscript snippet:snippets/guest-hookscript.pl
Примечание


guest-hookscript.pl):
#!/usr/bin/perl
# Example hookscript for PVE guests
use strict;
use warnings;
print "GUEST HOOK: " . join(' ', @ARGV). "\n";
# First argument is the vmid
my $vmid = shift;
# Second argument is the phase
my $phase = shift;
if ($phase eq 'pre-start') {
# Первый этап 'pre-start' будет выполнен до запуска ВМ
# Выход с code != 0 отменит старт ВМ
print "$vmid is starting, doing preparations.\n";
# print "preparations failed, aborting."
# exit(1);
} elsif ($phase eq 'post-start') {
# Второй этап 'post-start' будет выполнен после успешного
# запуска ВМ
system("/root/date.sh $vmid");
print "$vmid started successfully.\n";
} elsif ($phase eq 'pre-stop') {
# Третий этап 'pre-stop' будет выполнен до остановки ВМ через API
# Этап не будет выполнен, если ВМ остановлена изнутри,
# например, с помощью 'poweroff'
print "$vmid will be stopped.\n";
} elsif ($phase eq 'post-stop') {
# Последний этап 'post-stop' будет выполнен после остановки ВМ
# Этап должен быть выполнен даже в случае сбоя или неожиданной остановки ВМ
print "$vmid stopped. Doing cleanup.\n";
} else {
die "got unknown phase '$phase'\n";
}
exit(0);

#!/bin/bash if [ $2 == "pre-start" ] then echo "Запуск ВМ $1" >> /root/test.txt date >> /root/test.txt fi