С этим форматом даты вы можете использовать порядок строк в awk
, например:
files=( $(ls | awk -v d=$(date -d '4 months ago' +%Y%m%d_999.pdf) '$1<d {print;}') )
tar cvfz backup.tar.gz "${files[@]}"
Программа awk
считывает входные строки и применяет к ним свои правила. В этом случае он сначала вызывается с переменной d
, установленной как дата отсечения, преобразованная в имя файла. Затем для каждой строки он сравнивает первое слово ( $ 1
) с датой отсечения ( d
) в алфавитном порядке, и там, где ввод находится перед клипом, он печатает линия (иначе нет).
Чтобы обрезать по месяцам, измените % d
на 00
, чтобы исключить месяц четыре месяца назад, или 99
, чтобы включить месяц четыре. мотыльков назад.
На самом деле я заработал, обеспечив загрузку модуля ядра «br _netfilter» на хост-компьютере. Это было так просто, раздражающе просто после столь долгого замешательства.
Документация/статьи, которые привели меня к решению:
1)
https://github.com/omribahumi/libvirt_metadata_apiиhttps://thewiringcloset.wordpress.com/2013/03/27/linux-iptable-snat-dnat/
См. раздел «Настройка iptables». Я использую «DNAT» вместо «ПЕРЕНАПРАВЛЕНИЕ», потому что «ПЕРЕНАПРАВЛЕНИЕ» просто перенаправляет трафик на интерфейс в локальной системе, а не на удаленный адрес, как в случае с NAT назначения.
2)
https://serverfault.com/questions/179200/difference-beetween-dnat-and-redirect-in-iptablesиhttps://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-6.html
Помогли мне понять разницу между REDIRECT и DNAT, как указано выше.
3)
https://github.com/omribahumi/libvirt_metadata_api/pull/4/files
Эта фиксация привела меня к фактическому решению (описанных выше вещей, которые я уже делал раньше, но безрезультатно ).
Да, вы должны поместить dnat
в OUTUPT
таблицу, потому что пакеты, сгенерированные локально, не пройдут через таблицу PREROUTING.