Redhat 7.2 Linux 버전이 있습니다.
/etc/yum.repos.d
/etc/yum.repos.d 아래의 다음 파일을 제외하고 원격 시스템의 모든 저장소 파일을 삭제하고 싶습니다.
local.repo
redhat.repo
cluster.repo
우리는 이것을 시도했습니다(성공하지 못함)
ssh root@$machine find /etc/yum.repos.d -type f -not -name 'local.repo ' -or -name 'redhat.repo' -or -name ' cluster.repo’ –delete
또는
ssh root@$machine find /etc/yum.repos.d ! -name 'local.repo|redhat.repo|cluster.repo' -type f -exec rm -f {} +
또는
ssh root@$machine find /etc/yum.repos.d -type f -not \(-name 'local.repo' -or -name 'redhat.repo' -or -name 'cluster.repo' \) -delete
답변1
ssh "root@$machine" '
find /etc/yum.repos.d -type f ! \(
-name local.repo -o \
-name redhat.repo -o \
-name cluster.repo \) –delete
'
(루트 사용자의 로그인 쉘이 $machine
Bourne과 유사하다고 가정).
명령 에 전달하는 내용은 ssh
원격 호스트에서 실행될 인수가 아니라 원격 사용자의 로그인 셸에서 셸 코드로 해석되는 문자열이라는 점을 기억하세요. 따라서 가장 쉬운 방법은 문자열을 작은따옴표로 묶어 로컬 쉘이 이를 방해하지 않도록 하는 것입니다.
답변2
이 CLI는 /etc/yum.repos.d 아래의 모든 파일을 삭제하고 해당 파일을 제외하며 삭제된 파일도 인쇄합니다.
ssh "root@$IP" "find /etc/yum.repos.d ! -name local.repo ! -name redhat.repo ! -name cluster.repo -type f -delete -print"