在开发应该在各种 unix/linux 派生版本上运行的 shell 脚本时,我有时会遇到这样的问题,即与其他系统相比,某些工具必须以不同的方式调用。例如,如果参数不同。我想知道解决这个问题的最佳方法是什么。
我应该使用uname
检查操作系统名称并依靠它以不同的方式执行该工具,还是有任何“更好”的方式,某种“能力”检查 shell 命令和工具?
所讨论的系统包括 Linux、Mac OS X、Solaris 和 Irix——在工具和 shell 命令的能力方面都大不相同。
在开发应该在各种 unix/linux 派生版本上运行的 shell 脚本时,我有时会遇到这样的问题,即与其他系统相比,某些工具必须以不同的方式调用。例如,如果参数不同。我想知道解决这个问题的最佳方法是什么。
我应该使用uname
检查操作系统名称并依靠它以不同的方式执行该工具,还是有任何“更好”的方式,某种“能力”检查 shell 命令和工具?
所讨论的系统包括 Linux、Mac OS X、Solaris 和 Irix——在工具和 shell 命令的能力方面都大不相同。
我目前正在考虑一种干净的方法来关闭 ftp 服务器进行维护。我想知道,是否有人可以给我一些关于如何解决这个问题的提示:
我对这个非常罕见的想法或其他人如何处理这个问题的想法 - 我觉得,只是停止 ftp 服务器并终止任何当前的上传不是解决这个问题的正确方法......
我使用proftpd(带有SQL后端)顺便说一句,也许有一些具体的解决方案——或者是否有任何通用工具来实现这一点?
非常感谢!
我在使用被动模式连接到 cisco asa 防火墙后面的 ftp 服务器时遇到问题。ftp 使用主动和“扩展被动”模式工作,但是:当我关闭“扩展被动”(ftp 控制台客户端应用程序中的 epsv)时,它不再工作 - 所有命令都会导致超时。但是,对于我们使用的某些应用程序,我们需要非“扩展被动”模式。
有任何想法吗?
谢谢,哈罗德
更新/解决方案
事实证明,这不完全是 ASA 的错,或者是吗?我不得不在 proftpd 配置中转换伪装。我将 proftpd-config 中的伪装地址设置为 ftp-server 域的 IP 地址,这在通过 asa 传递流量时导致了意外的事情。现在 - 没有地址伪装 - 一切都很好。