リモートストレージサーバーの一部の自動バックアップを実行するためのbashスクリプトを作成しています。バッチスクリプトはcronジョブとして実行されますが、以前にテストしたことがあります。以下のスクリプトを参照してください。
#!/bin/bash
BACKUPS_PATH='/home/web/xxx/yyy/pb_data/backups'
cd $BACKUPS_PATH
CURRENT_DIRECTORY=$(pwd)
echo "Current directory is: ${CURRENT_DIRECTORY}"
LATEST_BACKUP=$(ls -Art | tail -n 1)
echo "Latest backup file is: ${LATEST_BACKUP}"
FILE_PATH="${BACKUPS_PATH}/${LATEST_BACKUP}"
echo "Latest backup entire path is: ${FILE_PATH}"
DATE=$(date)
echo "Datetime: ${DATE}"
echo "Script has run at ${DATE}" > auto_backup.log
scp -P 23 $FILE_PATH xxx@yyy:/home/backups
auto_backup.logに日付を反映しようとすると、ファイルがローカルに作成されず、代わりにバックアップファイルが転送されているリモートホストにあることを除いて、すべてがうまく機能します。 scp 接続が確立される前でも行が実行されているため、この動作を理解していません。なぜこれが起こり、どのように解決すべきかを知っている人はいますか?
答え1
問題を見てみると、ログが生成され、最近転送されたファイルとなるバックアップディレクトリパスにCDを入れたためだと気づきました。これでこの問題は解決されました。