シェル スクリプトを作成しました (webmin 用ではありません)。/etc/cron.daily に入れます。
スクリプトはデータベースのバックアップを作成 (.gz として保存) し、それを ssh で別のサーバーにアップロードします。認証のために。私はsshキーをセットアップするので、パスワードは必要ありません。バックアップ ファイルには一意の名前が付けられるため、バックアップ ファイルを上書きすることはありません。
これは、スクリプト内でファイル名を作成する方法です。
now=`date +%Y%m%d_%H%M`
dst_path=/var/local/backups
filename="$dst_path/$database.$now.sql.gz"
次に、x 日より古いすべてのバックアップ ファイルを削除する小さなスクリプトを作成する必要があります。
#!/bin/sh
#
# Creates a backup of a MySQL databases and uses ssh (sFTP) to send if to another server
# This script shouldbe called from the crontab
PATH=/usr/sbin:/usr/bin:/sbin:/bin
# MySQL user and password
mysql_cmd=/opt/bitnami/mysql/bin/mysqldump
mysql_usr=user_name
mysql_pass=password
# destination ssh
dst_user=user_name
dst_hostname=192.168.1.1
# Database to backup
database=test
# create timestamp
now=`date +%Y%m%d_%H%M`
# where we store the files
dst_path=/var/local/backups
# backup filename
filename="$dst_path/$database.$now.sql.gz"
dst_filename="$database.$now.sql.gz"
# run backup
$mysql_cmd -u $mysql_usr --password=$mysql_pass $database | gzip > $filename
# upload to sever (ssh)
scp $filename $dst_user@$dst_hostname: