小编cwd*_*cwd的帖子

如何根据“locate”命令的结果采取行动?

我试图找到check_dnsnagios'commands.cfg文件中定义的位置,尽管有很多文件。

我知道我可以运行类似find / -name "command.cfg" -exec grep check_dns {} \;搜索匹配的东西,但如果可能的话,我想使用locate它,因为它是一个索引副本,而且速度要快得多。

当我运行时,locate commands.cfg我得到以下结果:

/etc/nagios3/commands.cfg
/etc/nagiosgrapher/nagios3/commands.cfg
/usr/share/doc/nagios3-common/examples/commands.cfg
/usr/share/doc/nagios3-common/examples/template-object/commands.cfg
/usr/share/nagiosgrapher/debian/cfg/nagios3/commands.cfg
/var/lib/ucf/cache/:etc:nagiosgrapher:nagios3:commands.cfg
Run Code Online (Sandbox Code Playgroud)

是否可以运行 locate 并将其通过管道传递给内联命令之类的xargs,以便我可以获得grep每个结果?我意识到这可以通过 for 循环来完成,但我希望在这里找到一些 bash-fu / shell-fu,而不是如何针对这种特定情况进行操作。

command-line grep bash ubuntu locate

5
推荐指数
1
解决办法
1058
查看次数

如何使用 iptables 将端口 80 和 443 重定向到 8080 和 8443?

我正在查看名为 DSpace 的 Tomcat 6 web 应用程序的文档,特别是关于在标准端口上运行运行 DSpace(http:// 为 80,https:// 为 443)

我正在尝试使用“方法 1”,它使用 iptables 将流量从端口 80 和 443 重定向到 8080 和 8443,以便摆脱:8080url 中的 。

这些是文档给出的命令:

/sbin/iptables -t nat -I PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
/sbin/iptables -t nat -A OUTPUT -p tcp -d _[server_ip_address|server_ip_address]_ --dport 80 -j  REDIRECT --to-port 8080
/sbin/iptables -t nat -I PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8443
Run Code Online (Sandbox Code Playgroud)

我认为第二行需要更改一些内容,特别是该部分-d _[server_ip_address|server_ip_address]_- 但我不确定是什么。我已经阅读了该man页面,iptables …

linux iptables tomcat

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

如何通过网络或串行将数据通过管道传输到另一台 Linux 机器的显示器?

我有第二个监视器,我想将其用于基于文本的调试日志和/或控制台。我不想把它作为我的 GUI/“桌面”/主系统的一部分。

我将这个显示器连接到一个没有太多处理能力的旧 linux 机器上。当它启动时,它会在login:提示下准备就绪。

它已连接到 LAN,因此我可以通过 SSH 连接到它。我知道我可以通过运行类似的东西来写到屏幕上ssh root@ancient echo test \> /dev/tty0

我喜欢使用命名管道进行调试,基本上是创建一个命名管道,mkfifo然后tail -f在从其他命令/脚本/等向其写入数据的同时使用它。

基于对我正在尝试做的事情的解释,什么是“好”/“正确”的方式来做我正在尝试做的事情(“转储数据”到网络上的命名管道,以便输出出现在这个终端的屏幕上?)

我知道我可以通过诸如此类的东西访问ssh, tail, netcat ( nc) 和重定向/dev/tty0- 但我无法完全弄清楚如何雄辩地将它们组合在一起。我确实看到了这个:我可以通过 netcat 管道/重定向控制台应用程序,以便它可以远程使用吗?

使用类似的东西ssh root@ancient echo test \> /dev/tty0并为每个发送的日志项目创建一个新连接似乎很hackish 。

如果数据不是作为纯文本通过网络发送的,一个奖励是,但我认为如果它使事情变得非常缓慢或造成过多的开销或复杂性,则该标准不是强制性的。

另外,在两台机器之间使用串行连接有什么好处吗?

我过去曾这样做过,但在我看来,即使在115,200发送几百行代码的最大波特率下,与通过网络发送数据相比,它似乎也“滞后”。我知道115k是旧的“调制解调器技术”,所以我只是想知道这种直接(尽管是串行)连接的这种比预期慢的体验是否正常。

pipe io-redirection netcat

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

我可以使用什么小型的、有 linux、以太网端口和硬盘驱动器的东西?

我看到 David Braben 创建了一个 25 美元的 U 盘,可以运行 linux。查看网站http://www.raspberrypi.org/

raspberry-pi-stock-pcb-480.jpg http://img526.imageshack.us/img526/2531/raspberrypistockpcb480.jpg

那还不可用 - 那么我可以连接到网络和以太网端口的低功耗 *nix 设备是什么?不必是安全的或任何东西。最好没有风扇的东西也很好

linux hardware

4
推荐指数
1
解决办法
1120
查看次数

如果 ^a^b 在最后一个命令中替换了一次“a”,我用什么来替换所有出现的“a”?

在 bash 中,如果我运行此命令:

echo aaaaaaa
Run Code Online (Sandbox Code Playgroud)

我明白了aaaaaaa(废话)

但是如果我输入

^a^b
Run Code Online (Sandbox Code Playgroud)

我结束了 baaaaaa

我会输入什么来结束bbbbbbb

bash command-history zsh

4
推荐指数
1
解决办法
140
查看次数

如何按名称引用加载的 SSH 密钥?

我正在使用厨师刀 ec2 工具,它需要加载的 SSH 密钥的名称(在 Amazon EC2 控制面板中创建)

它使用名称来引用密钥对对我来说似乎很奇怪- 因为该名称是在 ec2 控制面板中创建的:

图片.png http://img843.imageshack.us/img843/4236/pictureiy.png

当我下载文件时,我只是在获取mykey.pem文件。这是否以某种方式包含编码的密钥对名称?此密钥对的名称在命令行中似乎不可见:

$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQE69PeuHFtO[truncated]== /Users/me/mykey.pem

$ ssh-add -l
2048 b4:45:70:23:b1:f3:3b:01:11:23:45:67:89:0a:bc:de /Users/me/mykey.pem (RSA)
Run Code Online (Sandbox Code Playgroud)

问题

  1. 是否有我遗漏的密钥对“名称”?我怎样才能看到这些?
  2. 第三方软件(如刀具工具)如何根据看起来不可见的密钥对的“名称”来知道使用哪个密钥对?

我希望这些问题是有道理的 - 我很乐意详细说明任何灰色区域。

linux security ssh authentication ssh-agent

4
推荐指数
1
解决办法
223
查看次数

如果我希望 /var/www 中的文件归 www-data 所有,我应该如何 rsync 文件?

我已经设置了一个新的 ec2 ubuntu 框并安装了 apache 和 php5。默认情况下,您使用ubuntu具有sudo权限的用户登录到该框。

我相信 apache 运行为rootphp5 运行为www-data.

我想我希望所有文件/var/www都被 chown'ed www-data:www-data,文件夹设置为 755,文件设置为 644 - 除非有问题。

事情像这样运行良好,但我的问题是,当我rsync从笔记本电脑文件到服务器时,它会更改它们的所有权(并添加新文件)为ubuntu:admin

我已经阅读了rsync手册并搜索了谷歌,我看到了这样的语法:

rsync -avzcO (source) (destination) --owner=www-data --group=www-data
Run Code Online (Sandbox Code Playgroud)

但是,如果 rsync 以超级用户身份执行,则似乎--ownerand--group不接受参数,而是用于强制远程文件与本地文件系统具有相同的所有者。

因此,我还没有找到使用 rsync 的解决方案来在 rsync 期间设置远程用户和文件组。

我究竟做错了什么?

想法:

  • 也许我在 /var/www 中的文件应该归ubuntu:admin?
  • 也许我的 rsync 语法错误
  • 我想我可以作为www-data用户rsync但这似乎不是一个好主意
  • 我可以像在共享主机上一样使用 suPHP,但这似乎有点麻烦

ubuntu permissions rsync chown

4
推荐指数
1
解决办法
6339
查看次数

如何将输入从一个 SSH 会话传送到另一个?使用先进先出?

不久前,我看到了一篇关于使用fifo?

我以前没有使用过,也找不到我的文章链接。我该如何设置?

我想打开两个控制台进行日志记录,并让一个显示从另一个控制台发送的日志消息(实时)。

logs terminal pipe

3
推荐指数
1
解决办法
4037
查看次数

如何从 bash 中通过管道传输的文本修剪回车符?

我正在使用此命令来获取我最后输入的命令:

history | cut -c 8- | tail -n 2 | head -n 1
Run Code Online (Sandbox Code Playgroud)

它在 bash 中运行得很好,删除了行号,但是我遇到了一个问题,(呃,烦恼,因为我只想要命令),我正在将它传递给xsel剪贴板管理器:

它还抓住了尾随的新行/回车...

我知道在一些 shell 中你可以使用:

echo "text \c"
Run Code Online (Sandbox Code Playgroud)

我不确定如何将其纳入其中bash

最容易即时输入的解决方案的额外积分:)

linux scripting bash shell-script echo

3
推荐指数
1
解决办法
7998
查看次数

为什么将 DNS 记录设置为私有地址时 nslookup 会失败?

设置

在某些网络上,我可以用来nslookup解析指向私有 IP 地址的域名:

@work> nslookup my192.ddns.net
Server:     10.1.2.3
Address:    10.1.2.3#53

Non-authoritative answer:
Name:   my192.ddns.net
Address: 192.168.20.20
Run Code Online (Sandbox Code Playgroud)

但是,在我的家庭网络上,同样的查询失败了:

@home> nslookup my192.ddns.net
Server:     192.168.0.1
Address:    192.168.0.1#53

Non-authoritative answer:
*** Can't find my192.ddns.net: No answer
Run Code Online (Sandbox Code Playgroud)

什么有效

我发现如果我更改 A 记录以my192.ddns.net使其指向公共 IP 范围,它将正常工作:

@home> nslookup my192.ddns.net
Server:     192.168.0.1
Address:    192.168.0.1#53

Non-authoritative answer:
Name:   my192.ddns.net
Address: 172.217.12.238
Run Code Online (Sandbox Code Playgroud)

在家里,如果我为 nslookup 指定 DNS 服务器,或者nslookup按预期将我的笔记本电脑的 DNS 服务器设置为 Google 的工作:

@home> nslookup my192.ddns.net 8.8.8.8
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   my192.ddns.net
Address: …
Run Code Online (Sandbox Code Playgroud)

dns openwrt dnsmasq resolution nslookup

3
推荐指数
1
解决办法
4732
查看次数

我可以让 SSMTP 自动设置“To:”标头吗?

我正在使用 ssmtp 包通过 g-mail 发送电子邮件。一切都工作正常 - 唯一奇怪的是,如果我通过命令行发送邮件,“收件人字段”很时髦。

ssmtp me@domain.com < message.txt
Run Code Online (Sandbox Code Playgroud)

基本上,“收件人”字段只会显示“未公开的收件人”

我读到您可以设置包含“收件人:”字段的标头,但是当我mail在其他系统上使用该命令时,这似乎过于复杂,它会自动执行此操作。

有没有一种更简单的方法可以通过命令行使用ssmtp- 发送邮件,但无需更改上述语法或指定其他参数?(可能是一个配置文件,用于将“收件人”地址设置为指定的任何地址。

linux ubuntu email ssmtp

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