MySQLデータベースを実行しているRHELサーバーがあります。mysqldump
バックアップファイルを作成する実行するBashスクリプトがあります。スクリプトをBashで直接実行するときに作成されるバックアップファイルのサイズは754259バイトです。同じスクリプトがcronを介して実行される場合、サイズはわずか20バイトです。
私の知る限り、cronは、ログインしてスクリプトを手動で実行するときに使用するのと同じユーザーコンテキストで実行されています。ただし、サイズの違いを考えると、それは真実ではないようです。
同じスクリプトを実行するとファイルサイズが異なるのはなぜですか?
シェルスクリプトの内容:
backup_path=/var/custom/db_backups
configFile=/var/custom/auth.cnf
db_name=[db_name]
date=$(date +"%d-%b-%Y")
sudo /opt/rh/mysql55/root/usr/bin/mysqldump --defaults-extra-file=$configFile $db_name | gzip -9 > $backup_path/$db_name-$date.sql.gz
cronを編集するには:
sudo crontab -e
cronファイルの内容:
12 21 * * * /var/custom/maint_plan
これにより、スクリプトは毎日午後9時13分に実行されます。
mysqldump
コマンドは、パイプで連結されたトラフでは何も返さないgzip
空のgzipファイルで、終了します。見る:
$ echo -n "" | gzip -9 > test.gz
$ stat -c %s test.gz
20
これにより、サイズが20バイトのファイルになります。したがって、問題はmysqldump
コマンドです。これはrootのcrontabであるため、スクリプトはroot権限で実行されます。sudo
必要ありません。なしで使用してくださいsudo
。ただ:
/opt/rh/mysql55/root/usr/bin/mysqldump --defaults-extra-file=$configFile $db_name | gzip -9 > $backup_path/$db_name-$date.sql.gz
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加