Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Синхронизация cron+rsync, sudo и root - блуждание в двух граб  (Прочитано 5970 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Grenuj

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Если указать в скрипте sudo, он не копирует ничего.
crontab -l
*/1 * * * * /home/master/syncweb.sh
syncweb.sh
#!/bin/sh
sudo /usr/bin/wget -q -t 5 --delete-after http://www.site.home/index.php
sudo /usr/bin/rsync -av --progress --delete --log-file=/home/master/Logs/$(date +%Y%m%d)_rsync.log /home/master/Web /media/files/Backups/

/var/log/syslog
May 13 10:36:01 laptop CRON[3665]: (master) CMD (sudo /home/master/syncweb.sh)
May 13 10:36:01 laptop CRON[3664]: (CRON) error (grandchild #3665 failed with exit status 1)
May 13 10:36:01 laptop CRON[3664]: (CRON) info (No MTA installed, discarding output)

Убираю sudo в скрипте, обнаруживаю копированные папки, но без файлов!
в логе много подобных
May 13 10:58:02 laptop rsyncd[7542]: rsync: mkstemp "/media/files/Backups/Web/site/index.css.vX4BeT" failed: Operation not permitted (1)и в завершение
May 13 10:59:04 laptop rsyncd[7697]: rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1060) [sender=3.0.7]
May 13 10:59:04 laptop CRON[7691]: (CRON) error (grandchild #7692 failed with exit status 23)
May 13 10:59:04 laptop CRON[7691]: (CRON) info (No MTA installed, discarding output)

Скрипт был скопирован в /root/bin, при соответствующем изменении записи в crontab, однако ситуация повторилась - независимо от наличия sudo в скрипте,
May 13 11:21:01 laptop CRON[11650]: (master) CMD (/root/bin/syncweb.sh)
May 13 11:21:01 laptop CRON[11649]: (CRON) error (grandchild #11650 failed with exit status 126)
May 13 11:21:01 laptop CRON[11649]: (CRON) info (No MTA installed, discarding output)

Без крона скрипты прекрасно работают. В чём может быть проблема и как исправить? Спасибо.
« Последнее редактирование: 13 Мая 2011, 09:11:56 от searchfinder »
стаж в Ubuntu/линукс ~2 года, приживаюсь в Precise

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
А из /etc/crontab работает?

Оффлайн Grenuj

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
А из /etc/crontab работает?
то есть, прописать */1 * * * * /home/master/syncweb.sh в etc/crontab?
нет, те же результаты
стаж в Ubuntu/линукс ~2 года, приживаюсь в Precise

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
sudo там не в тему

Оффлайн Grenuj

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
sudo там не в тему
похоже, что так, но без него permission denied на операции с файлами (при успешном копировании пустых директорий, что странно)
« Последнее редактирование: 13 Мая 2011, 09:39:24 от searchfinder »
стаж в Ubuntu/линукс ~2 года, приживаюсь в Precise

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Если для работы нужны права root, то почему бы не запускать задание cron от root?

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
но без него permission denied на операции с файлами (при копировании директорий, что странно)

Команды из /etc/crontab выполняются от root.
И тогда че-то я пока не понимаю.

Оффлайн Grenuj

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Если для работы нужны права root, то почему бы не запускать задание cron от root?
то есть, дописать в crontab root перед строкой запуска? не копирует, но теперь с ошибкой 127, как если бы запуск из директории /root/bin.
« Последнее редактирование: 13 Мая 2011, 09:40:42 от searchfinder »
стаж в Ubuntu/линукс ~2 года, приживаюсь в Precise

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
1) укажите пользователя
2) впишите cd в нужную папку в начале скрипта
Шаг за шагом можно достичь цели.

Оффлайн Grenuj

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Цитировать
1) укажите пользователя
2) впишите cd в нужную папку в начале скрипта
#!/bin/sh
cd /media/files/Backups
/usr/bin/wget -q -t 5 --delete-after http://www.site.home/index.php
/usr/bin/rsync -av --progress --delete --log-file=/home/master/Logs/$(date +%Y%m%d)_rsync.log /home/master/Web /media/files/Backups/

*/1 * * * * master /home/master/syncweb.sh
нет копи, ошибка 127

Пользователь решил продолжить мысль 13 Мая 2011, 10:18:08:
Да я даже права скрипту, и обеим директориям прописал - rwxrwxrwx!.. без толку

Пользователь решил продолжить мысль 13 Мая 2011, 10:22:09:
Правда, у директории назначения владелец root, у половины папок в web - владелец ццц-dada, у другой - master, скриптом владеет master, если это имеет какое-то значение

Пользователь решил продолжить мысль 13 Мая 2011, 14:16:12:
Я плачу. cp -a работает, а rsync -a нет!!! :( :( :( :

Пользователь решил продолжить мысль 13 Мая 2011, 15:03:42:
решил действовать методом исключения, вместо включающего в себя всё-всё ключа -av поставил ключи
-uvrogpt ни в какую
-uvrogt файлы стали копироваться! в логах operation not permitted - unable to set times
-uvrog operation not permitted - chgrp failed
-uvr только сейчас обошлось без ошибок

возможно, дело в том, что директория назначения имеет другую файловую систему (а именно, ntfs, но примонтирована как 3g): UUID=219F017F5BE43FE7 /media/files ntfs-3g users,defaults,umask=0 0 0
« Последнее редактирование: 13 Мая 2011, 15:03:42 от searchfinder »
стаж в Ubuntu/линукс ~2 года, приживаюсь в Precise

 

Страница сгенерирована за 0.09 секунд. Запросов: 24.