Rsync, как исключить все арки без amd64

Por supuesto, uno puede escribir un controlador de señal que no haga nada y, por lo tanto, ignorar la señal de manera efectiva, pero la primera opción es ignorar específicamente la señal usando el argumento SIG_IGNde la llamada al sistema signal().

Entonces, en términos de código, asumiendo la señal SIGINT, estas son las tres opciones:

  • signal(SIGINT, SIG_IGN);para ignorar
  • Para no llamar a la función signal(), o llamarla con signal(SIGINT, SIG_DFL);y así permitir que ocurra la acción predeterminada, es decir, terminar el proceso
  • signal(SIGINT, termination_handler);, donde termination_handler()es una función que se llama la primera vez que se produce la señal.

Fuente:https://www.gnu.org/software/libc/manual/html_node/Basic-Signal-Handling.html

Para el caso específico de señales donde la acción por defecto es ignorar la señal, las dos primeras opciones(SIG_IGNySIG_DFL)son ​​idénticas. La creación de una función de controlador vacía probablemente no tendrá un efecto visible, aparte de una sobrecarga (pequeña ).

NOTA :El signal()se usa en esta respuesta por simplicidad, pero en el nuevo código sigaction()se recomienda por razones de portabilidad.

1
02.08.2019, 13:45
1 ответ

Мне кажется, ваш сценарий подходит (, хотя я не пробовал его запускать ), так что, вероятно, у вас несоответствие шаблону. Глядя в ftp.fr.debian.org, я не вижу ничего, что называется точно armhf, например, но я вижу много Contents-armhf.gzи binary-armhf, поэтому я предполагаю, что это то, что вы пытаетесь исключить?

Попробуйте это:

rsync_exclude="$rsync_exclude --exclude *$item*"

Чтобы параметр стал --exclude *armhf*(, звездочки не должны расширяться в этом примере, но вам нужно будет добавить кавычки, чтобы ввести это непосредственно в приглашении ).

Если вы пытаетесь обновить локальную копию, которая уже содержит другие архитектуры, вам следует добавить --delete-excluded.

0
28.01.2020, 02:11

Теги

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