ntpdate 110.75.186.247 >> /var/log/ntpdate.log || ntpdate 110.75.186.247 >> /var/log/ntpdate.log || ntpdate 203.123.48.218 >> /var/log/ntpdate.log|| ntpdate 103.16.199.21 >> /var/log/ntpdate.log
我试过两种方法,都没有成功。
ntpdate 110.75.186.247 || ntpdate 110.75.186.247 || ntpdate 203.123.48.218 || ntpdate 103.16.199.21 >> /var/log/ntpdate.log
ntpdate 110.75.186.247 || ntpdate 110.75.186.247 || ntpdate 203.123.48.218 || ntpdate 103.16.199.21 &&>> /var/log/ntpdate.log
如何简化命令?
使用一个简单的
for
构造:或将 IP 地址保存在数组中:
更简单的是,去掉中间变量(感谢@kos):
检查文件是否
.bash_aliases
存在于您的主目录中ls -a ~/.bash_aliases
(如果不运行您选择的文本编辑器,在我的情况下nano ~/.bash_aliases
)将以下行添加到该文件中:
alias update-time='ntpdate 110.75.186.247 >> /var/log/ntpdate.log || ntpdate 110.75.186.247 >> /var/log/ntpdate.log || ntpdate 203.123.48.218 >> /var/log/ntpdate.log || ntpdate 103.16.199.21 >> /var/log/ntpdate.log'
保存并退出编辑器
现在你可以简单地运行命令
update-time
,剩下的就是魔法:)施工问题
是
>>
只适用于最后一个命令。您可以通过在命令周围使用括号来解决这个问题,如下所示:您可能认为
ntpdate
多次输入是多余的,应该可以消除这种情况。ntpdate
您可以通过使用循环来消除重复。尽管在您的特定情况下,该命令非常简单,但使用循环引入的复杂性比消除的复杂性要高:或者,您的原始问题可能通过
ntpdate
仅使用多个服务器地址调用一次来更好地解决: