データベースバックアップをとるために使用される(/home/username/public_html/backup_dir/db_backup.sh
に保存されている)シェルスクリプトがあります。cronバックアップzipファイルのパスを設定する方法
私は私のでシェルスクリプトを実行しているディレクトリ/home/username/public_html/backup_dir/
に行くと、それはbackup_dir
ディレクトリ(良い)でzipファイルを作成しているコマンドsh db_backup.sh
てスクリプトを実行して、パテを通じてを共有ホスティング。しかし、同じスクリプトで、ルート(つまり、/
)ディレクトリにあるzipファイルを作成しています。(問題)です。
私は、シェルスクリプトがどこにある
/home/username/public_html/backup_dir/
にzipファイルを作成します。
私は店舗のパスをいくつか設定する必要があることは知っていますが、どこに書き込むのかわかりません。
シェルスクリプト(db_backup.sh):
#!/bin/sh
FILE=my_db.sql.`date +"%Y%m%d"`
DATABASE=db_name
USER=db_username
PASS=db_password
unalias rm 2> /dev/null
rm ${FILE} 2> /dev/null
rm ${FILE}.gz 2> /dev/null
mysqldump --opt --user=${USER} --password=${PASS} ${DATABASE} > ${FILE}
gzip $FILE
echo "${FILE}.gz was created:"
crontabコマンド:
0 */6 * * * sh /home/username/public_html/backup_dir/db_backup.sh
すべてのヘルプ/提案が割り当てるのに役立ちます。
ありがとうございました。
通常、非対話型スクリプトではエイリアス展開が行われないので、 'unalias'は基本的にno-opです。 – tripleee
また、 'rm'は任意の数のファイル名を取るので、' rm -f "$ FILE" $ FILE.gz "'を実行することができます。 '-f'は基本的に"ファイルが見つかりません "という警告を副作用として無効にするので、エラーリダイレクトは必要ありません。 – tripleee
@トライプルー:実際には、私はシェルスクリプトを知らないです。ですから、 'unalias'で始まる3行を' rm -f "に置き換えるべきですか?$ FILE" "$ FILE.gz" '?? '2/dev/null'と書かなければなりませんか? –