Задача Cron: сброс дампа и scp tar для удаленного сервера

Я хочу сделать задание cron, которое выгружает базу данных MySQL, а tar - дамп с датой | час | минутой, а затем scp - на удаленный сервер.

0 */2 * * * mysqldump -uroot myBase>myBase.sql && tar -zcf /var/backups/myBase`-date +\%Y\%m\%d\%H\%M\%S`.tar.gz myBase.sql && ...

Теперь мне не хватает части scp.

Я не знаю, как получить файл .tar.gz, недавно созданный с его суффиксом date / hour / minute.

1
задан 18 September 2017 в 18:07

3 ответа

Не нужно scp, просто сжать файл и записать его на удаленный путь будет достаточно.

tar cvzf - /path/to/myBase.sql | ssh USER@HOST "dd of=/path/to/backups/myBase$(date +\%Y\%m\%d\%H\%M\%S).tar.gz"

Команда - сообщает tar, чтобы не создавать выходной файл, вместо этого он будет записывать выходы в stdout. см. man tar.

Вы также можете использовать cat >/path/to/bsckups/... вместо dd.

Даже вы можете использовать rsync с опцией -z, которая сравнивает файл перед передачей, но будет распаковываться после пересылки в удаленном пути.

Или вы можете сбрасывать непосредственно на удаленный путь, если сжатие не является вопросом.

mysqldump .... | ssh USER@HOST "dd ..."

Также вы можете использовать -h вариант mysqldump как показано ниже на удаленном сервере (теперь это локально) и дамп с локального сервера (теперь это удаленный сервер):

mysqldump -h HOSTNAME/IP ...  > /path/in/local
1
ответ дан 22 May 2018 в 18:21

Не нужно scp, просто сжать файл и записать его на удаленный путь будет достаточно.

tar cvzf - /path/to/myBase.sql | ssh USER@HOST "dd of=/path/to/backups/myBase$(date +\%Y\%m\%d\%H\%M\%S).tar.gz"

Команда - сообщает tar, чтобы не создавать выходной файл, вместо этого он будет записывать выходы в stdout. см. man tar.

Вы также можете использовать cat >/path/to/bsckups/... вместо dd.

Даже вы можете использовать rsync с опцией -z, которая сравнивает файл перед передачей, но будет распаковываться после пересылки в удаленном пути.

Или вы можете сбрасывать непосредственно на удаленный путь, если сжатие не является вопросом.

mysqldump .... | ssh USER@HOST "dd ..."

Также вы можете использовать -h вариант mysqldump как показано ниже на удаленном сервере (теперь это локально) и дамп с локального сервера (теперь это удаленный сервер):

mysqldump -h HOSTNAME/IP ... > /path/in/local
2
ответ дан 18 July 2018 в 06:38

Не нужно scp, просто сжать файл и записать его на удаленный путь будет достаточно.

tar cvzf - /path/to/myBase.sql | ssh USER@HOST "dd of=/path/to/backups/myBase$(date +\%Y\%m\%d\%H\%M\%S).tar.gz"

Команда - сообщает tar, чтобы не создавать выходной файл, вместо этого он будет записывать выходы в stdout. см. man tar.

Вы также можете использовать cat >/path/to/bsckups/... вместо dd.

Даже вы можете использовать rsync с опцией -z, которая сравнивает файл перед передачей, но будет распаковываться после пересылки в удаленном пути.

Или вы можете сбрасывать непосредственно на удаленный путь, если сжатие не является вопросом.

mysqldump .... | ssh USER@HOST "dd ..."

Также вы можете использовать -h вариант mysqldump как показано ниже на удаленном сервере (теперь это локально) и дамп с локального сервера (теперь это удаленный сервер):

mysqldump -h HOSTNAME/IP ... > /path/in/local
2
ответ дан 24 July 2018 в 18:38

Другие вопросы по тегам:

Похожие вопросы: