Проблема Rsync с кроном и без проблем вручную

Низкоуровневое форматирование означает много разных вещей для различных людей и на различных контекстах.

Исходное значение было шагом, необходимым в форматировании дисков - дисководам нужны заголовок, синхронизация и другие шаблоны, записанные на медиа, прежде чем это сможет хранить данные к нему. Таким образом голова может обнаружить, когда это A) на дорожке и B) где это находится на дорожке. Низкий уровень, форматирующий дискету, готовит диск, чтобы смочь считать и записать блоки. Ранний MFM и жесткие диски ПК RLL могли быть отформатированным низким уровнем, часто с помощью утилиты, встроенной в контроллер жесткого диска (карта ISA) ROM. Современный IDE и жесткие диски с интерфейсом SATA являются низким уровнем, отформатированным также, но только на фабрике.

Различные другие значения включают нули записи во все блоки, конфигурирование диска отключить "скрытые" области, такие как HPA и DCO и затем обнуление всех блоков или других вещей, более связанных с разделением, чем форматирование.

Необработанной флэш-памяти нужен другой начальный предварительный шаг на фабрике - каждая флэш-память "eraseblock" (аналогичный "блоку" на дисках) должна быть протестирована и отмечена как плохая, если это действительно плохо. Каждый "eraseblock" имеет дополнительный маленький блок "OOB", который содержит информацию с коррекцией ошибок - и это - то, где это отмечено как плохое. Вы НЕ хотите повторять этот шаг, поскольку действие записи в сбойный блок могло препятствовать тому, чтобы Вы установили тот конкретный бит снова, который идентифицирует его как плохой.

Но Вы не имеете дело с необработанной флэш-памятью. Вы имеете дело с картой флэш-памяти с интерфейсом USB. Существует чип контроллера во всех флеш-накопителях, который принимает команды USB от хоста и говорит с необработанной флэш-памятью внутри от имени хоста. Некоторые из этих чипов контроллера могут быть настроены для создания отчетов о части флэш-памяти как отдельный раздел CD-ROM или действие как два отдельных устройства хранения USB. В зависимости от делания и модели чипа контроллера, Вы можете находить восстановление или средство конфигурирования (только вероятный Windows), который мог сбросить этот чип контроллера. Вы начали бы путем открытия флеш-накопителя, поиска меньших из (вероятных) двух микросхем, которые находятся на маленьком PCB и выполнении некоторого поиска с помощью Google. Делание и модель, распечатанная за пределами случая, вряд ли помогут Вам найти, кто сделал контроллер в нем.

3
08.10.2013, 01:03
3 ответа

(Я использую связку ключей, таким образом, я не должен вводить пароль и т.д....),

Хорошо, таким образом, необходимо сказать программу, работающую в задании крона, как найти связку ключей.

SSH ищет агент SSH (который связка ключей эмулирует) через переменную среды SSH_AUTH_SOCK. Таким образом, необходимо установить эту переменную среды в crontab.

В типичной конфигурации, SSH_AUTH_SOCK путь к сокету со случайным именем. Так как Вы используете связку ключей, можно легко найти альтернативное название для того сокета: связка ключей пишет файлы в ~/.keychain это содержит объявления переменной среды, которые устанавливают SSH_AUTH_SOCK и другие подобные переменные (SSH_AGENT_PID, GPG_AGENT_INFO). Поэтому просто включайте соответствующий файл в свое задание крона.

MAILTO=user+rpibackup@gmail.com
30 5  *   *   *     . ~/.keychain/$(hostname)-sh; /home/user/backup.sh

(В стороне: крон имеет встроенную функцию для отправки почты с выводом задания, таким, что Вы получаете почту, только если задание действительно производит некоторый вывод. Никакая потребность играть с | mail.)

3
27.01.2020, 21:13
  • 1
    :) Я обнаружил связку ключей только два дня назад, и я не очень доволен ею. Так или иначе Ваш ответ решил мою проблему, так еще раз большое спасибо. И спасибо за почтовую подсказку SSH, но я использую другой адрес электронной почты something+crontask@gmail.com, таким образом, я могу легко маркировать электронные письма в Gmail. –  mephissto 08.10.2013, 22:45

Соединение SSH не работает от cronjob. Как это, как предполагается, выполняет аутентификацию SSH? Никакая попытка перечислить ключ идентификационных данных или пароль не видима. Я продолжил бы работать '-i' с путем к Вашему (unpassworded...) ключ, если это то, как его работа. Основные отличия между командной строкой и cronjob имеют тенденцию быть до среды (обе вещи как переменные среды, отсутствие терминала управления и т.д.)

3
27.01.2020, 21:13

Я думаю, что у Вас есть проблема заключения в кавычки на Вашем предмете:

mail -s "Backup RPi "$(date +\%d/\%m/\%Y-\%X) user+rpibackup@gmail.com

Должно быть это:

mail -s "Backup RPi $(date +\%d/\%m/\%Y-\%X)" user+rpibackup@gmail.com

Альтернативный подход

Я перенес бы электронную почту в сценарий также.

#!/bin/bash

(
  echo "_ backup start "$(date +%H:%M:%S)
  echo " "

  /usr/bin/rsync -avh --rsync-path='/usr/bin/rsync' --delete \
     --log-file='/home/user/rsync.'$(date +%d%m%Y-%H%M%S)'.log' \
     --rsh='ssh -p 1234' user@server.com:/path/to/archives/ /media/backup/

  echo " "
  echo "_ backup end "$(date +%H:%M:%S)
) | mail -s "Backup RPi $(date +\%d/\%m/\%Y-\%X)" user+rpibackup@gmail.com

Затем измените crontab запись в это:

30 5  *   *   *     /home/user/backup.sh

Также удостоверьтесь, что учетная запись, которая выполняет этот крон, может на самом деле послать электронное письмо. Сделайте тест.

1
27.01.2020, 21:13
  • 1
    Это работает хорошо, я использовал его как этот в течение некоторого времени теперь. Спасибо так или иначе ^^ –  mephissto 08.10.2013, 22:46

Теги

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