我有一个 MySQL 数据库,我想每天备份到我的 Windows PC 上的 Dropbox 文件夹。
如何从 Windows 7 自动执行此操作?
我有一个 MySQL 数据库,我想每天备份到我的 Windows PC 上的 Dropbox 文件夹。
如何从 Windows 7 自动执行此操作?
备份 mysql 数据库的最简单方法之一是创建转储文件。这就是mysqldump
目的。请阅读mysqldump
.
在其最简单的语法中,您可以使用以下命令创建转储:
mysqldump [connection parameters] database_name > dump_file.sql
您[connection parameters]
需要将本地客户端连接到数据库所在的 MySQL 服务器。
mysqldump
将创建一个转储文件:一个纯文本文件,其中包含创建和填充数据库表所需的 SQL 指令。该>
字符会将 的输出重定向mysqldump
到文件(在本例中为dump_file.sql
)。当然,您可以压缩此文件以使其更易于处理。
您可以将该文件移动到任何您想要的位置。
要恢复转储文件:
restore
在目标服务器中创建一个空数据库(比如说)
mysql [connection parameters] restore < dump_file.sql
当然,您还可以使用其他一些“开关” mysqldump
。我经常使用这些:
-d
:这将告诉mysqldump
创建一个“空”备份:表和视图将被导出,但没有数据(如果你想要的只是一个数据库“模板”,这很有用)-R
:在转储文件中包含存储的例程(过程和函数)--delayed-insert
: 使用insert delayed
而不是insert
填充表格--disable-keys
: 将insert
每个表的语句括在alter table ... disable keys
和之间alter table ... enable keys
;这可以使插入更快您可以mysqldump
在批处理文件中包含命令和任何其他压缩和复制/移动命令。
我提取备份并将其推送到 Dropbox 的解决方案如下。
可以在此处下载 Ubuntu 批处理文件的示例。
backup.sh
backup.sh
以创建备份版本,例如backup.sql
backup.sql
到 Dropbox 文件夹backup.sh
任务,例如每天晚上备份到压缩文件
mysqldump -u [uname] -p [dbname] | gzip -9 > [备份文件.sql.gz]
plink.exe -ssh -pw -i "路径\to\private-key\key.ppk" -noagent username@server-ip
创建应用 https://www2.dropbox.com/developers/apps
添加一个应用程序并选择
Dropbox API App
。注意创建app key
和app secret
在 Ubuntu 中安装 Dropbox API;使用上面的 app key 和 app secret
$ wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh $ chmod +x dropbox_uploader.sh
按照说明授权访问应用程序,例如
http://www2.dropbox.com/1/oauth/authorize?oauth_token=XXXXXXX
测试应用程序是否正常工作 - 应该没问题
$ ./dropbox_uploader.sh info
该应用程序已创建,与之关联的文件夹是
YourDropbox\Apps\<app name>
要使用的命令
列出文件
$ ./dropbox_uploader.sh list
上传文件
$ ./dropbox_uploader.sh upload <filename> <dropbox location> e.g. $ ./dropbox_uploader.sh upload backup.sql .
这会将文件存储
backup.sql
到YourDropbox\Apps\<app name>\backup.sql
完毕
crontab
调用命令
sudo crontab -e
插入一行以每天运行 backup.sh 脚本,如下所示
0 0 * * * /home/userName/pathTo/backup.sh
解释:
minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command
或者干脆我们可以使用
@daily /home/userName/pathTo/backup.sh
笔记: