LoginSignup
7
8

More than 5 years have passed since last update.

rsyncでデプロイする

Last updated at Posted at 2017-04-17
  • ローカルファイルを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

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8