
私は次のことをやろうとしています:
- データベースをエクスポートする(.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)"