TCZ*_*CZ8 12 boot networkmanager network-interface
以下是内容/etc/network/interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up /etc/network/if-up.d/sshstart
Run Code Online (Sandbox Code Playgroud)
而且sshstart是在它下面的脚本:
curl something something darkside send a file over ftps in the background &
/usr/bin/autossh -M 0 -f -N -o ServerAliveInterval=15 -o ServerAliveCountMax=3 -R 127.0.0.1:2005:127.0.0.1:22 -R 192.168.1.10:2006:192.168.2.110:1912 -L 127.0.0.1:5249:192.168.1.212:5249 username@17.16.15.2 -p 8080
Run Code Online (Sandbox Code Playgroud)
当机器重新启动时,该curl命令被执行多次,该文件在 ftp 服务器上结束了 2 或 3 次,当我查看进程时,似乎有多个 autossh 实例正在运行......不知道是不是这样autossh 会做或不做,但肯定 curl 不应该多次上传文件。
我的预感是整个sshstart脚本运行了多次,但我不明白为什么。
我尝试在启动时搜索有关网络设置过程的详细信息,但我能找到的只是接口文件的语法信息。
有人可以帮忙吗?
谢谢你。
---编辑---
按照下面的建议,我修改了我的接口文件如下(删除了上面的空行):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up /etc/network/if-up.d/sshstart
Run Code Online (Sandbox Code Playgroud)
并将以下行添加到 sshstart:
echo $(date)>>/run/shm/sshstart.log
Run Code Online (Sandbox Code Playgroud)
下面是/run/shm/sshstart.log重启后的内容:
Wed Oct 29 08:07:00 EDT 2014
Wed Oct 29 08:07:07 EDT 2014
Wed Oct 29 08:07:07 EDT 2014
Wed Oct 29 08:07:07 EDT 2014
Run Code Online (Sandbox Code Playgroud)
所以它已经运行了 4 次 :( 这是怎么回事?
Cel*_*ada 14
每当接口(任何接口)出现时,文件中的文件/etc/network/if-up.d 已经自动运行。当您在显式post-up命令中指定相同的脚本再次运行时,您只会导致脚本再次运行。所以我的猜测是应该发生的事情:
lo出现(与环境变量IFACE=lo)由于被位于/etc/network/if-up.d。eth0出现时(带有环境变量IFACE=eth0)运行一次。eth0(未IFACE设置环境变量),因为您在post-up指令中要求这样做。我不确定第四次来自哪里,但无论如何那已经是三个了。
您需要将脚本定位在其他地方并使用post-up指令运行一次,或者将其留在原处但不要在post-up指令中提及它并检查的值,$IFACE以便它不执行任何操作,除非所需的接口 ( eth0) 出现向上。
| 归档时间: |
|
| 查看次数: |
46679 次 |
| 最近记录: |