Ошибка компиляции glibc (как часть Buildroot)

Давайте немного переделаем перенаправления и добавим некоторые разрывы строк, чтобы увидеть, что вы на самом деле выполняете:

 >> /home/things/logs/backup.log \
   >> /home/things/logs/backup.log \
   find /home/things/backups -mtime +0 -exec echo "{}" \; \
     -exec echo "Hourly rotate successful: $(date). {} was deleted.";
   \;
Вы перенаправляете вывод find, а не вывод команд по -exec. Это повлияет на команды, выполняемые с помощью -exec, поскольку они являются дочерними процессами и наследуют дескрипторы открытых файлов, поэтому эффект будет тем, что вам нужно, даже если способ, которым вы обходился, был странным. Тогда ; в конце второго exec не сбежал. Команда find была завершена там без ; для exec, вызывая ошибку. find немедленно ушел из-за этого, поэтому никакого выхода не было. Затем \; в конце обрабатывается оболочкой. Обычно это будет разделитель инструкций, но поскольку он экранирован, он пытается запустить его как команду. Это, естественно, не получается.

Рассмотрим упрощение команды:

find /home/things/backups -mtime +0 -exec \
  bash -c 'printf "%s\nHourly rotate successful: $(date). %s was deleted.\n" "$0" "$0"' {} \; \
  >> /home/things/logs/backup.log
0
задан 2 May 2018 в 11:45

0 ответов

Другие вопросы по тегам:

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