小编Mar*_*ich的帖子

/proc/sys/net/ipv[46]/conf/ 中的“all”、“default”和“eth*”有什么区别?

在的sysctl,所述/proc/sys/net/ipv[46]/conf/键具有以下子项:alldefault,和每个网络接口的密钥。例如,在具有单个网络接口 eth0 的机器上,它将如下所示:

iserv ~ # ll /proc/sys/net/ipv[46]/conf/
/proc/sys/net/ipv4/conf/:
insgesamt 0
dr-xr-xr-x 0 root root 0 12. Sep 23:30 all/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 default/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 eth0/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 lo/

/proc/sys/net/ipv6/conf/:
insgesamt 0
dr-xr-xr-x 0 root root 0 12. Sep 23:30 all/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 default/
dr-xr-xr-x 0 root root 0 12. …
Run Code Online (Sandbox Code Playgroud)

linux proc ipv6 sysctl

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

是否可以安全地使用`find -exec sh -c`?

我正在尝试将findtoecho 0用于某些文件,但显然这仅适用于sh -c

find /proc/sys/net/ipv6 -name accept_ra -exec sh -c 'echo 0 > {}' \;
Run Code Online (Sandbox Code Playgroud)

但是使用sh -cwithfind -exec让我觉得很不安,因为我怀疑引用问题。我稍微摆弄了一下,显然我的怀疑是有道理的:

  • 我的测试设置:

    martin@dogmeat ~ % cd findtest 
    martin@dogmeat ~/findtest % echo one > file\ with\ spaces
    martin@dogmeat ~/findtest % echo two > file\ with\ \'single\ quotes\'
    martin@dogmeat ~/findtest % echo three > file\ with\ \"double\ quotes\"
    martin@dogmeat ~/findtest % ll
    insgesamt 12K
    -rw-rw-r-- 1 martin martin 6 Sep 17 12:01 file with "double …
    Run Code Online (Sandbox Code Playgroud)

shell find

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

新的 md 数组是自动只读的,并且 resync=PENDING

我使用以下命令创建了一个新的 md 数组:

mdadm --create /dev/md1 -l 1 -n 2 /dev/sd[ed]1
Run Code Online (Sandbox Code Playgroud)

但是现在/proc/mdstat将数组显示为“自动只读”,resync=PENDING:

~ # cat /proc/mdstat 
Personalities : [raid1] 
md1 : active (auto-read-only) raid1 sde1[1] sdd1[0]
      976630336 blocks super 1.2 [2/2] [UU]
        resync=PENDING

md0 : active raid1 sdb1[0] sdc1[1]
      1953511936 blocks [2/2] [UU]

unused devices: <none>
Run Code Online (Sandbox Code Playgroud)

根据这个网站,我可以用以下方法解决这个问题:

mdadm --readwrite /dev/md1
Run Code Online (Sandbox Code Playgroud)

这确实有效:

~ # mdadm --readwrite /dev/md1
~ # cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sde1[1] sdd1[0]
      976630336 blocks super 1.2 [2/2] [UU]
      [>....................] …
Run Code Online (Sandbox Code Playgroud)

raid mdadm

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

Linux md RAID:/dev/md0 vs. /dev/md/0

在较新的系统上/usr/share/mdadm/mkconf(用于生成的脚本/etc/mdadm/mdadm.conf)倾向于使用设备名称/dev/md/0而不是/dev/md0

new-system ~ # /usr/share/mdadm/mkconf | grep ARRAY
ARRAY /dev/md/0 metadata=1.2 UUID=a0021927:0e4f10bf:2c47dc72:ca0b352e name=unassigned:0
Run Code Online (Sandbox Code Playgroud)

这可能会给期望/dev/md0在那里的用户带来一些刺激,但显然它运行良好,因为服务器启动时没有问题。

/proc/mdstat设备中仍称为/dev/md0

new-system ~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb2[2] sda2[0]
      1953381184 blocks super 1.2 [2/2] [UU]

unused devices: <none>
Run Code Online (Sandbox Code Playgroud)

ls显示这/dev/md/0是一个符号链接/dev/md0

new-system ~ # ls -l /dev/md/0 
lrwxrwxrwx 1 root root 6 Nov 20 14:06 /dev/md/0 -> ../md0
Run Code Online (Sandbox Code Playgroud)

在另一个旧系统上mkconf仍然使用/dev/md0,并且 …

debian mdadm md

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

评估 $BASH_COMMAND 是否安全?

我正在开发一个从变量构造复杂命令的 shell 脚本,例如这样(使用我从 Bash FAQ 中学到的技术):

#!/bin/bash

SOME_ARG="abc"
ANOTHER_ARG="def"

some_complex_command \
  ${SOME_ARG:+--do-something "$SOME_ARG"} \
  ${ANOTHER_ARG:+--with "$ANOTHER_ARG"}
Run Code Online (Sandbox Code Playgroud)

如果定义了这些变量,此脚本会动态添加参数--do-something "$SOME_ARG"和添加--with "$ANOTHER_ARG"some_complex_command。到目前为止,这工作正常。

但是现在我还希望能够在我运行时打印或记录命令,例如当我的脚本在调试模式下运行时。因此,当我的脚本运行时some_complex_command --do-something abc --with def,我还希望将此命令放在一个变量中,以便我可以将它记录到系统日志中。

Bash FAQ 演示了为此目的使用DEBUG陷阱和$BASH_COMMAND变量(例如用于调试目的)的技术。我已经尝试过使用以下代码:

#!/bin/bash

ARG="test string"

trap 'COMMAND="$BASH_COMMAND"; trap - DEBUG' DEBUG
echo "$ARG"

echo "Command was: ${COMMAND}"
Run Code Online (Sandbox Code Playgroud)

这有效,但它不会扩展命令中的变量:

host ~ # ./test.sh
test string
Command was: echo "$ARG"
Run Code Online (Sandbox Code Playgroud)

我想我必须使用 eval 扩展echo "$ARG"echo test string(至少我还没有找到没有的方法eval …

bash

11
推荐指数
2
解决办法
2378
查看次数

cryptdisks_start:预检失败:设备包含文件系统类型crypto_LUKS

我正在尝试使用cryptdisks_start打开在我的/etc/crypttab. 不幸的是,该命令失败并显示以下错误消息:

martin ~ # cryptdisks_start luks-01a2e5d8-9211-40ce-b160-d3f973d1a155
 * Starting crypto disk...
 * luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 (starting)..
 * luks-01a2e5d8-9211-40ce-b160-d3f973d1a155: the precheck for '/dev/disk/by-uuid/01a2e5d8-9211-40ce-b160-d3f973d1a155' failed:  - The device /dev/disk/by-uuid/01a2e5d8-9211-40ce-b160-d3f973d1a155 contains a filesystem type crypto_LUKS.
 * luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 (failed)...
   ...fail!
Run Code Online (Sandbox Code Playgroud)

一个相当奇怪的错误,因为该设备当然必须包含一个crypto_LUKS文件系统!

来自 的相关行/etc/crypttab,由 GNOME Disks 设置:

luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 UUID=01a2e5d8-9211-40ce-b160-d3f973d1a155 /etc/luks-keys/luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 nofail
Run Code Online (Sandbox Code Playgroud)

encryption gnome3 luks cryptsetup

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

在 md 设备 /dev/md0 上检测到 SparesMissing 事件

我每天都会在服务器上收到以下邮件:

This is an automatically generated mail message from mdadm
running on <host>

A SparesMissing event had been detected on md device /dev/md0.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid1]
md0 : active raid1 sda1[0] sdb1[1]
      731592000 blocks [2/2] [UU]

unused devices: <none>
Run Code Online (Sandbox Code Playgroud)

虽然输出cat /proc/mdstat看起来不错,所以导致这个问题的原因并不明显。

raid software-raid mdadm

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

ntpd 有效吗?

ntpd在我的机器上运行,但我不确定它是否工作正常。如何查询ntpd确定是否已成功连接到时间服务器以及我的内核时间是否已同步?

ntpd ntp

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

标签 统计

mdadm ×3

raid ×2

bash ×1

cryptsetup ×1

debian ×1

encryption ×1

find ×1

gnome3 ×1

ipv6 ×1

linux ×1

luks ×1

md ×1

ntp ×1

ntpd ×1

proc ×1

shell ×1

software-raid ×1

sysctl ×1