如何使用ssh记录完成的活动

时间:2013-01-19 16:44:04

标签: php linux bash shell

  

可能重复:
  Best way to monitor file system changes in linux

我需要你的帮助。如何在Linux服务器上记录使用SSH完成的活动 - 创建文件或目录,删除文件或目录,重命名特定路径的文件或目录等活动。我需要一些解决方案任何bash,python或php脚本,或者如果linux中有任何选项,我可以使用它来查看在特定路径或文件夹上完成的所有活动。我需要使用这些日志进行同步。

好的,让我解释一下整个场景。我正在使用同步工具,我们使用Samba共享所有文件和文件夹,我需要通过网络同步这些文件。我grep samba日志来观看客户完成的活动,比如创建文件或文件夹,删除文件和文件夹,重命名文件或文件夹,我正在使用这些日志作为我的同步工具,并且工作正常。但是我只使用samba完成更改时获取日志 - 如果使用SSH完成更改,则不会记录这些活动,也不会同步。所以我需要grep log来查看使用SSH为特定路径所做的更改(例如:/ mnt / test) - 在测试文件夹中进行的更改,如create delete和rename。

1 个答案:

答案 0 :(得分:0)

据我所知,这里发生了什么。

有一个Samba服务器可以导出具有多个用户的文件系统和一组可以直接访问文件系统的用户(他们通过SSH登录)。此文件系统需要复制到另一个位置。

TS正在开发一种执行复制的工具。

这里至少有两个选择。

  1. 更常规的方法是定期在两个位置之间运行rsync。因此,副本将不会始终保持一致,但它很容易,并且系统具有分区容错性和可用性。就是这个方法从“CAP”定理中选择“A”和P“。

  2. 另一种受Dropbox式云存储和即时复制普及影响的方法是观看文件系统。这可以通过inotifyfam完成。

    inotify的接口在大多数脚本语言中都可用,包括Perl,Python和PHP。这会交换可用性的一致性。也就是说,直到复制了一个大文件,才能在另一侧访问它。

    FAM的接口以PHP和其他语言提供。有关不同文件系统监视API的讨论,请参阅linked question

  3. 第一种选择本质上是单线。第二个选项也不应该太难(请参阅Dropbox守护程序源代码示例)。

    注意:复制是Serverfault.com上的一个重复主题。