标签: bash

iftop - 如何生成带有输出的文本文件?

iftop是查看几乎实时带宽使用情况的好工具,可以通过 source-ip source-port destination-ip 目标端口区分。

我正在使用它来查看哪个客户端的 ip 使用了最多的带宽。现在我想将输出存储在某处。

iftop 使用 ncurses 所以

iftop > log.txt
Run Code Online (Sandbox Code Playgroud)

没有按预期工作,结果文件不可读。

有没有这样的工具可用于将输出通过管道传输到文本文件?

networking linux debian bash iptables

21
推荐指数
2
解决办法
3万
查看次数

命令开头的反斜杠

安装 RVM手册中,我看到很多以“\”开头的行:

使用 ruby​​ 安装 RVM:

$ \curl -L https://get.rvm.io | bash -s stable --ruby

我认为这只是错误输入,但他们重复了很多次。

那是什么原因呢?

shell bash command-line-interface alias

21
推荐指数
2
解决办法
2898
查看次数

$BASH_ENV 通常在哪里设置?

我有两个 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

linux bash

21
推荐指数
1
解决办法
2万
查看次数

~/.bashrc 不是源自 ssh“命令”

在最后.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)

linux ubuntu debian bash bashrc

21
推荐指数
2
解决办法
2万
查看次数

使 ls 全部打印在一行上(就像在终端中一样)

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)

linux unix shell bash command-line-interface

20
推荐指数
4
解决办法
5万
查看次数

在 bash 脚本中实现试运行

如何在 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)

这是错误的,有更好的方法吗?

bash

20
推荐指数
2
解决办法
2万
查看次数

在linux bash脚本中杀死给定用户运行超过5分钟的所有进程

我需要该命令来终止自给定进程至少运行 5 分钟以来一直在运行的进程。

我将不得不每五分钟左右运行一次该命令。

太感谢了 !

(系统是Centos5)

linux bash

20
推荐指数
4
解决办法
5万
查看次数

是什么让 `>` 在 Linux 中悄然失败?

我运行了这个命令:

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,效果很好。

linux bash

20
推荐指数
3
解决办法
1104
查看次数

自动测试网站是否可用的脚本

我是一名孤独的 Web 开发人员,拥有自己的 Centos VPS,为我的客户托管了一些小型网站。今天我发现我的 httpd 服务已经停止(没有明显的原因 - 但这是另一个线程)。我重新启动了它,但现在我需要找到一种方法,如果它再次发生,我可以通过电子邮件和/或短信通知我 - 当我的客户打电话给我告诉我他们的网站不起作用时,我不喜欢它!

我知道可能有很多不同的可能性,包括服务器监控软件。我认为我真正需要的是一个脚本,我可以从我的开发主机(它永久在我的办公室中运行)作为 cron 作业运行该脚本,该脚本尝试从我的生产服务器加载一个页面,如果它没有在 30 内加载秒然后它给我发送电子邮件或短信。我在shell脚本方面很垃圾,因此这个问题。

任何建议将不胜感激。

scripting bash httpd cron system-monitoring

20
推荐指数
4
解决办法
11万
查看次数

普通用户都能读/etc/passwd,这是安全漏洞吗?

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)

所以普通用户可以读取文件。这是安全漏洞吗?

security linux bash root

20
推荐指数
4
解决办法
7558
查看次数