Игнорирование Mariabackup —target-dir

#python #mariadb #mysql-python

#python #mariadb #mysql-python

Вопрос:

Я нахожусь в процессе автоматизации наших заданий резервного копирования mariadb в программе python. Однако по какой-то причине кажется, что параметр —target-directory, хотя и передается правильно и проверяется печатью, игнорируется при выполнении фактической команды из os.system. приведенный ниже код:

 import os
import datetime, time
import mysql.connector as mariadb


unix_socket = "/var/lib/mysql/mysql.sock"
currentdate = datetime.datetime.now()
bkp_path = time.strftime("/%Y/%m-%d/%H%M")
ro_status = ("show global variables like 'read_only%'")
dblist = ("show databases")
db = mariadb.connect(user='pytest', password='pytest', unix_socket=unix_socket)
cur = db.cursor()
cur.execute(ro_status)
result = cur.fetchall()
for r in result:
        if "OFF" in r:
            cur.execute(dblist)
            dbs = cur.fetchall()
            for d in dbs:
                dbstr = ''.join(d)
                bkp_path = "/backups/"   dbstr   time.strftime("/%Y/%m-%d/%H%M/")
                bkp_cmd = "sudo mariabackup --backup --databases='"   dbstr   "' --target-directory="   bkp_path  "  --user pytest --password=pytest --no-lock"
                try:
                    os.stat(bkp_path)
                except:
                    os.makedirs(bkp_path)
                try:
                   # print(bkp_cmd)
                    os.system(bkp_cmd)
                except:
                        print("Problem running backup on this host")
        else:
            print(h   " is read only and will not be backed up")
  

Пример напечатанной команды:
sudo mariabackup —backup —databases=»testdbBA» —target-directory=/резервные копии/testdbBA/2019/03-06/1659/ —пользовательский pytest —пароль = pytest —без блокировки

даже при отдельном запуске через печатный блок — он пытается выполнить запись в мой локальный домашний каталог, а не в указанный целевой каталог.

Комментарии:

1. похоже, что это —target-dir, а не —target-directory mariadb.com/kb/en/library/mariabackup-options/#-target-dir

2. Иногда при отладке собственного кода вы упускаете простые вещи!. Это была проблема — спасибо!

Ответ №1:

его —target-dir не —target-directory

благодаря MFisherKDX