Rsyncでデフォルトでファイルを除外するにはどうすればよいですか?これが私の通常のrsync構文の始まりです:
rsync --exclude ".ht*" --exclude "error_log" --exclude ".DS*" --exclude "old" ...
/etc/rsyncd.conf
ファイルの構成について多くの言及を見てきましたが、おそらくそれはrsyncコマンドよりもデーモンの方が重要です。
上記のデフォルトの構文のように、コマンドラインから呼び出されたときにrsyncのデフォルトの除外を設定することは可能ですか?
除外をファイルに追加してから、-exclude-from =/path/to/exclude_fileを使用します
例えば.
# cat rsync.excludes
.ht*
error_log
.DS*
old
...
# rsync --exclude-from=rsync.excludes
いいえ、rsync
には、呼び出し時に読み取るデフォルトの構成ファイルがありません。最善の方法は、@ frogstarr78が言うことを実行し、除外するパターン、ファイル、およびディレクトリ名を含むテキストファイルを作成してから、rsync
を--exclude-from=filename
でポイントすることです。
Rsyncではデフォルトのオプションを設定できませんが、ラッパースクリプトを作成して、rsyncバイナリよりも$ PATHの上位に配置することができます。
これは~/bin/rsync
にある私のrsyncラッパーです
#!/bin/sh
# Set path to the rsync binary
RSYNC=/usr/bin/rsync
# Look for these exclude files
IGNORE_FILES=(~/.rsyncignore ./.gitignore ./.rsyncignore)
EXCLUDE_FROM=""
for f in ${IGNORE_FILES[@]}; do
if [[ -e $f ]]; then
EXCLUDE_FROM="$EXCLUDE_FROM --exclude-from=$f "
fi
done
$RSYNC $EXCLUDE_FROM "$@"
~/.rsyncignore
、./.gitignore
、./.rsyncignore
ファイルを検索し、それらが存在する場合は、デフォルトの--exclude-from
引数として使用します。
環境と好みに合わせてRSYNCとIGNORE_FILESを変更するだけです。
--exclude "/ *"は、デフォルトですべてを除外します。次に例を示します。
rsync -av --include "bin /" --exclude "/ *"/source_dir// dest_dir /