rsyncを使用してデフォルトでファイルを除外する方法は?一般的なrsync構文の開始方法は次のとおりです。
rsync --exclude ".ht*" --exclude "error_log" --exclude ".DS*" --exclude "old" ...
私は設定ファイルについて多くの言及をしましたが、/etc/rsyncd.conf
これはrsyncコマンドよりもデーモンにとってより具体的かもしれません。
上記の基本構文のように、コマンドラインから呼び出すときにrsyncのいくつかの基本的な除外を実行できますか?
答え1
ファイルに除外を追加し、 --exclude-from=/path/to/exclude_file を使用します。
例えば
# cat rsync.excludes
.ht*
error_log
.DS*
old
...
# rsync --exclude-from=rsync.excludes
答え2
いいえ、rsync
呼び出し時に読み取られるデフォルトの構成ファイルはありません。あなたができる最善の方法は、@frogstarr78が言うように除外したいパターン、ファイル、およびディレクトリ名を含むテキストファイルを作成してrsync
から--exclude-from=filename
。
答え3
rsyncではデフォルトオプションを設定できませんが、ラッパースクリプトを生成してrsyncバイナリよりも$ PATHに高い場所に配置できます。
これは私のrsyncラッパーです。~/bin/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を変更するだけです。
答え4
--exclude "/*" はデフォルトですべてを除外します。例は次のとおりです。
rsync -av --include "bin/" --exclude "/*"/source_dir//dest_dir/