Рейтинг:0

запустить команду bash внутри задания cron в ubuntu

флаг cn

У меня есть сервер под управлением Ubuntu, и я хотел бы создать задание cron, которое запускается каждый час, деталь в том, что я хочу, чтобы этот cron выполнял команду bash по определенному пути, это будет пример моей команды sudo bash/путь/файл , поэтому моя работа cron должна выполняться каждый час, возможно ли сделать это в работе cron? Любая помощь будет оценена по достоинству.

terdon avatar
флаг cn
Зачем вам `судо`? Что делает этот скрипт? Вы не можете использовать `sudo` в cron, но чтобы дать работающее решение, нам нужно понять, действительно ли оно необходимо.
флаг cn
Вы можете прочитать [`man 5 crontab`](https://manpages.ubuntu.com/manpages/focal/en/man5/crontab.5.html), чтобы узнать о формате. И сделайте `sudo crontab -e`, чтобы отредактировать crontab **root** вместо того, чтобы помещать sudo в свой crontab.
Рейтинг:1
флаг es

Это вполне возможно. Просто добавьте запись в файл crontab с помощью кронтаб -е используя правильного пользователя. Вы также можете переместить свой скрипт в /etc/cron.hourly. Просто учтите, что файлы bash под /etc/cron.hourly будет работать под корень. Если вы хотите запустить свой скрипт под целевым пользователем, используйте подход crontab и убедитесь, что вы указали абсолютный путь к вашему скрипту, и ваш пользователь сможет выполнить скрипт. например

@hourly /my/bash/script.sh
#или же
0 * * * * /my/bash/script.sh
флаг cn
спасибо за ответ, у меня есть некоторые сомнения. Как я могу переместить свой скрипт в папку /etc/cron.hourly, если я хочу, чтобы он запускался от имени пользователя root, или как это сделать более эффективно в данном случае? И еще вопрос, в моей команде используется bash, нужно ли указывать абсолютный путь к bash, а также к файлу, который я хочу выполнить?
Javier Galarza avatar
флаг es
Можете ли вы предоставить команду или скрипт, который вы хотите запустить в cron?
флаг cn
Это команда, которая выполняет файл для очистки кеша, я выполняю ее следующим образом в папке моего веб-сайта, где указан файл «sudo bash ss-purge-opcache»
Javier Galarza avatar
флаг es
Просто создайте файл в `/etc/cron.hourly`: `touch /etc/cron.hourly/update.cache` и поместите эту команду в этот файл. Вам не нужно использовать `sudo`, так как этот скрипт будет работать от имени пользователя root. Также предоставьте правильные разрешения `chmod a+x /etc/cron.hourly/update.cache`. Вам может потребоваться указать абсолютный путь, если это так, найдите абсолютный путь команды с помощью `what ss-purge-opcache`

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.