微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在24小时内logging文件访问?

我经常无法在我的服务器上运行apt-get安装。 像那样:

$ sudo apt-⁠get install tmux E: Could not get lock /⁠var/⁠lib/⁠dpkg/⁠lock -⁠ open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/⁠var/⁠lib/⁠dpkg/⁠),is another process using it?

几乎每天都会发生很多事情。 每当我试图找出谁是用lsof命令locking它的时候,我已经太迟了,锁已经消失了。 真的很奇怪。

是否有一个技巧,我怎么可以logging超过24小时谁还在locking/⁠var/⁠lib/⁠dpkg/⁠lock ? /⁠var/⁠lib/⁠dpkg/⁠lock ?

Debian:列出所有用户安装的软件包?

克隆Debian / Ubuntu安装

如何在Ubuntu中安装“make”?

在Linux shell脚本中处理input确认

如何在Ubuntu 16.10上安装Python 3.6的pip?

Docker错误:无法find包git

Docker Machine认虚拟机上的软件包pipe理器?

为什么Ubuntu或APT不使用rsync进行更新?

不能删除,清除,从debian unistall mongodb

Python显示所有安装的软件包

我认为有多种解决方案。

1:写一个简单的脚本,例如while sleep 1; do lsof -n|grep /var/lib/dpkg/lock >>/var/log/dpkglocktmp.log; done while sleep 1; do lsof -n|grep /var/lib/dpkg/lock >>/var/log/dpkglocktmp.log; done while sleep 1; do lsof -n|grep /var/lib/dpkg/lock >>/var/log/dpkglocktmp.log; done 。 这很简单,但不是很漂亮,但作为一个短时间的错误跟踪,这对我来说没关系。 您将获得日志文件中的进程列表。

延伸: while sleep 1; do lsof -n|grep /var/lib/dpkg/lock; done|tee --append /var/log/dpkglocktmp.log while sleep 1; do lsof -n|grep /var/lib/dpkg/lock; done|tee --append /var/log/dpkglocktmp.log while sleep 1; do lsof -n|grep /var/lib/dpkg/lock; done|tee --append /var/log/dpkglocktmp.log将同时写入控制台并进入日志文件。 如果你不能保持你的SSH连接活着,你可以在屏幕上运行。

2:Linux内核具有inotify功能,使得进程可以在正在监视的文件上发生事件。 它周围有很多工具,最着名的是incron 。 它使您能够在文件事件的情况下调用脚本。 可能还有更复杂的工具,针对与您类似的问题。

我遇到了最相似的问题,因为apt update / install问我一些东西,我忘记了,后来试着在另一个ssh会话中运行另一个apt。

你可以做一个运行的cron作业:

lsof | grep /var/lib/dpkg/lock >> whodunit.txt

并试图赶上他们的行为。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐