我有一个小的 sh 脚本,用于备份到远程服务器。它在 Ubuntu 16.04 上运行多年,但现在在 18.04 上失败了。一开始以为是anacron的问题,现在想是脚本本身的问题,还是dash的问题。这是正在发生的事情:
stefan@stefan-Aspire-F5-573T:/etc/cron.daily$ sudo chmod +x rsync-doc-script
[sudo] Mot de passe de stefan :
stefan@stefan-Aspire-F5-573T:/etc/cron.daily$ ./rsync-doc-script
/bin/sh: 0: Can't open *
stefan@stefan-Aspire-F5-573T:/etc/cron.daily$ sh rsync-doc-script
opening connection using: ssh -i /home/stefan/.ssh/id_rsa -l totem MouseHouse rsync --server -vvlogDtprze.iLsfxC . /totembackup/totemdoc (11 args)
ssh: connect to host mousehouse port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2]
stefan@stefan-Aspire-F5-573T:/etc/cron.daily$
Run Code Online (Sandbox Code Playgroud)
该错误can't open *阻止脚本在运行时正确运行 …
这个问题大约在三周前开始,显然是在更新之后。
当我连接到新的 wifi 网络时,我只能连接到本地;我的笔记本电脑成功连接并接收 IP 地址(通过系统日志验证),但ping 8.8.8.8返回connect: Network is unreachable.
路由表总是看起来像这样:
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp2s0
192.168.2.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0
Run Code Online (Sandbox Code Playgroud)
特别是,没有指定默认路由。我认为这就是问题所在。如果我运行命令
sudo route add default gw 192.168.2.1 wlp2s0
Run Code Online (Sandbox Code Playgroud)
然后一切正常;我可以 ping google.com,但网络管理器仍然认为我只有本地连接。
如果我改用静态 IP 并将 8.8.8.8 指定为名称服务器,则一切正常。如果我使用静态 IP 并且不指定 8.8.8.8 作为名称服务器,我可以 ping 8.8.8.8 但不能 google.com。
如何让网络管理器正确自动分配默认路由?