Назад | Перейти на главную страницу

scp сообщает о прогрессе в cron

Я использую scp для резервного копирования данных. Когда я получаю вывод cron (используя файл crontab для операций cron) с почтой, я не получаю никакого вывода. Операция scp успешно выполнена.

Итак, в терминале я получаю например: test.file 100% 1489KB 1.2MB / s 00:00

Но в выводе cron я не получаю вывод команды.

Кто-нибудь знает, как это сделать или какой другой способ вы используете для получения информации о команде?

Спасибо.

Как правило, cron хорошо отправляет любые выходные данные терминала из своих заданий в учетную запись электронной почты пользователя в окне, в котором он был запущен. Иногда люди настраивают задания cron с перенаправлением или подавлением вывода, чтобы этого не происходило. Убедитесь, что это не так. Если хотите, можете разместить здесь свою строку crontab, и мы вам сообщим.

Кроме того, чтобы получить электронное письмо, вам нужно либо проверить почтовый ящик пользователя в ящике, от имени которого выполняется задание, либо настроить его для маршрутизации в другое место. Обычно это можно сделать с помощью файла псевдонимов электронной почты, часто в / etc / mail / aliases. Например, у всех моих ящиков есть строка с надписью «root: caleb@mydomain.com», так что я получаю электронные письма для всех заданий cron, выполняемых от имени root.

Редактировать 1: По-видимому, scp определяет, когда он запускается с терминала, и меняет его вывод на тихий, когда это не так. Добавление -v должно преодолеть это поведение.

Изменить 2, альтернативное решение: Я настоятельно рекомендую использовать rsync вместо scp для такого рода операций. Он разработан с учетом такого рода повторяющейся синхронизации, обрабатывает такие случаи, как возможность передачи только обновленных частей файла или каталогов и т. Д. Его вывод также больше подходит для использования в cron. Вы все еще можете использовать ssh для транспорта и аутентификации: rsync -e ssh -v source_file_or_dir user@remotehost:dest_file_or_dir. Добавление -a для режима архива для синхронизации рекурсивных каталогов и сопоставления свойств файлов и --delete включить удаление удаленных файлов, не найденных локально, являются общими вариантами. Если вы синхронизируете каталоги, не забудьте завершить оба аргумента источника объявления dest косой чертой (/).