Рейтинг:0

cron rsync, как перенаправить на файл на рабочем столе

флаг kn

Я хотел бы регулярное резервное копирование файлов на моем диске на сервер резервного копирования. Поскольку у меня много файлов (миллионы), я хочу использовать rsync, чтобы отправлять только различия.

из терминала Ubuntu 18.04 это выводит в файл:

rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt

Но когда я использую кронтаб -е, для отметки 16 минут часа (для проверки)

16 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop

Я не видел вывод в этом файле на моем рабочем столе. В комментариях steeldriver предложил решение проблемы 1. кронтаб -е теперь выглядит так:

ОБОЛОЧКА=/bin/bash
52 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-14TB-z2/3970x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt

Проблема 2: Теперь у меня есть вывод в файл, но у rsync есть проблемы с разрешениями.Является ли среда crontab в отношении ключей SSH не такой же, как среда терминала? Вот вывод в файле:

Разрешение отклонено, попробуйте еще раз.
Разрешение отклонено, попробуйте еще раз.
[email protected]: Отказано в доступе (открытый ключ, пароль).
rsync: соединение неожиданно закрыто (на данный момент получено 0 байт) [отправитель]
ошибка rsync: необъяснимая ошибка (код 255) в io.c(235) [sender=3.1.2]
флаг hr
Вы устанавливаете `SHELL=/bin/bash` в crontab? В противном случае он будет работать в `/bin/sh`, который не понимает специфичного для bash перенаправления `&>`
флаг hr
Да, добавьте `SHELL=/bin/bash` в качестве отдельной строки (в любом месте) выше или измените синтаксис перенаправления на POSIX `> /home/john/Desktop/nightly_disk2_logs.txt 2>&1`
флаг cn
«Разве crontab не использует ключи SSH?» Нет, зачем crontab ключи ssh!? Это для внешних подключений. Так что они нужны rsync. Я бы предложил указать его в команде rsync. --password-file и предоставленному файлу требуется 600 в качестве разрешений
grabbag avatar
флаг kn
Моя формулировка могла бы быть лучше. Я должен был сказать: «Разве среда crontab в отношении ключей SSH не такая же, как среда терминала?» Очевидно, что нет, учитывая отмеченную вами возможность --password в RSYNC. Спасибо, что указали на это.
grabbag avatar
флаг kn
--password-file /home/john/.ssh/id_rsa.pub приводит к ошибке Опция --password-file может использоваться только при доступе к демону rsync.
grabbag avatar
флаг kn
Я удалил парольную фразу для ключа ssh, и теперь он работает без --password-file. Итак, похоже, что SHELL=/bin/bash, поскольку первой строки достаточно, чтобы crontab дал ssh, чтобы rsync использовал доступ к ключам.
Рейтинг:0
флаг kn

YouTube описывает процесс.

Мои основные выводы:

  • нет парольной фразы на ключах ssh
  • добавить SHELL=/bin/bash в качестве первой строки crontab -e
  • &> /home/john/Desktop/backup_disk2_logs.txt для создания файла журнала также см.

Мой crontab -e выглядит так:

ОБОЛОЧКА=/bin/bash
00 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/disk2/ &> /home/john/Desktop/disk2_logs.txt

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.