小编nel*_*aro的帖子

修改登录提示或标题(/etc/issue)以显示机器的IP地址

我使用很多虚拟机。用于测试和试生产设置。

我希望登录提示或标题显示机器的 IP 地址。这样,当我启动它时,我可以看到我将 ssh 进入的 IP。我们的网络工程使用 DHCP。所以它可以在启动之间改变。

$ cat /etc/issue
Ubuntu 11.04 \n \l

哪个出现

Ubuntu 11.04 [主机名] tty[x]

我希望它出现

Ubuntu 11.04 [主机名] tty[x] ip xxx.xxx.xxx.xxx

我正在考虑编写一个 init / upstart 脚本。有没有更好的办法。

linux prompt ip

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

postfix 如何查看 $default* 值是什么

在我的修复后配置文件中,我不断找到类似的选项/设置

var = $default_values
选项 = $default_values

例如,这是我运行的 grep 的输出。

/conf/main.cf.default:initial_destination_concurrency = 5
./conf/main.cf.default:lmtp_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
./conf/main.cf.default:lmtp_destination_concurrency_limit = $default_destination_concurrency_limit

我想知道那些 $default 值是什么。我怎样才能知道。它们是否保存在我可以在某个地方阅读的文件中?有我可以访问的手册页吗?

postfix 的文档很丰富,我读了一上午。我仍然没有找到如何找出我的安装的默认值。我不知道我使用的 Ubuntu 8.04 发行版在发布之前是否对默认值进行了更改。检查的唯一方法是查看这些默认值的实际设置位置/方式。

我知道我需要做什么来解决我遇到的问题,我只是不想在不了解它如何影响系统其他部分的情况下进行更改。

linux email mail-server postfix

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

使用 Shorewall 根据请求的域将请求转发到不同的服务器

如何让我的防火墙将进入不同域的流量转发到不同的服务器。

所以我有两个网络服务器。每个都在不同的服务器/IP 上托管不同的域:

first.domain1.com   192.168.1.1  
second.domain2.com  192.168.1.2  
Run Code Online (Sandbox Code Playgroud)

如果请求在端口 80 上传入,则所有流量都将转到192.168.1.1

我想根据目标域拆分端口 80 流量。一个请求first.domain1.com应该去192.168.1.1和一个请求second.domain2.com应该去192.168.1.2

linux firewall ip iproute2 shorewall

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

计算目录列表中的文件

我有一个包含目录列表的文件,我想知道每个目录中有多少文件。

.../图像/idsuffix/userids/

这将为我提供前 5 个目录而不是每个目录的文件和目录数。

找到 ./images/00{0..5}/ | 厕所

我想要的是每个目录的内容计数。我试图通过 xargs 传递它,但做同样的事情并为所有目录生成一个计数。

ls ./images/ > directories.lst  
cat directories.lst | xargs -i{} find {} | wc 
Run Code Online (Sandbox Code Playgroud)

这根本不会产生任何输出。

cat directories.lst | xargs -I{} bash -s "find {} | wc"
Run Code Online (Sandbox Code Playgroud)

linux bash find pipe

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

crontabs 小时规范 */1 与 * 相同

我正在寻找我正在使用的 cron 选项卡的说明。

some job    1   *   *   *   *
some job    1   */1 *   *   *
Run Code Online (Sandbox Code Playgroud)

这些工作是一样的吗?该作业将每小时运行第一分钟。

有人可能会澄清crontab**/xcrontab之间的区别。

linux time crontab cronjob

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

xrandr 将显示设置为使用单个显示器,即使您连接或断开了另一个显示器

xrandr 将显示设置为使用单个显示器,即使您连接或断开了另一个显示器

我有一台笔记本电脑,可以全天移动并连接到不同的显示器等。

我通常会退出 Windows 管理器,并在每次断开连接时重新登录,以便自动为我完成此操作。

我想保持登录状态并使用进行自动检测的相同工具,并使用 xrandr 进行设置或执行此操作。我想我只是不熟悉可用的不同工具。

  1. 连接我的工作辅助显示器。我得到以下信息。
xrandr  
Run Code Online (Sandbox Code Playgroud)

屏幕 0:最小 8 x 8,当前 3286 x 1080,最大 32767 x 32767
LVDS1 连接初级 1366x768+0+0(正常左倒右 x 轴 y 轴) 344mm x 194mm
1366x768 60.0*+
1360x768 59.8 60.0
1024x76 8 60.0
800x600 60.3 56.2
640x480 59.9
DP1 断开(正常左倒右 x 轴 y 轴)
HDMI1 连接 1920x1080+1366+0(正常左倒右 x 轴 y 轴) 510mm x 287mm
1920x1080 60.0*+ 50.0 59.9
1680x1050 59.9
1600x9 00 60.0
1280x1024 75.0 60.0
1440x900 59.9
1280x800 59.9
1152x864 75.0
1280x720 …

linux multiple-monitors x-windows xrandr ubuntu

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

kvm 错误启动域:不支持的配置:无法找到模型 selinux 的安全驱动程序

尝试启动我们的 kvm 虚拟机并在重新启动物理主机后出现此错误。

Error starting domain: unsupported configuration: Unable to find security driver for model selinux

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 88, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 124, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 83, in newfn
    ret = fn(self, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1479, in startup
    self._backend.create()
  File "/usr/lib/python2.7/site-packages/libvirt.py", line 1062, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: unsupported configuration: Unable to find security driver for …
Run Code Online (Sandbox Code Playgroud)

linux virtual-host virtual-machine libvirt virsh

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

使用 xargs 将参数传递给带管道的子外壳

我想重命名一些文件。我想我可以使用 xargs 来做到这一点。

find ./ -name "upload.log-*" 
./upload.log-20180622.gz-20180624.gz-20180626.gz
./upload.log-20180624.gz-20180626.gz
./upload.log-20180620.gz-20180622.gz-20180624.gz-20180626.gz
./upload.log-20180621.gz-20180623.gz-20180625.gz-20180627.gz

find ./ -name "upload.log-*" -print | cut -d"-" -f-2
./upload.log-20180622.gz
./upload.log-20180624.gz
./upload.log-20180620.gz
./upload.log-20180621.gz
Run Code Online (Sandbox Code Playgroud)

我正在尝试以下操作,但似乎不起作用

find ./ -name "upload.log-*" | xargs -I '{}' sh -c "echo $1 $(echo $1 | cut -d"-" -f-2)" "{}"
Run Code Online (Sandbox Code Playgroud)

bash sh xargs pipe command-line-arguments

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

sed 错误“sed:-e 表达式 #1,字符 [#]:命令后的额外字符”

sed '/\r$/ {N s/\n//}'
sed: -e expression #1, char 10: 命令后的额外字符

我想了解我的命令行有什么问题。当我可以在脚本中但不能在命令行中执行以下某些操作时。

我一直在学习 www.grymoire.com 上的教程。当我被困在“使用多行”部分时 。这些脚本工作正常。

#!/bin/sh
sed'
# 在行尾寻找“#”
/#$/ {
# 找到一个 - 现在在下一行阅读
    N
# 删除“#”和换行符, 
    s/#\n//
}' 文件

就我而言,我正在寻找 \r 或返回 ^M。

#!/bin/sh
sed'
# 在行尾寻找“#”
/\r$/ {
# 找到一个 - 现在在下一行阅读
    N
# 删除“#”和换行符, 
    s/\r\n//
}' 文件

问题是当我尝试将其转换为单行 shell 命令时,它给了我一个错误。

sed '/\r$/ {N s/\n//}'
sed: -e expression #1, char 10: 命令后的额外字符
sed '/\r$/{N s/\n//}'
sed : -e 表达式 #1, char 9: 命令后的额外字符
sed …

linux sed command-line

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