- ローカルファイルを
ssh
を使ってリモートサーバに転送する - 転送除外ファイルは
rsync_exclude.txt
で指定 - 上書きするファイルはリモートサーバの
~/rsync_backup
に日付ごとに保存
rsync -a --dry-run --list-only --exclude-from=rsync_exclude.txt --backup-dir=~/rsync_backup/$(LANG=C date +%Y%m%d%H%M%S) -e ssh ./* remote:/path/to/target
rsync_exclude.txt
*.swp
*.bak
*~
/.*
/GPATH
/GRTAGS
/GTAGS
/node_modules
/vendor
/readme.md
/README.md
# for Laravel
/storage
スクリプト
- rsyncを使ったデプロイスクリプト
-
files
ディレクトリに転送対象のファイルを保存してスクリプトを実行する - ファイルの一覧が表示されるので問題なければ
Y
で転送開始
#!/bin/bash
# releases/YYYYMMDD_release/files
server_name=remote-server
server_dir=/path/to/target
TIMESTAMP=$(LANG=C date +%Y%m%d%H%M%S)
#rsync_opt="--dry-run --list-only"
rsync_opt="$rsync_opt -a --no-o --no-p --no-t"
rsync_opt="$rsync_opt -b --backup-dir=~/rsync_backup/$TIMESTAMP"
rsync_opt="$rsync_opt -e ssh"
dir=files
if [ -d $dir ]
then
echo "---------- Files ----------"
find $dir -type f
echo "---------- Files ----------"
/bin/echo -n "Y/n: "
read ans
if [ $ans == "Y" ]
then
rsync $rsync_opt ./$dir/ $server_name:$server_path
else
echo "Stop"
fi
fi