如何找到已被删除但仍在应用程序中打开的大文件?即使进程打开了这样的文件,如何删除它?
情况是我们正在运行一个正在以极快的速度填充日志文件的进程。我知道原因,我可以解决它。在那之前,我想在不关闭进程的情况下 rm 或清空日志文件。
简单地执行rm output.log仅删除对文件的引用,但它会继续占用磁盘空间,直到进程终止。更糟糕的是:在rming之后我现在无法找到文件在哪里或有多大!有没有办法找到该文件,并可能清空它,即使它仍然在另一个进程中打开?
我特指基于 Linux 的操作系统,例如 Debian 或 RHEL。
我需要检索 SSL 证书的到期日期。该curl应用程序确实提供了以下信息:
$ curl -v https://google.com/
* Hostname was NOT found in DNS cache
* Trying 212.179.180.121...
* Connected to google.com (212.179.180.121) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key …Run Code Online (Sandbox Code Playgroud) 假设一个简单的grep,例如:
$ psa aux | grep someApp
1000 11634 51.2 0.1 32824 9112 pts/1 SN+ 13:24 7:49 someApp
Run Code Online (Sandbox Code Playgroud)
这提供了很多信息,但由于缺少 ps 命令的第一行,因此没有信息的上下文。我更希望显示 ps 的第一行:
$ psa aux | someMagic someApp
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
1000 11634 51.2 0.1 32824 9112 pts/1 SN+ 13:24 7:49 someApp
Run Code Online (Sandbox Code Playgroud)
当然,我可以为 ps 专门为 grep 添加一个正则表达式:
$ ps aux | grep -E "COMMAND|someApp"
Run Code Online (Sandbox Code Playgroud)
但是,我更喜欢更通用的解决方案,因为在其他情况下我也希望拥有第一行。
似乎这将是“stdmeta”文件描述符的一个很好的用例。
我配置了一些服务器~/.ssh/config,例如alpha和beta。我如何配置 Bash 以便命令和自动完成已配置服务器的名称?$ ssh alTab$ scp file.tgz alTab
我不想每次添加服务器时都将服务器添加到另一个文件(即 Bash 数组),因为我们定期添加和删除服务器并且列表非常大。
这是在 Kubuntu 12.10 上,我确实安装了bash-completion。
我必须对一些行长度超过几千个字符的 JSON 文件进行 grep。如何限制 grep 在匹配的左侧和右侧显示最多 N 个字符的上下文?除了 grep 之外的任何工具都可以,只要它在常见的 Linux 包中可用。
这将是示例输出,对于虚构的 grep 开关?:
$ grep -r foo *
hello.txt: Once upon a time a big foo came out of the woods.
$ grep -? 10 -r foo *
hello.txt: ime a big foo came of t
Run Code Online (Sandbox Code Playgroud) 如何检查哪些 .rsa、.pem 和其他文件被“加载”或“活动” ssh-add?我只是有这样的恐惧:
$ scp -i /home/dotancohen/.ssh/dotancohen.pem someUser@1.2.3.4:~/files.tgz .
Warning: Identity file /home/dotancohen/.ssh/dotancohen.pem not accessible: No such file or directory.
files.tgz 100% 89MB 1.5MB/s 00:59
$ scp someUser@1.2.3.4:~/all_git.tgz .
files.tgz 100% 89MB 1.7MB/s 00:54
Run Code Online (Sandbox Code Playgroud)
在验证服务器确实需要.pem密钥后,我现在想知道在我不知道的情况下加载了哪些其他密钥!
我正在尝试通过 SSH 复制文件,但scp由于不知道我需要的确切文件名而无法使用。尽管小二进制文件和文本文件传输良好,但大二进制文件会被更改。这是服务器上的文件:
remote$ ls -la
-rw-rw-r-- 1 user user 244970907 Aug 24 11:11 foo.gz
remote$ md5sum foo.gz
9b5a44dad9d129bab52cbc6d806e7fda foo.gz
Run Code Online (Sandbox Code Playgroud)
这是我移动后的文件:
local$ time ssh me@server.com -t 'cat /path/to/foo.gz' > latest.gz
real 1m52.098s
user 0m2.608s
sys 0m4.370s
local$ md5sum latest.gz
76fae9d6a4711bad1560092b539d034b latest.gz
local$ ls -la
-rw-rw-r-- 1 dotancohen dotancohen 245849912 Aug 24 18:26 latest.gz
Run Code Online (Sandbox Code Playgroud)
请注意,下载的文件比服务器上的文件大!但是,如果我对一个非常小的文件做同样的事情,那么一切都会按预期进行:
remote$ echo "Hello" | gzip -c > hello.txt.gz
remote$ md5sum hello.txt.gz
08bf5080733d46a47d339520176b9211 hello.txt.gz
local$ time ssh me@server.com -t 'cat /path/to/hello.txt.gz' …Run Code Online (Sandbox Code Playgroud) 我正在将网站从一台服务器移动到另一台服务器,Git 不存储元数据,例如文件权限。我需要分别找到不是 775 / 664 的目录和文件。
现在,我正在使用这个拼凑在一起的装置:
$ find . -type d -exec ls -la {} \; | grep ^d | grep -v ^drwxrwxr-x
$ find . -type f -exec ls -la {} \; | grep -v ^d | grep -v ^-rw-rw-r-- | grep -v '.git'
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但我觉得它相当hacky。有没有更好的方法来做到这一点,也许是一种规范的方式,或者我应该只是hacky?
这是在 Bash 下带有 GNU 工具的最新 Ubuntu 版本上运行的。
我正在学习 Linux 基金会的Linux 入门课程。某些术语似乎重叠或矛盾,尤其是当我尝试用其他来源(例如TLDP和Wikipedia )补充课程材料时。
“显示管理器”与“会话管理器”是否相同?
显示管理器:通过启动窗口系统并通常要求输入用户名和密码来启动窗口系统会话的程序。
?
会话管理器:启动和维护图形会话的组件。
同样,“窗口系统”与“窗口管理器”是否相同?
窗口系统:为高级软件提供 GUI 关键元素的软件。为应用程序提供(通常)矩形、可调整大小的表面,以向用户展示其 GUI。
?
窗口管理器:控制窗口、窗口镶边和控件的放置和移动。
只是为了确定 X:从我收集的信息来看,“X Window System”似乎是位图显示的窗口系统,“X11”是 X Window System 的当前协议版本,“X.Org Server”是X11协议的参考实现。那是对的吗?
证人:
$ ps f
PID TTY STAT TIME COMMAND
31509 pts/3 Ss 0:01 -bash
27266 pts/3 S+ 0:00 \_ mysql -uroot -p
25210 pts/10 Ss+ 0:00 /bin/bash
24444 pts/4 Ss 0:00 -bash
29111 pts/4 S+ 0:00 \_ tmux attach
4833 pts/5 Ss+ 0:00 -bash
9046 pts/6 Ss 0:00 -bash
17749 pts/6 R+ 0:00 \_ ps f
4748 pts/0 Ss 0:00 -bash
14635 pts/0 T 0:02 \_ mysql -uroot -px xxxxxxxxxxxxxxxx
16210 pts/0 S+ 0:01 \_ mysql -uroot -px xxxxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
ps …
bash ×3
ssh ×3
command-line ×2
security ×2
arguments ×1
autocomplete ×1
curl ×1
disk-usage ×1
file-copy ×1
files ×1
find ×1
grep ×1
json ×1
logs ×1
open-files ×1
permissions ×1
process ×1
ps ×1
scp ×1
search ×1
terminology ×1
x11 ×1