uscr 09.08.2012 10:33
Есть проблема! — Скрипт не отрабатывает по крону
Здравствуйте. Решил тут исполнить давнюю мечту - синхронизировать обои рабочего стола между всеми компьютерами. Дропбокс + скрипт +крон. Всё должно работать. Ан нет.Запускаю скрипт от рута так: su -l nazarovd -c '/home/nazarovd/.bin/sync.sh' - фон меняется. В кронтабе такая строка: */5 * * * * root su -l nazarovd -c '/home/nazarovd/.bin/sync.sh' > /dev/null и ничего не работает. При этом часть скрипта, которая синхронизирует другие штуки работает нормально.
Сам скрипт:
ЧЯДНТ?
xtavras 09.08.2012 11:03 #
+ 0 -
Добавь "nazarovd" в /etc/sudoers c правом запуска скрипта без пароля, в кроне соответственно запуск от юзера.
Я его так запускаю потому, что там юзается переменная $HOME, а при запуске от юзера nazarovd в кроне - HOME=/root(!)...
Судо не нужен. У nazarovd есть права на запуск. Это его скрипт :)
Судо не нужен. У nazarovd есть права на запуск. Это его скрипт :)
Так а почему не добавить cronjob самим пользователем? Тогда и с HOME будет все в порядке.
"...ничего не работает. При этом часть скрипта, которая синхронизирует другие штуки работает нормально."
Так ничего не работает, или что-то конкретное не работает?
А так, поверхностные предложения:
1. Проверить двойные кавычки вместо одинарных (честно говоря, не помню уже, какие правильные)
2. Попробовать все, что относится к su, "заковычить"
3. /desktop/gnome/background/picture_filename - путь точно правильный? Т.е. путь перед desktop больше никакой не должен быть дописан?
Так ничего не работает, или что-то конкретное не работает?
А так, поверхностные предложения:
1. Проверить двойные кавычки вместо одинарных (честно говоря, не помню уже, какие правильные)
2. Попробовать все, что относится к su, "заковычить"
3. /desktop/gnome/background/picture_filename - путь точно правильный? Т.е. путь перед desktop больше никакой не должен быть дописан?
О. Вы его в скрипте прописывали, или в команде крона указывали?
Кстати, "/desktop/gnome/background/picture_filename" - это не путь, а чёто типа ключа в реестре.
Зашибись.
Как-бы реестр появился. Ждем какбы вкомпиленный в ядро DE...
Или оно от какой-то программы?
Как-бы реестр появился. Ждем какбы вкомпиленный в ядро DE...
Или оно от какой-то программы?
Реестр из гнома как раз убрали, если что. Эта строка нужна, что бы на домашнем компе тоже работало - там старая убунта.
В Гноме был реестр? О_о
*еще сильнее полюбил свой няшноискмонадик.
*еще сильнее полюбил свой няшноискмонадик.
Если это Gnome Shell (уже забыл как там что), то глянь мой старый пост
Там описано как меняются обои через крон.
Там описано как меняются обои через крон.
Посмотри ошибки в /var/log/crond.log. С большой вероятностью там напишут, что не так.
Навскидку:
Попробуй заменить тильду на /home/nazarovd
Если файлы, которые ты стартуешь кроном требуют запущенной сессии иксов - укажи DISPLAY и XAUTHORITY переменными окружения. Пример:
Если ты пускаешь гном через гдм, насколько я помню, у старого гдм (имел с ним дело, когда в обиходе был гном 2) была вредная привычка ложить Xauthority-файл не в домашнюю директорию, а в /var/run/gdm
Навскидку:
~/Dropbox/Scripts/homebin/deploy.sh
Попробуй заменить тильду на /home/nazarovd
Если файлы, которые ты стартуешь кроном требуют запущенной сессии иксов - укажи DISPLAY и XAUTHORITY переменными окружения. Пример:
1 |
DISPLAY=:0.0 XAUTHORITY=/home/nazarovd/.Xauthority gsettings set org.gnome.desktop.background picture-uri file://$WALLPAPER_PATH$test 2>/dev/null
|
Если ты пускаешь гном через гдм, насколько я помню, у старого гдм (имел с ним дело, когда в обиходе был гном 2) была вредная привычка ложить Xauthority-файл не в домашнюю директорию, а в /var/run/gdm