Я думаю, вы хотите объединить тюрьму ssh chroot и монтирование привязки. Предполагая, что корень chroot — это /home/test123
Создайте среду chroot, я предпочитаю использовать джейлкит(https://olivier.sessink.nl/jailkit/)
Создайте привязку внутри chroot
mount -o bind /var/test /home/test123/root
Match group sshchroot
ChrootDirectory /home/%u
if some_command >/dev/null 2>&1; then
echo ran successfully
else
echo failed
fi >>logfile
Приведенный выше код запускает команду some_command
, отбрасывает ее вывод, а затем добавляет текст ran successfully
в файл logfile
, если команда завершилась успешно. Если команда завершится ошибкой, она добавит текст failed
к logfile
.
В вашем случае, для простоты (, так как у вас такие длинные имена путей в ваших командах ), я бы поместил это в отдельный скрипт-оболочку и выполнил этот скрипт с заданием cron.
Скрипт будет выглядеть так
#!/bin/sh
PATH=/opt/cpanel/ea-php73/root/usr/bin:$PATH
logfile=/home/company/example.de/var/log/test.cron.log
if php /home/company/example.de/bin/magento list >/dev/null 2>&1
then
echo ran successfully
else
echo failed
fi >>"$logfile"
Я изменил PATH
в сценарии, чтобы разрешить запуск php
без абсолютного пути.
Затем этот сценарий будет запланирован:
* * * * * /path/to/thescript.sh
... где * * * * *
следует заменить фактическим расписанием.
Если вы хотите превратить это в «один -лайнер» для использования непосредственно в записи crontab:
* * * * * if /opt/cpanel/ea-php73/root/usr/bin/php /home/company/example.de/bin/magento list >/dev/null 2>&1; then echo ran successfully; else echo failed; fi >>/home/company/example.de/var/log/test.cron.log
... где * * * * *
следует заменить фактическим расписанием.