Назад | Перейти на главную страницу

Как использовать псевдоним .profile в crontab

Я прочитал ответы на этот вопрос, но до сих пор не понимаю, что делать:

Как использовать мои псевдонимы в моем crontab?

Я вошел на свой сервер Ubuntu как root. У меня есть следующая команда в моем .profile:

alias test-alias="echo test"

В моем файле crontab есть следующая команда:

11 9 * * *      source /root/.profile; test-alias > /root/tmp.output 2>&1

Когда эта команда запускается, единственный вывод присутствует в tmp.output является:

/bin/sh: 1: test-alias: not found

Что я здесь делаю не так? Как я могу использовать свой test-alias в моем crontab файл? Я хочу использовать псевдоним непосредственно в команде, я не хочу создавать дополнительные сценарии для запуска псевдонима.

Хотя это не самое красивое решение, и хотя я бы посоветовал вам не использовать его, вы можете сделать следующее:

11 9 * * *      bash -ic "test-alias > /root/tmp.output 2>&1"

Это запустит bash как интерактивную оболочку (-i) и, таким образом, прочитает bashrc. Чтобы убедиться, что .profile получен, вам необходимо иметь этот блок в вашем .bashrc:

[ -f ~/.profile ] && source ~/.profile

Обратите внимание, что такой вид выполнения заданий cron или написания скриптов - действительно плохая практика, и вы должны стараться избегать ее.