Переменная среды $ USER не запускается из crontab

Используйте xdotool

Установите и запустите xdotool, он просто автоматизирует клавиатуру / мышь / .... для вас.
после установки вы можете это в bash:
xdotool key Return && xdotool type sometext

Для сочетания клавиш вы можете использовать «пользовательские сочетания клавиш gnome» и назначить эту команду сочетанию клавиш!

Чтобы установить xdotool, выполните: apt-get install xdotool (при использовании ubuntu)

4
15.02.2017, 06:33
1 ответ

Когда cron выполняет вашу работу, он делает это в среде, отличной от вашей текущей среды оболочки.

Это означает, например, что ./ script.sh не может быть найден.

Есть два решения:

*/1 * * * * ( cd $HOME/mydir && ./script.sh )

или

*/1 * * * * $HOME/mydir/script.sh

То есть, укажите, где именно можно найти скрипт.

Первый вариант может быть предпочтительнее, если вы не используете абсолютные пути для выходного файла в сценарии.

Если вы выберете второй вариант, измените свой сценарий, чтобы вы знали, куда идет выходной файл:

#!/bin/bash
echo "$USER" >"$HOME/mydir/cron.txt"

или

#!/bin/bash
( cd "$HOME/mydir" && echo "$USER" >cron.txt )

Обратите внимание, что #! Строка должна содержать правильный абсолютный путь к bash (ваш путь был относительным).

Также следует отметить, что cron в некоторых Unix (Linux) не устанавливает USER как имя пользователя, выполняющего задание cron. В этих системах используйте вместо этого $ LOGNAME или установите для USER значение $ LOGNAME при вызове сценария:

*/1 * * * * env USER=$LOGNAME $HOME/mydir/script.sh
5
27.01.2020, 20:53

Теги

Похожие вопросы