iftop是查看几乎实时带宽使用情况的好工具,可以通过 source-ip source-port destination-ip 目标端口区分。
我正在使用它来查看哪个客户端的 ip 使用了最多的带宽。现在我想将输出存储在某处。
iftop 使用 ncurses 所以
iftop > log.txt
Run Code Online (Sandbox Code Playgroud)
没有按预期工作,结果文件不可读。
有没有这样的工具可用于将输出通过管道传输到文本文件?
在安装 RVM手册中,我看到很多以“\”开头的行:
使用 ruby 安装 RVM:
$ \curl -L https://get.rvm.io | bash -s stable --ruby
我认为这只是错误输入,但他们重复了很多次。
那是什么原因呢?
我有两个 Linux 服务器,它们应该配置相同,但是对于需要在 ~/.bashrc 中指定的路径的命令,其中一个的 ssh 命令失败。例如,我可以以pwd交互方式和通过 ssh使用类似命令,但是如果我尝试运行位于应用程序 bin 文件夹中的程序,它只能在其中一台服务器的交互式 shell 中工作。
两台服务器上的 /etc/profile 和 /etc/environment 文件是相同的,但是 $BASH_ENV 在正常工作的服务器上设置为 ~/.bashrc 。我想在不工作的服务器上设置 $BASH_ENV,但我更愿意将它设置在与在工作服务器中设置的位置相同的位置。Linux 在非交互式登录时会运行哪些地方,例如来自另一台计算机的 ssh 命令?
编辑:用户在 /etc/passwd 中的行在两台服务器上指定 /bin/bash 。两个服务器的 ~/.bash_profile 文件是相同的,并且包含if [ -f ~/.bashrc ]; then . ~/.bashrc; fi. 系统之间的唯一区别是 $BASH_ENV 是不工作的服务器上的空字符串,我无法在工作的服务器中找到它的设置位置。
编辑 2:两台服务器上的 ~/.ssh/environment 文件都有 BASH_ENV=~/.bashrc
在最后.bashrc我补充道:
touch /tmp/bash_noninteractive_test
Run Code Online (Sandbox Code Playgroud)
跑步:
/usr/bin/ssh -v -C root@example.com 'ls'
Run Code Online (Sandbox Code Playgroud)
在主机上(之前交互式登录):
% ls -l /tmp/bash_noninteractive_test
ls: cannot access /tmp/bash_noninteractive_test: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我认为~./bashrc总是来自非交互式 shell,比如通过 SSH?我该如何解决这个问题?
受影响的系统:
% lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Run Code Online (Sandbox Code Playgroud)
% lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.11 (jessie)
Release: 8.11
Codename: jessie
Run Code Online (Sandbox Code Playgroud) ls 根据输出是到终端还是到其他地方,打印方式不同。
例如:
$ ls .
file1 file2
$ ls . | head
file1
file2
Run Code Online (Sandbox Code Playgroud)
有没有办法ls在一行上打印出来,就像它不是终端一样。有一种-C说法认为 sorta 会这样做,但它会将其分成几行。
$ ls
file1 file10 file11 file12 file13 file14 file15 file16 file17 file18 file19 file2 file3 file4 file5 file6 file7 file8 file9
$ ls -C . | head
file1 file11 file13 file15 file17 file19 file3 file5 file7 file9
file10 file12 file14 file16 file18 file2 file4 file6 file8
Run Code Online (Sandbox Code Playgroud)
我想这样做的原因是我想监视目录中快速变化的文件。我构建了这个简单的命令行:
while [[ true ]] ; do ls ; done | uniq …Run Code Online (Sandbox Code Playgroud) 如何在 bash 脚本中实现试运行选项?
我可以考虑将每个命令都包含在 if 中并回显该命令,而不是在脚本以试运行方式运行时运行它。
另一种方法是定义一个函数,然后通过该函数传递每个命令调用。
就像是:
function _run () {
if [[ "$DRY_RUN" ]]; then
echo $@
else
$@
fi
}
`_run mv /tmp/file /tmp/file2`
`DRY_RUN=true _run mv /tmp/file /tmp/file2`
Run Code Online (Sandbox Code Playgroud)
这是错误的,有更好的方法吗?
我需要该命令来终止自给定进程至少运行 5 分钟以来一直在运行的进程。
我将不得不每五分钟左右运行一次该命令。
太感谢了 !
(系统是Centos5)
我运行了这个命令:
python ./manage.py dumpdata partyapp.InvitationTemplate > partyapp_dump.json
Run Code Online (Sandbox Code Playgroud)
将数据转储到partyapp_dump.json文件中。但所有数据都只是打印在屏幕上,并partyapp_dump.json创建了一个空文件。
为什么会发生这种情况?我测试过ls > partyapp_dump.json,效果很好。
我是一名孤独的 Web 开发人员,拥有自己的 Centos VPS,为我的客户托管了一些小型网站。今天我发现我的 httpd 服务已经停止(没有明显的原因 - 但这是另一个线程)。我重新启动了它,但现在我需要找到一种方法,如果它再次发生,我可以通过电子邮件和/或短信通知我 - 当我的客户打电话给我告诉我他们的网站不起作用时,我不喜欢它!
我知道可能有很多不同的可能性,包括服务器监控软件。我认为我真正需要的是一个脚本,我可以从我的开发主机(它永久在我的办公室中运行)作为 cron 作业运行该脚本,该脚本尝试从我的生产服务器加载一个页面,如果它没有在 30 内加载秒然后它给我发送电子邮件或短信。我在shell脚本方面很垃圾,因此这个问题。
任何建议将不胜感激。
ls -l /etc/passwd
Run Code Online (Sandbox Code Playgroud)
给
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Run Code Online (Sandbox Code Playgroud)
所以普通用户可以读取文件。这是安全漏洞吗?