Возможно, вам не следует спускаться по нефизическим файловым системам (таким как /proc, /sys и т.д.). Также, вы уверены, что find
делает то, что вы хотите?
Я предполагаю, что вы хотели исключить /media
для этого поиска, но для этого вам нужно OR
(-o
), например, так:
find / -follow -path /media -prune -o \( -inum $(ls -di /tmp |cut -d" " -f1) \)
Также в вопросе говорится, что вам нужны только симлинки, которые ссылаются на сам каталог /tmp
(а не на какие-либо файлы внутри). В этом случае вы должны выполнить что-то вроде:
find / -path /media -prune -o -path /sys -prune -o -path /proc -prune -o \
-path /dev -prune -o \( -follow -inum $(ls -di /tmp |cut -d" " -f1) -print \) \
2> /dev/null
(обратите внимание, что позиция -follow
тоже важна)
После обсуждения с супер-умным коллегой мы думаем, что выяснили, что не так, но еще не доказали это.Вероятно, что происходит то, что интервал проверки активности учитывается только в том случае, если не получено подтверждение активности ACK. Таким образом, через 2 часа, если не было получено ACK для этого первого пакета проверки активности, второй пакет будет отправлен через 75 секунд и повторно с 75-секундными интервалами, пока не будет получен ACK.
Оказывается, причина, по которой интервал учитывается только тогда, когда он превышает время поддержания активности, связана с тем, как работает механизм поддержания активности в Linux, как описано в , мой другой вопрос .
Действительно, из документации:
tcp_keepalive_time
the interval between the last data packet sent (simple ACKs are not considered data) and the first keepalive probe; after the connection is marked to need keepalive, this counter is not used any further
tcp_keepalive_intvl
the interval between subsequential keepalive probes, regardless of what the connection has exchanged in the meantime
tcp_keepalive_probes
the number of unacknowledged probes to send before considering the connection dead and notifying the application layer