🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

database-backup-dropbox

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

database-backup-dropbox - npm Package Compare versions

Comparing version

to
0.0.2

5

package.json
{
"name": "database-backup-dropbox",
"version": "0.0.1",
"version": "0.0.2",
"description": "Backups database and copies file to DropBox",
"main": "./src/app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"prepublish": "tsc",
"start": "tsc & node ./src/app.js"
},

@@ -9,0 +10,0 @@ "repository": {

# database-backup-dropbox
Backups database and copies file to DropBox
```
Usage: database-backup-droxbox [options]
Options:
--fileNamePrefix [required]
--filePath [required]
--databaseName [required]
--databaseUser [required]
--databasePassword [required]
--databaseHost [required]
--accessToken [required]
```

56

src/app.js

@@ -13,2 +13,3 @@ "use strict";

const argv = require('yargs')
.usage('Usage: $0 [options]')
.demand('fileNamePrefix', 'Filename Prefix')

@@ -30,34 +31,31 @@ .demand('filePath', 'File Path')

co(function* () {
while (true) {
const dropBoxGateway = new dropbox_gateway_1.DropBoxGateway();
const fileName = `${fileNamePrefix}_${moment().format('MM-DD-YYYY-HH-mm-ss')}.Bak`;
const sqlConfig = {
user: databaseUser,
password: databasePassword,
server: databaseHost,
database: databaseName
};
const pool = yield sql.connect(sqlConfig);
const sqlResult = yield pool.request().query(`BACKUP DATABASE ${databaseName} TO DISK = '${path.join(filePath, fileName)}'`);
pool.close();
const fileSize = fs.statSync(path.join(filePath, fileName)).size;
const chunkSize = 100000;
const sessionId = yield dropBoxGateway.startSession(accessToken);
for (let i = 0; i < fileSize; i = i + chunkSize) {
const buffer = readChunk.sync(path.join(filePath, fileName), i, chunkSize);
for (let j = 0; j < 5; j++) {
try {
yield dropBoxGateway.appendSession(accessToken, sessionId, i, buffer);
break;
}
catch (err) {
winston.error(err);
yield delay(1000);
}
const dropBoxGateway = new dropbox_gateway_1.DropBoxGateway();
const fileName = `${fileNamePrefix}_${moment().format('MM-DD-YYYY-HH-mm-ss')}.Bak`;
const sqlConfig = {
user: databaseUser,
password: databasePassword,
server: databaseHost,
database: databaseName
};
const pool = yield sql.connect(sqlConfig);
const sqlResult = yield pool.request().query(`BACKUP DATABASE ${databaseName} TO DISK = '${path.join(filePath, fileName)}'`);
pool.close();
const fileSize = fs.statSync(path.join(filePath, fileName)).size;
const chunkSize = 100000;
const sessionId = yield dropBoxGateway.startSession(accessToken);
for (let i = 0; i < fileSize; i = i + chunkSize) {
const buffer = readChunk.sync(path.join(filePath, fileName), i, chunkSize);
for (let j = 0; j < 5; j++) {
try {
yield dropBoxGateway.appendSession(accessToken, sessionId, i, buffer);
break;
}
winston.info(`${i} / ${fileSize}`);
catch (err) {
winston.error(err);
yield delay(1000);
}
}
yield dropBoxGateway.endSession(accessToken, sessionId, `/${fileName}`, fileSize);
yield delay(43200000);
winston.info(`${i} / ${fileSize}`);
}
yield dropBoxGateway.endSession(accessToken, sessionId, `/${fileName}`, fileSize);
}).catch((err) => {

@@ -64,0 +62,0 @@ winston.error(err);

@@ -15,2 +15,3 @@ // Imports

const argv = require('yargs')
.usage('Usage: $0 [options]')
.demand('fileNamePrefix', 'Filename Prefix')

@@ -31,2 +32,4 @@ .demand('filePath', 'File Path')

const databasePassword = argv.databasePassword;
// 'FZCdx-RSopAAAAAAAAAAiakLpQQc01oxOYEL0WDE_imLZZvN0jx1lbl2M6tSEJDa'
const accessToken = argv.accessToken;

@@ -36,49 +39,44 @@

while (true) {
const dropBoxGateway = new DropBoxGateway();
const dropBoxGateway = new DropBoxGateway();
const fileName = `${fileNamePrefix}_${moment().format('MM-DD-YYYY-HH-mm-ss')}.Bak`;
const fileName = `${fileNamePrefix}_${moment().format('MM-DD-YYYY-HH-mm-ss')}.Bak`;
const sqlConfig = {
user: databaseUser,
password: databasePassword,
server: databaseHost,
database: databaseName
};
const sqlConfig = {
user: databaseUser,
password: databasePassword,
server: databaseHost,
database: databaseName
};
const pool = yield sql.connect(sqlConfig);
const sqlResult = yield pool.request().query(`BACKUP DATABASE ${databaseName} TO DISK = '${path.join(filePath, fileName)}'`);
pool.close();
const pool = yield sql.connect(sqlConfig);
const sqlResult = yield pool.request().query(`BACKUP DATABASE ${databaseName} TO DISK = '${path.join(filePath, fileName)}'`);
pool.close();
const fileSize = fs.statSync(path.join(filePath, fileName)).size;
const fileSize = fs.statSync(path.join(filePath, fileName)).size;
const chunkSize = 100000;
const chunkSize = 100000;
const sessionId = yield dropBoxGateway.startSession(accessToken);
const sessionId = yield dropBoxGateway.startSession(accessToken);
for (let i = 0; i < fileSize; i = i + chunkSize) {
const buffer = readChunk.sync(path.join(filePath, fileName), i, chunkSize);
for (let i = 0; i < fileSize; i = i + chunkSize) {
const buffer = readChunk.sync(path.join(filePath, fileName), i, chunkSize);
for (let j = 0; j < 5; j++) {
try {
yield dropBoxGateway.appendSession(accessToken, sessionId, i, buffer);
break;
} catch (err) {
winston.error(err);
yield delay(1000);
}
for (let j = 0; j < 5; j++) {
try {
yield dropBoxGateway.appendSession(accessToken, sessionId, i, buffer);
break;
} catch (err) {
winston.error(err);
yield delay(1000);
}
winston.info(`${i} / ${fileSize}`);
}
yield dropBoxGateway.endSession(accessToken, sessionId, `/${fileName}`, fileSize);
winston.info(`${i} / ${fileSize}`);
}
yield delay(43200000); // 12 Hours
yield dropBoxGateway.endSession(accessToken, sessionId, `/${fileName}`, fileSize);
}
}).catch((err) => {
winston.error(err);
});