Сценарий mysqldump, выдающий 0 байт при запуске без sudo - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть простой скрипт. Когда сценарий запускается локально с компьютера, он выгружает sql в файл, как и ожидалось:

#!/bin/bash
mysqldump -u user -ppassword db_name > latest.sql

Однако, когда я запускаю этот же сценарий с удаленной машины с использованием файла Rexfile, самое последнее. sql файл, который выводится, имеет длину 0 байт. Вот файл Rexfile:

#!/usr/bin/perl
use Rex -feature => [qw/1.4/];

user 'user';
private_key '/home/user/key.pem';
key_auth;

desc "Dump database";
task "dump_db", sub {
  run './dump_mysql.sh', cwd => '/home/user/mysql_dumps';
};

Я запускаю команду rex rex -H 111.222.235.111 dumb-db. Если я изменю задачу так, чтобы команда запуска была run 'sudo ./dump_mysql.sh' (обратите внимание на sudo перед командой), это работает. Но я вошел в систему как тот же владелец скрипта dump_mysql.sh, поэтому я не уверен, почему мне нужно запускать его как sudo. Почему он не генерирует sql вывод при использовании без sudo?

...