当以用户ec2-user身份运行以下脚本时,出现iptables v1.4.18: can't initialize iptables table filter: Permission denied (you must be root)错误消息iptables v1.4.18: can't initialize iptables table filter: Permission denied (you must be root) 脚本: #!/bin/sh # Offending IP as detected by mod_evasive # Add the following firewall rule (block IP) $IPTABLES -I INPUT -s $IP -j DROP 我怎样才能运行iptables作为一个非root用户来阻止一个IP地址? 注意:这个脚本通常由mod_evasive调用
在我的Debian服务器上有如下的磁盘: /dev/sda1 276M 29M 233M 11% /boot /dev/sdb1 917G 793G 79G 92% /home /dev/sdc1 1.8T 1.7T 79G 96% /home2 /dev/sdd1 1.8T 1.7T 79G 96% /home3 是否有可能作为单个分区访问/dev/sdb1 /dev/sdc1 /dev/sdd1 ,以便: 一个)。 我可以通过像/bighome这样的单个挂载点访问它们,而文件则会透明地自动保存到我的脚本中? B)。 这可以实现而不会丢失服务器上的现有数据?
从dynamic公共IP发送UDP消息定期到公共IP X:20000。 需要一个侦听IP X:20000的代理,然后将重复/克隆数据包转发到位于IP Y:20000的X:20001和不同的计算机。 现在,当应用程序在X:20001上进行侦听时,将对X:20001的消息作出响应,我希望将该消息从X:20000转发回PC A. 我怎样才能在Linux中实现这个function? (试图避免自定义脚本) 试图让一个应用程序在一个无头的服务器响应消息,一台计算机与监视器来实时debugging消息。
我正在尝试将目标NAT从一个范围(192.168.2.0/24)转换为另一个范围(192.168.1.0/24)中的相应IP地址。 我设法通过ip做这个ip iptables -t nat -A PREROUTING -i ppp0 -d 192.168.2.1 -p all -j DNAT –to-destination 192.168.1.1 iptables -t nat -A PREROUTING -i ppp0 -d 192.168.2.2 -p all -j DNAT –to-destination 192.168.1.2 iptables -t nat -A PREROUTING -i ppp0 -d 192.168.2.3 -p all -j DNAT –to-destination 192.168.1.3 etc.. 有什么办法,我可以指定源和目标范围在单行? 谢谢!
我发布这个超级用户,但没有采取: https : //superuser.com/questions/832578/how-to-grep-a-continuous-stream-with-paging 我想要一个日志文件,并过滤掉一些不相关的日志条目,比如INFO级别的日志条目。 上面的堆栈溢出的答案让我的一部分的方式: $ tail -f php_error_log | grep -v INFO 我想要的下一个部分是在这个stream中分页,比如less。 lessF +连续stream的作品,但我不能应用于grep。 我怎样才能做到这一点? 自从发布了这个问题后,我发现, less等待EOF出现,并挂起,直到它收到( 源 )。 这解释了为什么试图跟随pipe道不工作。 我剽窃了一个简短的脚本,不经意地做我想做的事情: #!/bin/bash tail -f /data/tmp/test.txt | grep –line-buffered foo > /data/tmp/foo & pid=$! echo $pid sleep 1 less +F /data/tmp/foo kill $pid rm /data/tmp/foo 我相信有可能更优雅地做到这一点,也许与临时文件,自动清理没有直接的互动。
在通过套接字/networking以外的docker集装箱之间进行通信有什么方法吗? 也许可以是IPC或其他方式。 这可行吗? 我已经阅读了docker文档,其中说我们可以使用–link选项来链接docker容器,但是并没有说明如何将data / msg从一个容器传输到另一个容器。 我已经创build了一个名为checkram的容器。 现在我想链接一个新的容器与这个容器,我运行docker run -i -t –privileged –link=checkram:linkcheck –name linkcont topimg命令。 然后我检查了包含tcp://172.17.0.14:22 linkcont容器中的envvariablesLINKCHECK_PORT 。 我不知道如何处理这个IP和端口,以及如何与来自linkcont容器的checkram容器进行通信。 任何人都可以帮我解决这个问题吗? 提前致谢。
CentOS 5.10 / VMWare ESX 5.1 我有一个运行CentOS 5.10(带有SendMail)的旧电子邮件服务器,并且遇到间歇性挂起,其中系统完全没有响应。 在这段时间内,我根本无法连接,虚拟控制台没有响应。 奇怪的是,我们的VMWarepipe理员组没有看到任何明显的资源尖峰,这将表明资源不足,负载峰值等。此外,当我检查系统日志(例如maillog,消息等)时,显然不存在在挂起时间内的所有日志活动中,这表明这些中断严重到足以防止日志logging(或者可能存在文件系统/磁盘问题)。 一个不正常的地方是发送邮箱的日志很高(98而不是通常的9级)。 我马上就把它恢复正常。 我很难在这里我可以去更多的信息。 是否有线程转储可以告诉我在挂起期间操作系统正在工作? 附加信息: 内核版本是: 2.6.18-371.4.1.el5 #1 SMP Thu Jan 30 06:09:24 EST 2014 i686 i686 i386 GNU/Linux 存储在共享SAN上处理。 根据内部策略,VMWare工具没有安装在系统上,但是我们已经运行了很长一段时间没有vmware工具,所以我们不认为它的缺失必然是根本原因。 VMWare的特定版本是:VMware ESXi 5.1.0 build-2000251 硬件是IBM 3850 M2,型号7233AC1
我跑(愚蠢)这些命令: mv ncdu/ /home/* mv ncdu/ /var/* 尝试将ncdu文件夹移动到这些目录中。 它导致我删除我的/ home /文件夹中的所有我的Apache目录,除了virtfs (cPanel)。 正如你可以想象的那样,它将我的网站和其他各种function淘汰出局。 我注意到/virtfs/仍然拥有网站的所有文件。 如何将/home目录恢复到应该如何? 有没有我可以运行的cPanel脚本,或者我必须手动创build硬链接? 我也注意到, var/yp目录有很多你期望的var目录,我可以从那里恢复吗?
我需要为用户生成ssh-keys(公共/私有对)。 这个用户已经在我所有的盐族中。 如何从我的盐大师为这个用户生成ssh密钥? 对于root用户,我使用这个命令生成密钥,它工作正常: salt '*application-server-*' cmd.run "ssh-keygen -q -N '' -f /root/.ssh/id_rsa" 我可以发出下面的命令,可以为helen生成ssh-keys; 但是权限和所有权会有所不同; 所以需要再次发出命令来更正权限和所有权: salt '*application-server-*' cmd.run "ssh-keygen -q -N '' -f /home/helen/.ssh/id_rsa" 有没有任何方法可以用盐作为用户helen而不是root来运行这个命令? 一般来说,有没有一种方法可以让盐作为非root用户运行命令?
我目前正在开发两个应用程序来处理自定义videostream“协议”。 基本上: 服务器从networking摄像头捕捉video帧,将它们分成几部分,然后通过UDP将这些部分发送给客户端。 客户端接收所有的框架部分,并处理所有的“重新sorting”:按照正确的顺序放置这些部分,在旧的框架上存储新的框架,等等……这就是实现“协议”的地方:客户端需要了解他们收到的video数据,这样他们才能正确地重新sorting,并显示一个合适的帧 。 这个机制本身工作得很好(经过相当多的斗争,我会承认)。 但是,现在我的应用程序正在运行,我发现我的客户正在努力接收一些帧部分。 客户端将成功检索第一部分,让我们说n帧,然后只是…挂在recvfrom 。 我不打扰所有的应用程序的细节,但这里有一些统计: 服务器每40,000微秒(25fps)捕获一帧(38,016字节)。 每个帧被分成24个部分(每个部分38,016 / 24 = 1584字节)。 假设我们只有一个客户端。 在networking方面,这意味着: 每40,000微秒,服务器向客户端发送24个缓冲区( sendto )。 每个缓冲区的长度是1584个字节。 另一方面,客户调用recvfrom 24次。 在一秒钟内,服务器可以捕获25帧。 这意味着在1秒内,它会发送25 * 24帧的部分给客户端。 这表示每秒25 * 24 * 1584 = 950,400字节)。 我们还假设客户端总是在服务器发送时进行监听。 现在,用这些费率,客户将能够保持1或2秒。 当应用程序不冻结时,客户端最终会挂起recvfrom ,就好像服务器已经停止了广播。 我添加了一些冗长的服务器,以确保它保持广播,它确实。 几秒钟后,似乎服务器的sendto调用不再达到客户端的recvfrom调用。 我检查了所有与networking有关的代码,因为它非常简单,所以没有太多错误:服务器build立一个缓冲区,调用sendto ,并开始准备下一个缓冲区…客户端只是等待缓冲区。 由于我在编程中找不到解释,所以我开始相信某些东西是卡在networking上的。 在某些地方,似乎有些东西阻止了我的UDP数据包在一段时间后到达客户端。 现在,由于UDP是完全无控制的,所以我找不到从我的程序中检查缓冲区传输的方法。 但是,有没有办法让我看看系统是否传输我的数据包,或者如果它最终达到其中一个极限,并开始丢弃它们? 如果是的话,这个限制机制是什么,有没有一种方法可以configuration我的系统,这样我的应用程序就可以按照我编程的速度工作了? 由于我的应用程序通过回送接口(127.0.0.1:n上的服务器)进行通信,因此我认为添加有关此接口的信息是一个好主意。 我正在运行一个GNU / Linux(内核3.13.0)系统。 $ ifconfig lo […]