SFTP 転送スクリプトの変数

SFTP 転送スクリプトの変数

私は次のことをやろうとしています:

  • データベースをエクスポートする(.tgz 形式にするなど、簡単です)
  • ツリー全体を .tgz にまとめる
  • 両方のファイルを別のサーバー上の指定されたディレクトリにコピーします。

できるこれらすべてのことを、現在使用しているスクリプト (bash) で実行します。ただし、自動化を検討しているため、さらに自動化が必要です。

現時点では私は

  • 今日の日付のディレクトリを作成する
  • mysqldumpは、その日付を含む名前のファイルにデータベースをダンプします。
  • ディレクトリツリーの.tgzを作成します。名前には今日の日付を含めます。
  • sftp 経由でサーバーに接続します (または scp、どちらでもかまいません... Windows (s)ftp(s) サーバーです)
  • (現在静的な)ファイルを(現在静的な)ディレクトリにアップロードする
  • sftp サーバーを終了し、アップロードのステータスを出力します。

sftp サーバーに接続する前に 2 つのファイル名を変数に変換して、「put $filename1」などと実行できるようにする必要がありますか?

答え1

POSIXシェル(を含むbash)では、次のようなコマンドを使用できます。

# Today's date
today=$(date +'%Y-%m-%d')

# Create directory
mkdir "$today"

# Dump SQL backup
mysqldump … > "$today/sqlbackup.$today.sql"

# Make a tarball
tar cf "$today.tgz" "$today"

# Transfer file
scp -p "$today.tgz" remoteHost:

# Get a status report from the immediately preceding command
echo "Status is $? (0=good)"

関連情報