0

私が行った場合

augtool --noautoload --transform "sshd incl /etc/ssh/sshd_config" ls "/files/etc/ssh/sshd_config/"

次に、 のツリー構造を取得します/etc/ssh/sshd_configが、ここではファイル パスを 2 回書きました。最後に/files.

質問

ファイルパスのみを指定して同じことを行うことは可能でしょうか?

4

1 に答える 1

3

デフォルトでは、Augeas は認識しているすべてのファイルをロードしますが、これは非常に遅くなる可能性があります。

これを防ぐために、--noautoloadレンズからファイルを自動的にロードすることをバイパスするコマンドを使用します。これにより、Augeas ははるかに高速になりますが、これはもはや認識していないことも意味するため、このファイルをレンズに手動で再度/etc/ssh/sshd_configマッピングする必要があります。これは.Sshd.lns--transform Sshd.lns incl /etc/ssh/sshd_config

Augeas が認識している任意のファイルをロードし、他のレンズをバイパスする( augeas-sandboxからの) 別の可能性を次に示します。

#!/bin/sh

FILE=$1

if [ -z "$FILE" ]; then
  echo "Usage: $0 <FILE>"
  exit 1
fi

augtool -L -i <<EOF
rm /augeas/load/*["$FILE"!~glob(incl) or "$FILE"=~glob(excl)]
load
set /augeas/context /files$FILE
EOF

このスクリプトは autoload ステートメントを使用するため、使用するレンズを指定する必要はありませんが、ファイルに必要なレンズのみをロードし、Augeas を高速化します。さらに、 を設定/augeas/contextするため、相対パスを使用できます。

$ augloadone /etc/ssh/sshd_config
rm : /augeas/load/*["/etc/ssh/sshd_config"!~glob(incl) or "/etc/ssh/sshd_config"=~glob(excl)] 1158
augtool> ls .
于 2014-06-01T16:37:26.740 に答える