一部のクライアントから、WHMでデータベースバックアップのみを設定できるかどうか尋ねられました。一部の人にとっては奇妙に聞こえるかもしれませんが、そのような機能を望んでいるユーザーもいます。
WHMバックアップ設定には、WHM->バックアップ->バックアップ構成からアクセスできます。 。残念ながら、現時点では、ユーザーのデータベースのみをバックアップするオプションはありません。
更新:2020年4月20日の時点で、このcPanelリクエストは「オープンディスカッション」ステータスになっています。 cPanel機能リクエストサイトでコメントして投票できます
どのような解決策がありますか? bashコマンドを使用できます。サーバー上のすべてのデータベースを.gzアーカイブにバックアップする1つのコマンドは次のとおりです。
root@www [/backup]# mysqldump --all-databases | gzip > /backup/$(date +%Y-%h-%d)-alldatabases.sql.gz
これにより、サーバー上のすべてのMySQL/MariaDBデータベースでバックアップが作成されます。ファイル名には現在の日付が含まれます。 (例:2018-Sep-25-alldatabases.sql.gz)必要に応じてコマンドを変更できます。 cronジョブを作成して、特定の時間に実行することもできます。
もう1つの可能性は、サーバー上の各データベースを個別にバックアップすることです。このために、 backupdbs.shのような新しいファイルを作成します ファイルの内容は次のとおりです。
#!/bin/bash
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
date=$(date +%Y-%h-%d)
backupdir="/backup"
mkdir -p $backupdir/$date
databases=`$mysql -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema)"`
for db in $databases; do
echo $db
$mysqldump --opt --databases $db | gzip > "$backupdir/$date/$db.sql.gz"
done
スクリプトを実行するには:
root@www [/backup]# perl backupdbs.sh
前の場合と同様に、必要に応じてスクリプトを調整し、cronジョブを作成することもできます。