Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

3
如何设置脚本在端口收到消息时执行
我想知道如何获取shell脚本以侦听某个端口(也许使用netcat?)。希望当消息发送到该端口时,脚本会记录该消息,然后运行一个函数。 例: 计算机1的脚本在后台运行,该脚本打开了端口1234以访问传入流量 计算机2将消息“ hello world”发送到计算机1的端口1234 计算机1上的脚本将消息“ hello world”记录到变量$ MESSAGE中 现在已设置变量$ MESSAGE,脚本运行功能 我该怎么做呢?

5
如何授予读写权限但不删除文件
我想让用户能够在其他用户目录中创建写入和读取文件,但不能在创建后删除文件(粘性位在这里不起作用...),例如: 我的用户manager 具有目录repository 我的用户worker1需要向其中写入文件,/manager/repository但是不能删除文件 我的用户worker2需要向其中写入文件,/manager/repository 但是不能删除文件 我的用户worker3需要向其中写入文件,/manager/repository 但是不能删除文件 但worker 1-2-3只能在创建后删除文件,manager并且root可以删除worker 1-2-3创建的文件。 我试过几个chown和chmod技巧与应用粘着位没有成功。

3
使用SIGWINCH退出Apache服务退出
运行时,service apache start我在日志文件中看到以下条目: [mpm_event:notice] [pid 1906:tid XXX] AH00489: Apache/2.4.23 (Unix) OpenSSL/1.0.2g PHP/7.0.9 configured -- resuming normal operations [core:notice] [pid 1906:tid XXX] AH00094: Command line: '/usr/sbin/httpd' [mpm_event:notice] [pid 1906:tid XXX] AH00492: caught SIGWINCH, shutting down gracefully 服务apache无法启动?我可以在互联网上找到SIGWINCH[ Window size change]的含义,但在这种情况下并不能真正帮助我。 文件/etc/systemd/system/apache.service: [Unit] Description=The Apache Webserver [FaF Compiled] After=network.target nss-lookup.target time-sync.target Before=getty@tty1.service …

5
bash +使用printf以特殊格式打印
我刚刚编写了以下bash脚本来检查Linux机器列表上的ping访问: for M in $list do ping -q -c 1 "$M" >/dev/null if [[ $? -eq 0 ]] then echo "($C) $MACHINE CONNECTION OK" else echo "($C) $MACHINE CONNECTION FAIL" fi let C=$C+1 done 打印: (1) linux643 CONNECTION OK (2) linux72 CONNECTION OK (3) linux862 CONNECTION OK (4) linux12 CONNECTION …

3
使用命令“ gzip”创建档案
我必须使用命令gzip(不是tar,这是必要的)创建一个档案,该档案应包含另一个目录中的文件,例如/ etc。我尝试使用命令 gzip myetc.gz /etc 但这没有用。
12 gzip  archive 

5
network.service无法启动LSB:启动/关闭网络-Centos 7
尝试启动网络服务时,我在Centos7上遇到问题。我收到以下错误信息。 Failed to start LSB: Bring up/down networking 当我意识到它没有从/ etc / sysconfig / network-scripts / ifcfg-eth0文件中获取我的静态IP地址(在下面找到)时出现了问题。 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.0.16 NETMASK=255.255.255.0 HWADDR=B8:27:EB:C3:1E:EC NM_CONTROLLED=no ONBOOT=yes TYPE=Ethernet 重新启动时,设备将使用IP地址192.168.0.7加载,显然不是分配的静态IP地址,并且不确定如何获取DHCP服务器(我确实拥有我的路由器)的信息。 我试图禁用NetworkManager,因为这可能通过发出以下命令对网络服务造成破坏。 systemctl stop NetworkManager 然后启用网络 systemctl start network 再次出现相同的错误,然后我终止了dhclient进程,并尝试再次启动网络服务,一次又一次遇到相同的错误。 失去耐心,因为当时我确实可以通过DHCP IP在服务器上连接到Internet,因此执行了“ yum remove Network Manager”并尝试重新启动,但仍然无济于事。我不确定这是否是个好主意,但是嘿,它还是没有用。 我似乎已经用尽了所有可以在互联网上找到的建议。想知道是否有人知道会发生什么。 编辑:另外请注意,这不是VM或与虚拟化有任何关系。这只是一个RaspberryPI 3 非常感谢。 编辑:日志条目: Jan 01 00:00:06 <hostname> systemd[1]: …

4
静默磁盘错误和Linux交换的可靠性
我的理解是,硬盘驱动器和SSD会在驱动器内部实现一些基本的错误纠正,而大多数RAID配置(例如mdadm)将依赖于此来决定何时驱动器无法纠正错误并需要脱机。但是,这取决于存储的错误诊断准确率100%。事实并非如此,并且像两个驱动器的RAID-1镜像这样的常见配置将很容易受到攻击:假设一个驱动器上的某些位被静默损坏,并且该驱动器未报告读取错误。因此,诸如btrfs和ZFS之类的文件系统将实现其自己的校验和,以便不信任有故障的驱动器固件,故障SATA电缆等。 同样,RAM也可能存在可靠性问题,因此我们拥有ECC RAM来解决此问题。 我的问题是:如何保护Linux交换文件免受两磁盘配置(即,使用主线内核驱动程序)上的驱动器固件捕获的静默破坏/位腐的静默破坏/位腐烂?在我看来,此处缺少端到端保护的配置(例如btrfs提供的配置)在某种程度上抵消了ECC RAM带来的省心。但是我想不出一个好方法: btrfs根本不支持交换文件。您可以从btrfs文件设置一个循环设备,然后在该设备上进行交换。但这有问题: 随机写入效果不佳:https://btrfs.wiki.kernel.org/index.php/Gotchas#Fragmentation 关于禁用写时复制的建议也将禁用校验和-从而破坏了本练习的重点。他们的假设是数据文件具有自己的内部保护。 ZFS Linux上允许使用ZVOL作为交换,我想可以工作:http://zfsonlinux.org/faq.html#CanIUseaZVOLforSwap -然而,从我读书,ZFS通常苛刻的内存,并得到它的交换工作-仅应用程序听起来像一些工作来解决它。我认为这不是我的首选。为什么要为了可靠的交换而不得不使用树外内核模块,这超出了我的范围-在当今时代,对于大多数现代Linux发行版/内核,肯定有一种方法可以做到这一点? 有其实用的补丁,使内存管理器本身的校验,对于正是我在这个问题上讨论的原因,一个Linux内核邮件列表上的螺纹: http://thread.gmane.org/gmane.linux.kernel/989246 -不幸的是,据我所知,该补丁死了,并且从未出于我不知道的原因将其发布到上游。太糟糕了,听起来像是一个不错的功能。另一方面,如果将交换放在RAID-1上-如果损坏超出了校验和的修复能力,则希望内存管理器在出现紧急情况或其他原因之前尝试从其他驱动器读取数据。可能超出了内存管理器应做的工作范围。 综上所述: RAM具有ECC纠正错误 永久存储中的文件具有btrfs来更正错误 掉期有??? <---这是我的问题

1
systemd-networkd-如何在不重新启动的情况下强制执行新配置?
在我的Arch盒子上,我有一个网桥。目标是删除桥接,仅使用未桥接的网络适配器。为了这样做,我删除了下面的所有* .netdev和* .network配置文件,/etc/systemd/network并用一个简单的文件替换了它们: /etc/systemd/network/lan.network -------------------------------- [Match] eno* [Network] DHCP=ipv4 然后systemctl restart systemd-networkd,我使用重启了网络服务,假设这将使我只剩下lo和eno*接口。不幸的是,这没有任何效果。快速浏览ip link仍然显示桥接接口处于活动状态。 因为在这种情况下正常运行时间并不重要,所以我重新启动了机器即可解决问题。尽管如此,我还是想重启对于这种事情不是必需的。我想念什么?

1
如何从存储在硬盘上的ISO文件启动?
我知道我可以创建/刻录可启动CD / DVD或实时USB,并可以从中启动/安装。但是,假设我当前正在运行GNU / Linux,并且要在硬盘上安装另一个GNU / Linux的ISO文件,那么我可以直接从硬盘上的ISO引导并尝试/安装该GNU / Linux操作系统吗? ?


2
我在Debian 8的哪里可以找到启动日志(以调试自动启动问题)?
我正在尝试调试为什么某些应用程序无法自动启动(自动启动程序包)。 前提:我的最终目标是了解为什么自动启动序列被破坏(可能是由于某些程序包的自动启动失败)。Debian 8本身可以正常启动,但是自动启动功能无法正常工作。 因此,我想浏览启动日志(在/ var / log / daemon中,我没有找到所需的内容)。 根据Debian Wiki的说法,我应该在/ var / log / boot中完善启动日志,而在Debian 8中不做任何配置。 但是文件不存在。 维基还说: 如果您使用systemd作为初始化系统,则可能需要使用它systemctl来调试引导问题。 所以我尝试了 须藤系统 但我得到一个错误 尝试作为用户实例运行,但是未设置$ XDG_RUNTIME_DIR。
12 debian  startup 

1
压缩文件而不包含父目录
我有一个包含多个文件的文件夹 夹 artifact1.app artifact2.ext2 artifact3.ext3 ... 我的目标是从此文件夹外部压缩文件(因此无需使用cd命令),而不包括文件夹dir。 zip -r ./folder/artifact.zip ./folder/artifact1.app 此命令在最终zip中包含文件夹dir。有什么提示吗? 相关问题:压缩文件夹的内容而不包含文件夹本身
12 zip 


1
外壳程序脚本中的陷阱处理和隐式子外壳
假设您有一个Shell脚本,该脚本通过EXIT陷阱运行某种清理代码,如下所示: #!/bin/bash mytrap () { echo "It's a trap!" >&2 } trap mytrap exit echo I am at the end of the script. 如预期的那样,这将It's a trap!在脚本退出时打印出来: $ sh myscript I am at the end of the script. It's a trap! 您修改脚本以添加一个函数,该函数生成一些最终将通过管道传递给另一个命令的输出,如下所示: #!/bin/bash mytrap () { echo "It's a trap!" >&2 …
12 shell  trap 

2
通过外壳测试对阵列的支持
有没有一种简洁的方法可以在命令行中通过类似Bourne的本地shell测试数组支持? 这始终是可能的: $ arr=(0 1 2 3);if [ "${arr[2]}" != 2 ];then echo "No array support";fi 或测试$SHELL和shell版本: $ eval $(echo "$SHELL --version") | grep version 然后,假设我可以访问它,则阅读手册页。(即使从那里开始/bin/bash,我也假设所有类似Bourne的shell都接受long选项--version,例如,对于ksh 来说,这样做会导致中断。) 我正在寻找一个简单的测试,可以在脚本开始时甚至在调用它之前将其无人值守并纳入“ 用法”部分。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.