小编CDu*_*Duv的帖子

在“find -exec”中执行“grep | xargs”时出现空行

我正在尝试列出 Apache 通过.htaccess(包含deny from all)阻止的 Web 服务器的所有目录。我设法获得了阻塞列表,.htaccess但是当我尝试使用提取目录路径时,dirname出现了一些错误:

  1. .htaccess文件列表:

    find . -type f -name ".htaccess"
    ./.htaccess
    ./config/.htaccess
    ./files/.htaccess
    ./plugins/webservices/.htaccess
    ./plugins/webservices/scripts/.htaccess
    ./install/mysql/.htaccess
    ./scripts/.htaccess
    ./locales/.htaccess
    
    Run Code Online (Sandbox Code Playgroud)
  2. 阻塞.htaccess文件列表:

    find . -type f -name ".htaccess" -exec sh -c "grep -Eli '^deny from all$' '{}'" \;
    ./config/.htaccess
    ./files/.htaccess
    ./plugins/webservices/scripts/.htaccess
    ./install/mysql/.htaccess
    ./scripts/.htaccess
    ./locales/.htaccess
    
    Run Code Online (Sandbox Code Playgroud)
  3. 错误来了。与 2. 中的列表相同,但使用xargsdirname获取包含目录:

    find . -type f -name ".htaccess" -exec sh -c "grep -Eli '^deny from all$' '{}' | xargs …
    Run Code Online (Sandbox Code Playgroud)

shell grep find xargs

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

当 NUT 报告 UPS 电池电量不足时运行各种 shell 命令

在 Debian 服务器上,我已成功安装了该nut软件包,以便可以通过 USB 获取我的 Ellipse PRO 1200 UPS 的状态(upsc my-ups返回电池电量)。

注意:我还没有测试停电时会发生什么。

此 UPS 为除此 Debian 服务器之外的其他设备供电:一些路由器/交换机和 NAS。

在这种情况下,考虑到我认为 NUT 的工作方式,我应该在 NAS 上安装 NUT 并将其声明为 NUT 从站,这样 Debian 服务器(NUT 主站)会在电池电量低时命令 NAS 关闭,然后自行关闭.

问题是我无法在 NAS 上安装 NUT(不支持操作系统),但我可以通过 SSH 连接到它并告诉它关闭。

我如何/在哪里可以将我自己的脚本与通常运行的 NUT 一起放置以命令它从属关闭?

我唯一能找到的地方是SHUTDOWNCMD/etc/nut/upsmon.conf文件中:

SHUTDOWNCMD "/sbin/shutdown -h +0"
Run Code Online (Sandbox Code Playgroud)

我猜我可以用一个手工制作的脚本替换这个命令,该脚本将运行该 SSH-shutdown-command 并以关闭 Debian 服务器结束。

问题SHUTDOWNCMD似乎是针对最后一次操作的:当电池电量非常低时。在我自己的脚本中联系所有其他设备可能需要比电池耗尽之前更多的时间。

谢谢

ups nut

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

标签 统计

find ×1

grep ×1

nut ×1

shell ×1

ups ×1

xargs ×1