在旧服务器上使用新服务器上的SSH中的Bash脚本自动传输文件

阿尼班·戈什(Anirban Ghosh)

如何使用SSH连接到远程主机并创建一个Bash脚本,以将所有文件和文件夹从旧服务器复制到新服务器,以便每天进行备份?

狂欢一场

设置基于密钥的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 [email protected]
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"

该命令将在每晚05:00运行。如果您愿意,可以更改此设置。字段说明如下:

  1. 分钟,0-60。0表示在xx:00运行,*表示分钟运行一次
  2. 小时,0-23。02表示02:xx。*表示每小时。
  3. 每月的1月31日。*表示每天。
  4. 1-12月。*是每个月
  5. 星期几,1-7。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Apple脚本自动打开ssh服务器文件

来自分类Dev

使用脚本在SSH服务器上远程运行命令

来自分类Dev

使用脚本在ssh服务器上远程运行命令

来自分类Dev

使用 angular 等框架时服务器上服务器端脚本的文件结构

来自分类Dev

在ssh和特殊字符的远程服务器上使用sed命令的bash脚本

来自分类Dev

将文件从Linux(Ubuntu)的Windows子系统上的SSH服务器传输到Windows

来自分类Dev

在许多服务器上通过SSH自动运行命令

来自分类Dev

如何通过SSH在远程服务器上运行Web服务器脚本?

来自分类Dev

使用PowerShell脚本中的参数在远程服务器上执行.cmd文件

来自分类Dev

使用SSH.NET从Ubuntu服务器上的文件中删除行

来自分类Dev

从服务器传输文件

来自分类Dev

在新服务器上创建用户的脚本

来自分类Dev

在Linux服务器上的文件名中带有换行符的文件传输

来自分类Dev

JavaScript代码可在旧服务器上运行,但不能在新服务器上运行

来自分类Dev

将旧服务器上的“错误” MySQL编码转换为新服务器上的正确UTF-8

来自分类Dev

在远程服务器上运行bash脚本

来自分类Dev

期望脚本找到远程服务器上的文件

来自分类Dev

期望脚本找到远程服务器上的文件

来自分类Dev

在 FTP 服务器上编写文件移动脚本

来自分类Dev

在服务器上运行R脚本?

来自分类Dev

在服务器上设置cronjob脚本

来自分类Dev

Paramiko,在SSH服务器上附加文件

来自分类Dev

linux上的ssh强化服务器

来自分类Dev

服务器上的全局ssh密钥

来自分类Dev

SSH 服务器上的连接超时

来自分类Dev

新服务器上的php错误

来自分类Dev

将旧服务器的“错误” MySQL编码转换为新服务器上的正确UTF-8

来自分类Dev

使用bash脚本从ftp服务器下载多个文件

来自分类Dev

通过Apache服务器上的PHP执行bash文件

Related 相关文章

  1. 1

    使用Apple脚本自动打开ssh服务器文件

  2. 2

    使用脚本在SSH服务器上远程运行命令

  3. 3

    使用脚本在ssh服务器上远程运行命令

  4. 4

    使用 angular 等框架时服务器上服务器端脚本的文件结构

  5. 5

    在ssh和特殊字符的远程服务器上使用sed命令的bash脚本

  6. 6

    将文件从Linux(Ubuntu)的Windows子系统上的SSH服务器传输到Windows

  7. 7

    在许多服务器上通过SSH自动运行命令

  8. 8

    如何通过SSH在远程服务器上运行Web服务器脚本?

  9. 9

    使用PowerShell脚本中的参数在远程服务器上执行.cmd文件

  10. 10

    使用SSH.NET从Ubuntu服务器上的文件中删除行

  11. 11

    从服务器传输文件

  12. 12

    在新服务器上创建用户的脚本

  13. 13

    在Linux服务器上的文件名中带有换行符的文件传输

  14. 14

    JavaScript代码可在旧服务器上运行,但不能在新服务器上运行

  15. 15

    将旧服务器上的“错误” MySQL编码转换为新服务器上的正确UTF-8

  16. 16

    在远程服务器上运行bash脚本

  17. 17

    期望脚本找到远程服务器上的文件

  18. 18

    期望脚本找到远程服务器上的文件

  19. 19

    在 FTP 服务器上编写文件移动脚本

  20. 20

    在服务器上运行R脚本?

  21. 21

    在服务器上设置cronjob脚本

  22. 22

    Paramiko,在SSH服务器上附加文件

  23. 23

    linux上的ssh强化服务器

  24. 24

    服务器上的全局ssh密钥

  25. 25

    SSH 服务器上的连接超时

  26. 26

    新服务器上的php错误

  27. 27

    将旧服务器的“错误” MySQL编码转换为新服务器上的正确UTF-8

  28. 28

    使用bash脚本从ftp服务器下载多个文件

  29. 29

    通过Apache服务器上的PHP执行bash文件

热门标签

归档