【发布时间】:2014-10-01 20:33:53
【问题描述】:
- 我有一台机器人(通过移动设备控制),它 通过方法 os 连接到服务器并从中获取信息 “ssh、shell 脚本、操作系统命令、sql 查询等”比它提供的 互联网上的信息(私人)
- 我想禁止通过 仅限bot机器..还有其他机器连接到服务器,不能受到影响
假设
客户端 A 从他的移动访问机器人机器(通过网页)而不是机器人 机器现在连接到服务器(第一个会话),如果这个过程 在此期间连接时间为 5 分钟,机器人机器将 创建、查询、删除、追加、更新等
在那 5 分钟的持续时间内(假设 2 分钟后 第一个会话开始)客户端 B 从他的移动访问机器人机器 (通过网页)比机器人机器现在连接到服务器(第二次会话) 它将与第 1 次会话冲突并造成 Havoc...
限制
- 现在首先我不想编辑服务器上的任何设置 任何事情
- 我不想编辑网页/手机等
- 我已经知道并行shell脚本的锁定文件方法和 它是在脚本级别实现的,但是操作系统命令和 类似 bash 脚本中没有的东西
我的想法
每当我们与服务器建立连接时,我的想法是什么 创建一个名为 what ever (SSH) 的进程,可在 ps -fu 中查看 OSUSER 因此,通过将唯一的 id/tag/name 应用于我们的连接,我们可以 确定一个会话是否处于活动状态。这将尽快检查 当机器人连接到服务器时。但我不知道该怎么做 那....还请就它提出更多信息。 还有办法确定现有进程是否被挂起或 进程开始或过去的时间?
【问题讨论】:
-
没有神奇的“操作系统命令和类似的东西”可以实现您似乎想要做的事情。锁文件似乎是最明显和最简单的事情
-
那么简而言之,您的意思是说在建立 SSH 会话连接后检查锁定文件吗?因为它旨在避免并行运行相同的 shell Shell 脚本?即使是这样,我的下一个问题将是如何识别上一个会话是否被挂起或花费很长时间等。在不知道下一个连接(在挂起的会话之后)将看到锁定文件并且根本无法连接的情况下。 ..如何处理这个问题?
-
另外你在限制点三上弄错了,我提到我知道 abt lock 方法并解释了它。但我不想在这里使用 lock 方法,就像他们在 shell 脚本中所做的那样。所以我想知道替代方法..当它是一个真正的问题时为什么-1分?也请检查我之前的评论以了解下一个问题。
-
-1 因为这个问题很难阅读,并且可以说是关于服务器配置而不是编程
-
至少回答我关于这个主题的其他问题..另外请建议哪种锁定方法会好
标签: bash session unix ssh parallel-processing