Автоматическая передача файлов с использованием сценариев Bash в SSH на моем новом сервере со старого сервера [дубликат]

Как я могу подключиться к удаленному хосту с помощью SSH и создать один сценарий Bash для копирования всех файлов и папок с моего старого сервера на мой новый сервер для резервного копирования каждый день?

0
задан 3 April 2018 в 10:16

1 ответ

Настройте основанную на ключе аутентификацию SSH

Во-первых, необходимо генерировать ssh ключ. На машине Вы соединяетесь от, выполненный:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vidarlo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/vidarlo/.ssh/id_rsa.
Your public key has been saved in /home/vidarlo/.ssh/id_rsa.
The key fingerprint is:
SHA256:/jxfxiWiao0m7YG9MiHgXBFKoo7kJcgTOrPtAZNtpVg vidarlo@hannah.bitsex.no
The key's randomart image is:
+---[RSA 2048]----+
|..E o.           |
|=B.+.            |
|@==. .           |
|=O= .            |
|o=oo    S   . . .|
| .o.. .+   . o o |
|  .  ..o+o.   +  |
|      + =*o  o   |
|       B+ oo.    |
+----[SHA256]-----+
[~]$ 

Просто нажмите Enter при выяснении; местоположения по умолчанию и никакой пароль в порядке.

Это генерирует и открытый ключ с закрытым ключом. Следующий шаг должен скопировать открытый ключ в удаленный сервер, так, чтобы он мог использоваться. ssh-copy-id может использоваться для этого:

$ ssh-copy-id user@host
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/vidarlo/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@host's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'user@host'"
and check to make sure that only the key(s) you wanted were added.

На данном этапе необходимо смочь работать ssh user@host, и будьте зарегистрированы, не вводя пароль.

Задание резервного копирования

Вы хотите простой scp. Это плохо по нескольким причинам:

  1. Вы не получаете истории. Если файл перезаписывается по ошибке, и Вы не обнаруживаете его, прежде чем следующее задание резервного копирования, scp счастливо перезапишет содержание.
  2. Необходимо копировать все содержание каждую ночь.
  3. Вы не получаете отчет о состоянии.
  4. Если задание резервного копирования не заканчивается вовремя, Вы рискуете иметь два задания резервного копирования, пишущие в то же содержание.

Но, так или иначе. Это может быть сделано, пока Вы знаете о протестах. Использовать crontab -e отредактировать Ваших пользователей crontab. Вставьте строку как это:

0 5 * * * /usr/bin/scp "/path/to/backup" "user@remote:/path/to/store/backups"

Эта команда будет работать ночью в 5:00. Это может быть изменено, если Вы требуете. Объяснение полей следующие:

  1. минуты, 0-60. 0 средств выполняют его в xx:00, *, средства выполняют его каждую минуту
  2. часы, 0-23. 02 средства 02:xx. * означает каждый час.
  3. День месяца, 1-31. * означает каждый день.
  4. Месяц, 1-12. * каждый месяц
  5. День недели, 1-7.
2
ответ дан 30 October 2019 в 03:53

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

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