Как ограничить исходящие подключения одним доменным именем?

Я не уверен, что вы пытаетесь здесь изменить, насколько мне известно, stat -cработает только со статистикой GNU, а stat -c %yвыдает результат в формате 2019-03-14 14:21:32.704211521 +0200. Вы пытаетесь удалить что-либо после двойного пробела, но его нет.


В любом случае, если вы хотите выполнить арифметические действия с меткой времени, лучше просто считать секунды с начала эпохи, т. е. -c %Y, а не -c %y. Потом,чтобы получить разницу (в секундах ), вы можете использовать арифметическое расширение $((.. ))в оболочке:

$ diff=$(( "$(date +%s)" - "$(stat -c %Y "$file")" ))
$ echo $diff
86527

Чтобы получить это как часы, минуты и секунды, просто сделайте соответствующие деления и возьмите остатки:

$ s=$(( diff % 60 )); m=$(( diff / 60 % 60 )); h=$(( diff / 3600 ))
$ printf "%d:%02d:%02d\n" "$h" "$m" "$s"
24:02:07

Или используйте, например,. bc, чтобы получить время в дробных числах дней, как показывает ответ @Pheric .

0
23.06.2020, 15:58
1 ответ

В качестве отправной точки:

/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

Затем вы добавляете это задание crontab (вы можете запускать его каждую минуту, если хотите):

#! /bin/bash

dig +short abc.com | while read address; do
    if [ -z "`/sbin/iptables-save | grep "$address"`" ]; then
        /sbin/iptables -A OUTPUT -d "$address" -p tcp -m tcp --dport 80  -j ACCEPT
        /sbin/iptables -A OUTPUT -d "$address" -p tcp -m tcp --dport 443 -j ACCEPT
    fi
done

Это полностью не проверено, но должно работать.

0
18.03.2021, 23:25

Теги

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