Я прочитал ответы на этот вопрос, но до сих пор не понимаю, что делать:
Как использовать мои псевдонимы в моем 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 или написания скриптов - действительно плохая практика, и вы должны стараться избегать ее.