dzasa/maratus-php-backup

备份不同类型的数据库(Couchdb, MongoDB, MySQL, PostgreSQL, Redis, Riak, SQLite)到本地或远程的Google Drive、Dropbox、Copy、FTP等。

v0.1.0 2015-03-14 20:51 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:21:08 UTC


README

备份更多类型的数据库,本地文件并将它们存储在本地、ftp、google drive、dropbox等。

功能

  1. 可用的存储客户端
    • 本地
    • FTP
    • Google Drive
    • Dropbox
    • Copy.com
  2. 可用的数据库
    • MySQL
    • Postgresql
    • SQLite
    • MongoDB
    • Redis
    • Riak
    • CouchDB
  3. 以压缩格式(ZIP、GNU tar、BSD tar)发送文件
  4. 通过SSH使用私钥(密码保护)或正常用户名/密码连接到远程主机,并使用SCP压缩和下载

文档和信息

完整的文档和额外信息将在GitHub 项目页面 上提供 :)

用法

require 'vendor/autoload.php';

use Dzasa\MaratusPhpBackup\MaratusBackup;

$backup = new MaratusBackup();

$dbConfig = array(
   'type' => 'mysql',
   'host' => "localhost",
   'port' => 3306,
   'user' => 'root',
   'pass' => '',
   'database' => ''
);

$backup->addDatabase($dbConfig);

$dbConfigPg = array(
   'type' => 'postgresql',
   'host' => "localhost",
   'port' => 5432,
   'user' => '',
   'pass' => '',
   'database' => ''
);

$backup->addDatabase($dbConfigPg);

$dbConfigMongo = array(
   'type' => 'mongodb',
   'database' => '',
   'host' => '',
   'user' => 'dzasa',
   'pass' => ''
);

$backup->addDatabase($dbConfigMongo);

$couchDbConfig = array(
'type' => 'couchdb',
'remote' => true,
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'database' => '',
);
$backup->addDatabase($couchDbConfig);

$dbConfig2 = array(
   'type' => 'mysql',
   'host' => "localhost",
   'port' => 3306,
   'user' => '',
   'pass' => '',
   'database' => ''
);
$backup->addDatabase($dbConfig2);

$dBoxConfig = array(
   'access_token' => ''
);

$backup->addDropbox($dBoxConfig);

$gDriveConfig = array(
   'client_id' => '',
   'client_secret' => '',
   'token_file' => 'gdrive-token.json',
   'auth_code' => ''
);
$backup->addGdrive($gDriveConfig);

$redisConfig = array(
'type' => 'redis',
'remote' => true,
'host' => '192.168.1.1',
'user' => 'root',
'private_key' => '',
'private_key_pass' => '',
'database_path' => "/var/lib/redis/dump.rdb",
);

$backup->addDatabase($redisConfig);

$riakConfig = array(
'type' => 'riak',
'remote' => true,
'host' => '192.168.1.1',
'user' => 'root',
'private_key' => '',
'private_key_pass' => '@',
'bitcask_path' => '/var/lib/riak/bitcask',
'leveldb_path' => '/var/lib/riak/leveldb',
'strong_consistency_path' => '/var/lib/riak/ensembles',
'remote_compress' => 'zip',
);
$backup->addDatabase($riakConfig);

$sqliteConfig = array(
	'type' => 'sqlite',
	'remote' => true,
	'host' => '192.168.1.1',
	'user' => 'root',
	'private_key' => '',
	'private_key_pass' => '',
	'remote_compress' => 'zip',
	'database_path' => '/root/backup',
);
$backup->addDatabase($sqliteConfig);

$copyConfig = array(
	'type' => 'copy',
	'consumer_key' => '',
	'consumer_secret' => '',
	'access_token' => '',
	'token_secret' => '',
);

$backup->addStorage($copyConfig);

$localStorageConfig = array(
	'type' => 'local',
	'save_dir' => 'test2',
);

$backup->addStorage($localStorageConfig);

$ftpStorage = array(
	'type' => 'ftp',
	'host' => '192.168.1.1',
	'user' => '',
	'pass' => '',
	'remote_dir' => 'test2',
);
$backup->addStorage($ftpStorage);

$backup->backup("tar.bz2");

print_r($backup->getDatabaseBackupResult());
echo "-----------------------------\n";
print_r($backup->getStorageBackupResult());

关于

要求

  • PHP Zippy
  • Copy.com PHP SDK
  • Dropbox SDK
  • Google API客户端
  • PHPSeclib
  • Symfony文件系统
  • Symfony进程
  • Guzzle

提交错误和功能请求

错误和功能请求在GitHub上跟踪

版本

很快 :)

作者

Jasenko Rakovic - naucnik@gmail.com

许可

在MIT许可证下授权 - 有关详细信息,请参阅LICENSE文件