Rsync над пользовательской оболочкой с fifo
Я пытаюсь использовать rsync над пользовательской оболочкой, созданной с помощью fifo. Однако я не могу найти способ справиться с этим:
Сценарий initsh
для имитации стандартной оболочки по fifo:
- Какова цель оболочки uucico на HP-UX, Solaris и, возможно, других Unix-разновидностях?
- Записывать вывод программы в файл журнала, содержащий PID в его имени
- Как найти файл с правами на чтение из корневого каталога?
- Как обрабатывать строки с пробелами в целом в bash?
- Как сделать снимок сайта через скрипт оболочки?
#!/bin/bash rm fin mkfifo fin rm fout mkfifo fout rm ferr mkfifo ferr rm farg mkfifo farg read arg <farg cat fin | /bin/bash -i -c "$arg" 1>fout 2>ferr
Этот скрипт работает хорошо, вы можете проверить его, запустив (cat fout &) && echo ls > farg
Сценарий rsh
для перехода к rsync:
#!/bin/bash shift; cat fout & cat ferr 1>&2 & echo "$@" | tee -a out > farg cat | tee -a out > fin sleep 2 kill %% exit
Способ вызова rsync:
rsync -e './rsh' user@fakehost:/
Он работает хорошо, когда вы запускаете echo ./rsh
, вы получили оболочку, такую как rsync. Но когда rsync запускает его, он не закрывает stdin, и поэтому он ждет остановки (EOF) «cat | …». Я также пробовал с exec 0<>fin
но он вообще не работает.
Есть ли уловка, чтобы правильно закрыть ручку? Или у вас есть другой подход?
- Как передать команду программе в оболочку?
- Передача переменной sed
- изменение оболочки по умолчанию в / bin / bash в планировщике заданий, например, в CRON
- Невозможно получить правильный код выхода из скрипта
- Поиск ключевого слова в файле PDF
- Получите внешний IP-адрес в оболочке без выкопания в 2016 году?
- Могу ли я читать и писать в тот же файл в Linux, не перезаписывая его?
- Как вернуться к n уровням каталогов из командной строки?
One Solution collect form web for “Rsync над пользовательской оболочкой с fifo”
вы можете дождаться окончания команды cat fout
:
#!/bin/bash shift; cat fout & foutid=$! cat ferr 1>&2 & echo "$@" | tee -a out > farg cat | tee -a out > fin <&0 & wait $foutid sleep 2 kill %% exit
- Раздел все еще почти заполнен, но файлы, похоже, были потеряны. Что случилось?
- Тайм-аут SSL для Apache не соответствует настройкам