Linux从Webmin执行MySQL备份到基于时间的路径

我试图在Linux Ubuntu Server 12.04(CronJob)中设置一个计划任务,以便在午夜执行我所有 MySQL

数据库的每日备份.

我已经安装了已知的 Webmin (一个用于管理Web服务器的漂亮的Web界面).

所以我的问题是:每当执行备份时,文件都会被覆盖!

这意味着:前天的备份很少,只保存“昨天”备份!

我试过像设置动态文件路径之类的东西:

的/ var / WWW / mysqlbackups /%D-%间 – %Y

但我没有成功:(

有谁能够帮我.

非常感谢你们.

我制作了一个shell脚本(不适用于webmin).把它放在/etc/cron.daily中.

脚本对数据库进行备份(将其存储为.gz),然后通过ssh将其上载到另一台服务器.对于auth.我设置了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:

翻译自:https://stackoverflow.com/questions/11965278/linux-perform-mysql-backup-to-time-based-path-from-webmin

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章