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
'
(rootユーザーのログインシェルが$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"