Я написал Python скрипт, который входит в базу данных (WordPress, чтобы быть более точным c) и захватывает идентификаторы блога. Затем я беру pexpect (с идентификатором блога) и пытаюсь выполнить mysqldump для нескольких таблиц, связанных с блогом.
Это функции, которые я использую в настоящее время, связанные с pexpect:
def ExportSqlTable(id):
print('mysqldump -u {} -p {}{} > /tmp/{}.sql'.format(db_user, db_database, StringTableFormatter(id), id))
child = pexpect.spawn('mysqldump -u {} -p {}{} > /tmp/{}.sql'.format(db_user, db_database, StringTableFormatter(id), id))
child.expect('Enter password: ')
child.sendline(db_pass)
Я провел некоторые исследования, и некоторые предлагают использовать:
child.delaybeforesend = 0.1
child.close()
child.wait()
Однако изменение моего кода на основе предложений по-прежнему не дает желаемого результата. Я не вижу файл в папке / tmp /.
Когда я беру вручную созданную команду и проверяю ее, она работает как надо.
mysqldump -u SomeRandomUserName -p SomeRandomDatabase wp_98_commentmeta wp_98_comments wp_98_groups_capability wp_98_groups_group wp_98_groups_group_capability wp_98_groups_user_capability wp_98_groups_user_group wp_98_links wp_98_options wp_98_postmeta wp_98_posts wp_98_term_relationships wp_98_term_taxonomy wp_98_termmeta wp_98_terms > /tmp/SomeRandomFile.sql
Ожидаемая строка " Введите пароль: "(с пробелом) на Linux:
Enter password:
Любая помощь будет отличной. Спасибо за ваше время.