0
A
回答
1
解析/ proc(請參閱proc(5) ...)可能是最有效的方法,並且是lsof
會執行的操作。
您可以先掃描所有(數字)目錄以查找您的用戶正在運行的進程,而不是所有此類目錄中使用/proc/
pid /fd
目錄。
順便說一句,你可能不在乎,只是刪除這些日誌文件。如果內核打開,內核的行爲將會適當。
但也許你應該問你的系統管理員設置disk quotas。見quota(1) & quotaon(8)。
也許使用&配置logrotate應該就夠了。
0
如果你是bash腳本,lsof
可能適合你的需要。如果您對使用用戶名X的用戶感興趣,則lsof -uX
應該執行此操作。
0
通過解析 「的/ proc」 讓所有打開的文件:
func getOpenfiles() (openfiles map[string]bool) {
files, _ := ioutil.ReadDir("/proc")
openfiles = make(map[string]bool)
for _, f := range files {
m, _ := filepath.Match("[0-9]*", f.Name())
if f.IsDir() && m {
fdpath := filepath.Join("/proc", f.Name(), "fd")
ffiles, _ := ioutil.ReadDir(fdpath)
for _, f := range ffiles {
fpath, err := os.Readlink(filepath.Join(fdpath, f.Name()))
if err != nil {
continue
}
openfiles[fpath] = true
}
}
}
return openfiles
}
相關問題
- 1. Linux:獲取程序當前打開的文件列表
- 2. 獲取當前查看文件的所有用戶
- 3. 如何在python中獲取當前打開的文件行?
- 4. 獲取當前打開的文檔
- 5. 如何判斷當前用戶打開哪些文件?
- 6. 如何讀取當前使用Eclipse插件打開的文件?
- 7. 如何獲取woocommerce中當前用戶的所有訂單
- 8. 如何獲取當前目錄中的所有文件名?
- 9. 如何獲取當前打開的文件的文件夾在c#
- 10. 如何獲取使用Perl打開的文件的當前行號?
- 11. 獲取所有打開的Excel文檔
- 12. 獲取當前用戶所發佈的所有微博客
- 13. 列出當前打開的所有文件句柄?
- 14. 如何在Eclipse插件開發中獲取當前所選文件的路徑
- 15. 使用文件名獲取當前pid打開的文件的fileno()?
- 16. 如何爲非當前用戶獲取匿名配置文件?
- 17. 獲取當前正在運行linux的所有cronjobs
- 18. 如何獲取當前用戶目錄?
- 19. 如何獲取當前用戶名?
- 20. 如何獲取用戶當前位置
- 21. 如何打開當前目錄中的所有.txt和.log文件,搜索並打印搜索到的文件
- 22. 如何獲取當前用戶的當前日期?
- 23. 用Vim命令打開當前文件
- 24. C++:獲取的所有文件的大小當前目錄
- 25. Microsoft Graph:獲取打開擴展的所有用戶
- 26. 如何使用C#在Excel中獲取當前打開的文檔?
- 27. 如何獲取所有已打開的子窗口的引用
- 28. 如何獲取Dashcode打開JSP文件?
- 29. 獲取當前目錄中的所有文件和目錄python
- 30. 如何使用fopen打開文件中的當前行?
[lsof的(https://www.freebsd.org/cgi/man.cgi?query=lsof&sektion=8&manpath=freebsd-release -ports) – bansi
通過解析「/ proc」,我可以得到所有打開的文件。我想知道是否有更好的方法 –
只是檢查我的第一個評論,這裏是[一些例子](http://www.thegeekstuff.com/2012/08/lsof-command-examples)和順便說一句,你可以使用[logrotate](https://www.freebsd.org/cgi/man.cgi?query=logrotate&apropos=0&sektion=8&manpath=FreeBSD+11.0-RELEASE+and+Ports&arch=default&format=html)自動壓縮和存檔日誌,然後刪除它(可能與一個腳本) – bansi