udev
выводы, регистрирующие информацию к /var/log/messages
, но по умолчанию это только регистрирует ошибки, и это происходит, Вы создали команду, которая не делает то, что Вы хотите, но также и убирает не ошибку. >>
перенаправление обрабатывается Вашей оболочкой, и udev не выполняет команду через оболочку, таким образом, это буквально выполняет двоичный файл /bin/echo
и передача его аргументы 'inserted lacie' >> /home/herman/udev_file
. Если Вы изменяете udev для входа больше (редактирование /etc/udev/udev.conf
и добавьте строку udev_log="info"
), Вы будете видеть, что это выполняет ту команду, и вывод 'inserted lacie' >> /home/herman/udev_file
Лично, я предпочитаю делать короткие сценарии оболочки, которые делают то, что я хочу, таким образом, я могу отредактировать их без перезапуска udev
, но можно также использовать /bin/sh -c
для выполнения команды, таким образом, это обработает перенаправление:
SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="add", RUN+="/bin/sh -c '/bin/echo inserted lacie >> /home/herman/udev_file'"
Существует много вариаций в синтаксисе tar
команда. Значения по умолчанию tar GNU к чтению архива на входе stdandard и к записи архива к стандартному выводу, но многого другого значения по умолчанию версий к накопителю на магнитной ленте. Передайте f
флаг (с или без тире — я думаю, что версии BSD поддерживают любого) с аргументом -
указать на stdin или stdout.
Если Вы хотите использовать другую (de) программу сжатия, не говорить tar
сжимать, и передавать по каналу в (de) программу сжатия явно.
Для переименования файла используйте -s
опция, если Ваша версия tar
поддержки это (это подобно -s
опция pax
и к --transform
опция tar GNU).
ssh root@remote 'cd /my/path && bsdtar cf - -s '/big_file\.txt$/hello.txt/' big_file.txt | pbzip2' | pbzip2 -d | tar xf -
Если Вы только копируете единственный файл, нет никакого смысла в использовании tar, если Вы оба не хотите сохранить метаданные и хотеть использовать пользовательскую программу сжатия.
scp -C -p root@remote:/my/path/hello.txt big_file.txt