Использование Rsync с Makefile - PullRequest
       8

Использование Rsync с Makefile

0 голосов
/ 20 октября 2018

Я пытаюсь использовать make-файл для синхронизации некоторых моих каталогов, которые находятся на моем компьютере, с моим флеш-накопителем.Для этой цели я использую несколько команд в одной цели.Makefile выглядит примерно так:

pend:
    rsync -avhzPu /foo/ /bar/  
    rsync -avhzPu /bob/ /alice/  

Но каждый раз, когда я делаю make -f .sync pend, запускается только первая команда, которая выдает некоторый вывод вместе с некоторой ошибкой

sent 45.78K bytes  received 3.32K bytes  98.20K bytes/sec
total size is 4.42G  speedup is 89,981.37
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]
.sync:14: recipe for target 'pend' failed
make: *** [pend] Error 23

Но когда яЯ запускаю команды отдельно, это работает.Я не уверен, что я здесь не так делаю.

1 Ответ

0 голосов
/ 20 октября 2018

С выхода ...

sent 45.78K bytes  received 3.32K bytes  98.20K bytes/sec
total size is 4.42G  speedup is 89,981.37
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]
.sync:14: recipe for target 'pend' failed
make: *** [pend] Error 23

... первый rsync не работает.Если он заканчивается ненулевым кодом выхода, то make будет просто освобожден в этот момент.Если вы хотите, чтобы make продолжил работу с другими командами в правиле, вы можете явно запросить, чтобы оно игнорировало ненулевые коды выхода, добавив к команде префикс - ...

pend:
    -rsync -avhzPu /foo/ /bar/
    -rsync -avhzPu /bob/ /alice/

.конечно, предполагается, что простое продолжение команд - это желаемое поведение.В противном случае вам нужно подумать о том, как действовать дальше.

...