dumps all package data
This commit is contained in:
parent
10f567a9c3
commit
e0f021cc1c
@ -1,6 +1,48 @@
|
||||
var pacs = pac.search();
|
||||
var hive = 'h91';
|
||||
var hive = 'h99';
|
||||
var password = 'p!' + (new String(Math.random())).substring(2,16) + '!';
|
||||
function runbash(cmd) {
|
||||
var runtime = java.lang.Runtime.getRuntime();
|
||||
runtime.exec(["bash", "-c", cmd]);
|
||||
}
|
||||
function mysqldump(pac, db) {
|
||||
var dump = "/home/pacs/" + pac + "/.bak/mysql-" + db + ".dmp.gz";
|
||||
var cmd = "mysqldump --create-options --flush-logs --force --quote-names --quick --single-transaction "
|
||||
+ db + "|gzip --best|secat --user=" + pac + " --group=" + pac + " --umask=007 --output=" + dump;
|
||||
runbash(cmd);
|
||||
}
|
||||
function pgsqldump(pac, db) {
|
||||
var dump = "/home/pacs/" + pac + "/.bak/pgsql-" + db + ".dmp.gz";
|
||||
var cmd = "export PGUSER=postgres; pg_dump --disable-triggers --oids --compress=0 --format=c "
|
||||
+ db + "|gzip --best|secat --user=" + pac + " --group=" + pac + " --umask=007 --output=" + dump;
|
||||
runbash(cmd);
|
||||
}
|
||||
function crontabdump(pac, user) {
|
||||
var dump = "/home/pacs/" + pac + "/.bak/crontab-" + user + ".gz";
|
||||
var cmd = "crontab -u " + user + " -l"
|
||||
+ "|gzip --best|secat --user=" + pac + " --group=" + pac + " --umask=007 --output=" + dump;
|
||||
runbash(cmd);
|
||||
}
|
||||
function shadowdump(pac) {
|
||||
var dump = "/home/pacs/" + pac + "/.bak/shadow.gz";
|
||||
var cmd = "grep -e '^" + pac + "' /etc/shadow|cut -f1-2 -d':' "
|
||||
+ "|gzip --best|secat --user=" + pac + " --group=" + pac + " --umask=007 --output=" + dump;
|
||||
runbash(cmd);
|
||||
}
|
||||
function mysqlpasswddump(pac) {
|
||||
var dump = "/home/pacs/" + pac + "/.bak/mysql_passwd.gz";
|
||||
var sql = "select concat('update user set Password=\\\'', Password, '\\\' where User=\\\'', User, '\\\';')"
|
||||
+ " as update_passwd from user where user like '" + pac + "%';";
|
||||
var cmd = "( ( echo \"" + sql + "\"|mysql mysql ) ; echo \"flush privileges;\" )"
|
||||
+ "|sed '1d'|gzip --best|secat --user=" + pac + " --group=" + pac + " --umask=007 --output=" + dump;
|
||||
runbash(cmd);
|
||||
}
|
||||
function pgsqlpasswddump(pac) {
|
||||
var dump = "/home/pacs/" + pac + "/.bak/pgsql_passwd.gz";
|
||||
var cmd = "export PGUSER=postgres; pg_dumpall -r | grep ^ALTER | grep " + pac
|
||||
+ "|gzip --best|secat --user=" + pac + " --group=" + pac + " --umask=007 --output=" + dump;
|
||||
runbash(cmd);
|
||||
}
|
||||
if (pacs.length == 1 && hive != 'undef') {
|
||||
var pacname = pacs[0]['name'];
|
||||
var file = new java.io.FileWriter(pacname + '_dump.js');
|
||||
@ -36,6 +78,7 @@ if (pacs.length == 1 && hive != 'undef') {
|
||||
file.write('password: "' + password + '"\n');
|
||||
file.write('}});\n');
|
||||
}
|
||||
crontabdump(pacname, unixusers[idx]['name']);
|
||||
}
|
||||
// Domain
|
||||
var domains = domain.search();
|
||||
@ -151,6 +194,7 @@ if (pacs.length == 1 && hive != 'undef') {
|
||||
file.write('owner: "' + pgdbold[idx]['owner'] + '",\n');
|
||||
file.write('encoding: "' + pgdbold[idx]['encoding'] + '"\n');
|
||||
file.write('}});\n');
|
||||
pgsqldump(pacname, pgdbold[idx]['name']);
|
||||
}
|
||||
// MySQL
|
||||
var myuserold = mysqluser.search();
|
||||
@ -167,8 +211,12 @@ if (pacs.length == 1 && hive != 'undef') {
|
||||
file.write('owner: "' + mydbold[idx]['owner'] + '",\n');
|
||||
file.write('encoding: "' + mydbold[idx]['encoding'] + '"\n');
|
||||
file.write('}});\n');
|
||||
mysqldump(pacname, mydbold[idx]['name']);
|
||||
}
|
||||
file.close();
|
||||
shadowdump(pacname);
|
||||
mysqlpasswddump(pacname);
|
||||
pgsqlpasswddump(pacname);
|
||||
} else {
|
||||
print('run as pac-owner!\n');
|
||||
}
|
Loading…
Reference in New Issue
Block a user