以下のスクリプトを見つけてください
if [ "$#" -eq 0 ]; then
dbs=('test_db_1' 'test_db_2')
path='/var/backups/'
else
dbs=( "$@" )
path='/app/mybackups/'
fi
dbuser='test_user_name'
dbpassword='test_pass_word'
now="$(date +'%d-%m-%Y_%T')"
currentDate="$(date)"
dayToSubtract=365
cd ${path}
echo "location: $path"
for element in ${dbs[@]}
do
echo $element
echo "Starting backup now for db: $element on $now"
mongodump -u ${dbuser} -p ${dbpassword} --authenticationDatabase 'admin' -d $element --gzip --archive=${element}_$now.archive
dateToBeRemoved=$(date --date="${currentDate} -${dayToSubtract} day" +%d-%m-%Y)
echo $dateToBeRemoved
fileToBeRemoved="${element}_${dateToBeRemoved}"
echo Removing $fileToBeRemoved
rm $fileToBeRemoved*
done
echo All Done!
echo "location: $path"
私はこのスクリプトを毎年サーバーのデータベースをバックアップするために毎年使用してきましたが、スクリプトにコマンドライン引数を渡して手動バックアップを実行するためにも使用しました。
私は最近Ubuntuを使用して新しいサーバーを入手しましたが、次のエラーが発生しました。
daily.sh: 2: daily.sh: Syntax error: "(" unexpected (expecting "fi")
参考までに、以下のスクリーンショットを参照してください。
追加後:
#!/usr/bin/env bash
同じエラーが発生しました。
どのbashを実行すると、次のようになります。
bashの結果に基づいてshebangを追加しましたが、まだ同じ問題が発生します。
現在のフォルダで実行している場合:
BOM確認:
Ubuntuについて: 出版社ID:Ubuntu説明:Ubuntu 18.04.3 LTSバージョン:18.04コード名:bionic
ベストアンサー1
スクリプトの最初の行にshebangを追加します。(
コメントから)
#!/usr/bin/env bash
または道を知っている場合。
#!/bin/bash
または
#!/usr/bin/bash
どこにいても構いません。