Linux "watch" 명령은 nft 목록 규칙 세트의 마지막 30줄을 표시합니다.

Linux "watch" 명령은 nft 목록 규칙 세트의 마지막 30줄을 표시합니다.

나는 Debian Bash에서 "nfc list ruleset" 코드의 마지막 30줄을 계속 보고 싶습니다. 이 같은:

watch -n 1 nft list ruleset | tail -n 30

그러나 위 코드는 "nfc" 명령 출력의 마지막 30줄을 표시하지 않고 빈 화면을 표시합니다.

답변1

질문을 입력하는 동안 해결책을 찾았습니다.

watch "bash -c 'sudo nft list ruleset | tail -n 30'"

답변2

오직:

watch -n 1 'nft list ruleset | tail -n 30'

요즘 대부분의 watch구현에서는 를 사용하는 것처럼 셸을 호출하고 해당 인수의 연결을 셸 코드로 해석합니다 eval. 일부에서는 -x다음과 같이 중개자를 건너뛰고 명령을 직접 실행할 수 있는 옵션이 있습니다.

그래서:

watch foo bar

다음과 실질적으로 동일합니다.

watch -x sh -c 'foo bar'

그리고 당신의 것:

watch "bash -c 'sudo nft list ruleset | tail -n 30'"

처럼:

watch -x sh -c "bash -c 'sudo nft list ruleset | tail -n 30'"

해당 호출을 전달하는 것은 bash처럼 파이프될 수 있고 일반적으로 더 효율적이므로 bash완전히 불필요합니다 .sh

다음을 수행할 수 있습니다.

sudo watch 'nft list ruleset | tail -n 30'

대신에:

watch 'sudo nft list ruleset | tail -n 30'

각 반복의 오버헤드(및 감사 로그 채우기)를 방지하기 위해 수퍼유저 권한 도 watch필요하지 않습니다 .tailsudo

관련 정보