Sean Sullivan
2018-01-24 20:33:11 UTC
I am trying to monkeypatch the mysql plugin to instead sudo up to postgres and run pg_dump instead. I just did a few things to make it work so far:
1.) cp /usr/lib/bareos/plugins/BareosFd{MySQL,Postgres}SQLclass.py; cp /usr/lib/bareos/plugins/bareos-fd-{mysql,postgresql}.py
2.) sed -i 's/mysql/psql/g' to replace all mentions of mysql in both files.
3.) edit BareosFDPostgresSQLclass.py to replace options and mentions of mysql with psql.
4.) I set the psql and pg_dump commands to have sudo -u postgres in front of them so I wouldn't have to deal with authentication right now. Once I can get the basic plugin working I will try to add authentication options.
Currently the bareos-fd client restarts without issue and I can create a job using the new fileset and plugin:
/etc/bareos/client/myself.conf::
Client {
Name = ss-psql-bareos-test-02-fd
Maximum Concurrent Jobs = 20
# remove comment from "Plugin Directory" to load plugins from specified directory.
# if "Plugin Names" is defined, only the specified plugins will be loaded,
# otherwise all storage plugins (*-fd.so) from the "Plugin Directory".
#
Plugin Directory = /usr/lib/bareos/plugins
# Plugin Names = ""
# if compatible is set to yes, we are compatible with bacula
# if set to no, new bareos features are enabled which is the default
# compatible = yes
}
/etc/bareos/bareos-dir.d/fileset/PostgresPGDump.conf::
FileSet {
Name = "PostgresPGDump"
Description = "Backup all databases via pgdump and then stream to director"
Include {
Options {
compression=GZIP
signature = MD5
}
Plugin = "python:module_path=/usr/lib/bareos/plugins:module_name=bareos-fd-postgresql"
}
}
In bareos I can create a new job and that works. However, when I try to get an estimate for the job, the client seems to go into an infinite loop::
*configure add job name=ss-psql-bareos-test-02-psql-test-job client=ss-psql-bareos-test-02 jobdefs=PostgresPGDump
Created resource config file "/etc/bareos/bareos-dir.d/job/ss-psql-bareos-test-02-psql-test-job.conf":
Job {
Name = ss-psql-bareos-test-02-psql-test-job
Client = ss-psql-bareos-test-02
JobDefs = PostgresPGDump
}
*estimate listing job=ss-psql-bareos-test-02-psql-test-job
Using Catalog "MyCatalog"
Connecting to Client ss-psql-bareos-test-02 at ss-psql-bareos-test-02:9102
python-fd: Starting backup of /_pgsqlbackups_/postgres.sql
-rwx------ 0 root root 26311192 2018-01-24 20:24:44 /_pgsqlbackups_/postgres.sql
From here it will just sit like this for hours. The databases are small (it's just the dellstore2 test database). I tried to enable debugging and tracelog but I don't see anything in /var/log/bareos/. I did find a trace of an old attempt in /var/lib/bareos/ with the following inside:
ss-psql-bareos-test-02-fd (100): python-fd.c:2741-0 python-fd: start_backup called
ss-psql-bareos-test-02-fd (100): python-fd.c:2741-0 python-fd: Dumper: 'sudo -u postgres pg_dump --format=p --blobs -- --clean dellstore'
ss-psql-bareos-test-02-fd (150): attr.c:311-0 -rwx------ 0 root root 24934936 2018-01-24 00:45:19 /_pgsqlbackups_/dellstore.sql
ss-psql-bareos-test-02-fd (150): fd_plugins.c:992-0 startBackup returned type=3, fname=/_pgsqlbackups_/dellstore.sql
ss-psql-bareos-test-02-fd (100): python-fd.c:2741-0 python-fd: end_backup_file() entry point in Python called. Returncode: 1
ss-psql-bareos-test-02-fd (200): runscript.c:149-0 runscript: running all RUNSCRIPT object (ClientAfterJob) JobStatus=R
ss-psql-bareos-test-02-fd (150): fd_plugins.c:399-0 plugin_ctx=7fa2fc02f4d8 JobId=0
ss-psql-bareos-test-02-fd (150): fd_plugins.c:201-0 name=<NULL> len=0 plugin=python-fd.so plen=6
ss-psql-bareos-test-02-fd (100): python-fd.c:2741-0 python-fd: handle_plugin_event called with bEventJobEnd
ss-psql-bareos-test-02-fd (150): fd_plugins.c:201-0 name=<NULL> len=0 plugin=bpipe-fd.so plen=5
ss-psql-bareos-test-02-fd (150): fd_plugins.c:239-0 Event 2 disabled for this plugin.
ss-psql-bareos-test-02-fd (150): fd_plugins.c:1831-0 Free instance fd-plugin_ctx_list=7fa2fc02f4d8 JobId=0
I have since removed the extra -- but now I can't seem to generate another trace and the process just seems to hang::
root 5793 0.0 0.2 371072 13284 ? Ssl 18:48 0:00 /usr/sbin/bareos-fd
root 5837 0.0 0.0 4512 792 ? S 18:49 0:00 \_ /bin/sh -c sudo -u postgres /usr/bin/pg_dump --format=p --blobs --clean postgres
root 5838 0.0 0.0 55560 3856 ? S 18:49 0:00 | \_ sudo -u postgres /usr/bin/pg_dump --format=p --blobs --clean postgres
postgres 5839 0.0 0.1 99468 8252 ? S 18:49 0:00 | \_ /usr/lib/postgresql/9.6/bin/pg_dump --format=p --blobs --clean postgres
root 6481 0.0 0.0 4512 760 ? S 20:24 0:00 \_ /bin/sh -c sudo -u postgres /usr/bin/pg_dump --format=p --blobs --clean postgres
root 6482 0.0 0.0 55560 3940 ? S 20:24 0:00 \_ sudo -u postgres /usr/bin/pg_dump --format=p --blobs --clean postgres
postgres 6483 0.0 0.1 99468 8324 ? S 20:24 0:00 \_ /usr/lib/postgresql/9.6/bin/pg_dump --format=p --blobs --clean postgres
Can someone point me in the right direction in terms of troubleshooting this or what I would need to get the mysql plugin working? Do I need to specify a file like in the example? I don't want to backup all of /etc/ like the example mentions.
Thanks in advance for all of your help!!!
1.) cp /usr/lib/bareos/plugins/BareosFd{MySQL,Postgres}SQLclass.py; cp /usr/lib/bareos/plugins/bareos-fd-{mysql,postgresql}.py
2.) sed -i 's/mysql/psql/g' to replace all mentions of mysql in both files.
3.) edit BareosFDPostgresSQLclass.py to replace options and mentions of mysql with psql.
4.) I set the psql and pg_dump commands to have sudo -u postgres in front of them so I wouldn't have to deal with authentication right now. Once I can get the basic plugin working I will try to add authentication options.
Currently the bareos-fd client restarts without issue and I can create a job using the new fileset and plugin:
/etc/bareos/client/myself.conf::
Client {
Name = ss-psql-bareos-test-02-fd
Maximum Concurrent Jobs = 20
# remove comment from "Plugin Directory" to load plugins from specified directory.
# if "Plugin Names" is defined, only the specified plugins will be loaded,
# otherwise all storage plugins (*-fd.so) from the "Plugin Directory".
#
Plugin Directory = /usr/lib/bareos/plugins
# Plugin Names = ""
# if compatible is set to yes, we are compatible with bacula
# if set to no, new bareos features are enabled which is the default
# compatible = yes
}
/etc/bareos/bareos-dir.d/fileset/PostgresPGDump.conf::
FileSet {
Name = "PostgresPGDump"
Description = "Backup all databases via pgdump and then stream to director"
Include {
Options {
compression=GZIP
signature = MD5
}
Plugin = "python:module_path=/usr/lib/bareos/plugins:module_name=bareos-fd-postgresql"
}
}
In bareos I can create a new job and that works. However, when I try to get an estimate for the job, the client seems to go into an infinite loop::
*configure add job name=ss-psql-bareos-test-02-psql-test-job client=ss-psql-bareos-test-02 jobdefs=PostgresPGDump
Created resource config file "/etc/bareos/bareos-dir.d/job/ss-psql-bareos-test-02-psql-test-job.conf":
Job {
Name = ss-psql-bareos-test-02-psql-test-job
Client = ss-psql-bareos-test-02
JobDefs = PostgresPGDump
}
*estimate listing job=ss-psql-bareos-test-02-psql-test-job
Using Catalog "MyCatalog"
Connecting to Client ss-psql-bareos-test-02 at ss-psql-bareos-test-02:9102
python-fd: Starting backup of /_pgsqlbackups_/postgres.sql
-rwx------ 0 root root 26311192 2018-01-24 20:24:44 /_pgsqlbackups_/postgres.sql
From here it will just sit like this for hours. The databases are small (it's just the dellstore2 test database). I tried to enable debugging and tracelog but I don't see anything in /var/log/bareos/. I did find a trace of an old attempt in /var/lib/bareos/ with the following inside:
ss-psql-bareos-test-02-fd (100): python-fd.c:2741-0 python-fd: start_backup called
ss-psql-bareos-test-02-fd (100): python-fd.c:2741-0 python-fd: Dumper: 'sudo -u postgres pg_dump --format=p --blobs -- --clean dellstore'
ss-psql-bareos-test-02-fd (150): attr.c:311-0 -rwx------ 0 root root 24934936 2018-01-24 00:45:19 /_pgsqlbackups_/dellstore.sql
ss-psql-bareos-test-02-fd (150): fd_plugins.c:992-0 startBackup returned type=3, fname=/_pgsqlbackups_/dellstore.sql
ss-psql-bareos-test-02-fd (100): python-fd.c:2741-0 python-fd: end_backup_file() entry point in Python called. Returncode: 1
ss-psql-bareos-test-02-fd (200): runscript.c:149-0 runscript: running all RUNSCRIPT object (ClientAfterJob) JobStatus=R
ss-psql-bareos-test-02-fd (150): fd_plugins.c:399-0 plugin_ctx=7fa2fc02f4d8 JobId=0
ss-psql-bareos-test-02-fd (150): fd_plugins.c:201-0 name=<NULL> len=0 plugin=python-fd.so plen=6
ss-psql-bareos-test-02-fd (100): python-fd.c:2741-0 python-fd: handle_plugin_event called with bEventJobEnd
ss-psql-bareos-test-02-fd (150): fd_plugins.c:201-0 name=<NULL> len=0 plugin=bpipe-fd.so plen=5
ss-psql-bareos-test-02-fd (150): fd_plugins.c:239-0 Event 2 disabled for this plugin.
ss-psql-bareos-test-02-fd (150): fd_plugins.c:1831-0 Free instance fd-plugin_ctx_list=7fa2fc02f4d8 JobId=0
I have since removed the extra -- but now I can't seem to generate another trace and the process just seems to hang::
root 5793 0.0 0.2 371072 13284 ? Ssl 18:48 0:00 /usr/sbin/bareos-fd
root 5837 0.0 0.0 4512 792 ? S 18:49 0:00 \_ /bin/sh -c sudo -u postgres /usr/bin/pg_dump --format=p --blobs --clean postgres
root 5838 0.0 0.0 55560 3856 ? S 18:49 0:00 | \_ sudo -u postgres /usr/bin/pg_dump --format=p --blobs --clean postgres
postgres 5839 0.0 0.1 99468 8252 ? S 18:49 0:00 | \_ /usr/lib/postgresql/9.6/bin/pg_dump --format=p --blobs --clean postgres
root 6481 0.0 0.0 4512 760 ? S 20:24 0:00 \_ /bin/sh -c sudo -u postgres /usr/bin/pg_dump --format=p --blobs --clean postgres
root 6482 0.0 0.0 55560 3940 ? S 20:24 0:00 \_ sudo -u postgres /usr/bin/pg_dump --format=p --blobs --clean postgres
postgres 6483 0.0 0.1 99468 8324 ? S 20:24 0:00 \_ /usr/lib/postgresql/9.6/bin/pg_dump --format=p --blobs --clean postgres
Can someone point me in the right direction in terms of troubleshooting this or what I would need to get the mysql plugin working? Do I need to specify a file like in the example? I don't want to backup all of /etc/ like the example mentions.
Thanks in advance for all of your help!!!
--
You received this message because you are subscribed to the Google Groups "bareos-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bareos-users+***@googlegroups.com.
To post to this group, send email to bareos-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "bareos-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bareos-users+***@googlegroups.com.
To post to this group, send email to bareos-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.