rsync 和 VPN 隧道 crone 执行

rsync 和 VPN 隧道 crone 执行

我有网络服务器,它提供我的 nextcloud 和其他一些服务。对于性能问题,我决定使用带有多个磁盘的 raid 0。这就是为什么我迫切需要备份。所以我安装了第二台机器,其raidlevel更安全但功能更弱。

两台机器都是基于 Debian 的。出于安全原因,只能通过 openvpn 隧道访问备份计算机。现在,我通过 ssh 登录到 bash shell,从生产服务器进行了第一次备份。在那里,我使用 openvpn --> configfile 命令建立了与另一台计算机的连接。

这给了我一些发往该 shell 的 VPN 消息。所以我在第二个 ssh 连接中打开了一个新的 shell。在那里,我为要备份的文件夹启动了 rsync 命令。一切都按预期进行。完成备份后,我断开了第二个 shell,断开了第一个 shell 中的 VPN 隧道,一切正常。

现在我想每天都以老太婆的方式这样做。我的 backup.sh 看起来像这样

#!/bin/bash
openvpn /home/cloud/vpn/tunnel.ovpn
rsync --numeric-ids -avze 'ssh -i /xy' /source/ [email protected]:/destination 

不幸的是这不起作用。我猜原因是 openvpn 阻塞了 shell,而隧道却打开了。所以我的问题是:

  1. 如何在隧道启动时使 rsync 工作?
  2. rsync进度完成后如何断开连接?在手动方式中,我通过按“ESC”来完成此操作。

答案1

据我所知,每次连接时,OpenVPN 都要求您输入用户名:vpnbook 和密码:CURENT_PASSWORD。要自动化连接过程,您必须创建一个文件并将其命名为“auth.txt”,并且该文件应仅包含两行:用户名和密码。您创建了您的授权文件还没有?

当 OpenVPN 获取其 auth.txt(auth.txt 是该文件在 Windows 中的名称,查找 OpenVPN 手册和 Google 来获取如何为 Linux 创建一个文件的说明)时,它应该能够通过提及来自行连接所有内容,例如openvpn --config vpnbook-ca1-tcp443.ovpn在任何终端(包括脚本)中。

相关内容