Articles of linux

AWS VPC + IPtables + NAT:端口转发不起作用

昨天我在这里发了一个问题,但是我觉得还不够清楚。 顺便说一句,这个问题不是重复的。 我有AWS VPC安装如下。 目标/问题 :从互联网SSH到服务器A. 它不工作。 服务器A是在私人子网,因此我想启用在我的NAT实例上的iptables NATing,以便我可以ssh到SErver A直接从互联网 我正在关注这个和这个 我在NAT实例上运行下面的命令: NAT# iptables -t nat -A PREROUTING -p tcp –dport 2222 -j DNAT –to-destination 10.0.1.243:22 在NAT实例上启用IP转发: NAT# sysctl -p net.ipv4.ip_forward = 1 MASQUERADE正在NAT实例上运行: NAT# iptables -t nat -vnL POSTROUTING Chain POSTROUTING (policy ACCEPT 6 packets, 312 bytes) pkts bytes target prot opt in out […]

'无法识别的光盘标签' – 使用qemu图像时

我有一个Linux从零开始在QEMU虚拟机上运行的LiveCD。 我正在使用这个命令为qemu创build一个hda光盘: qemu-img.exe create -f qcow2 base-linux.img 5G 然后我运行我的vm: qemu.exe -m 1024 -boot d -cdrom lfslivecd-x86-6.3-r2145.iso -hda base-linux.img 启动后,我尝试这个命令: parted /dev/hda unit GB mkpartfs primary ext3 0 5 它给了我'未被识别的光盘标签错误'。 我正在使用parted 1.9.0,并没有想法如何解决它。

从PHP(sendmail?)获取用mail()发送的邮件日志

在一些服务器更改之后,我们的PHPconfiguration遭到了破坏,导致客户端的大型邮件列表部分超过4000个地址或更多。 我们希望尽可能避免发送重复的邮件,并且我们有最初的邮件列表。 该邮件是使用PHP的mail()函数发送的,该函数使用sendmail ,它使用Exim 。 我看到了这个命令: sendmail -bp 这给了我一个出现的邮件列表被发送。 这个列表不是很大,而且可能是准确的(这意味着只发送了一百个左右的电子邮件就会超时) sendmail -bp是获取此列表的最佳方式吗? 编辑:我找不到任何mail.log文件在/var/log/mail.log或通过locate mail.log ,但WHM似乎有一些这方面的信息。

在繁忙的接口上进行tcpdump时,大量丢弃的软件包

我的挑战 我需要做很多数据的tcpdump – 实际上从混杂模式中剩余的2个接口,能够看到很多stream量。 把它们加起来 将所有stream量从2个接口logging在混杂模式中 这些接口没有分配一个IP地址 pcap文件必须旋转〜1G 当存储10 TB文件时,开始截断最老的文件 我现在做的 现在我使用这样的tcpdump: ifconfig ethX promisc ifconfig ethX promisc tcpdump -n -C 1000 -z /data/compress.sh -i any -w /data/livedump/capture.pcap $FILTER $FILTER包含src / dstfilter,以便我可以使用-i any 。 原因是,我有两个接口,我想运行在一个单一的线程而不是两个转储。 compress.sh负责将tar分配给另一个CPU核心,压缩数据,给它一个合理的文件名并将其移动到归档位置。 我不能指定两个接口,因此我select使用filter并从any接口转储。 现在,我不做任何家务pipe理,但我计划监控磁盘,当我剩下100G时,我将开始擦拭最旧的文件 – 这应该没问题。 现在; 我的问题 我看到丢包。 这是从一个转储已经运行了几个小时,收集大约250演出pcap文件: 430083369 packets captured 430115470 packets received by filter 32057 packets dropped […]

rsync是否删除源文件夹中的本地文件?

这是我想要做的: 实质上,从一个networking存储设备获取文件同步到另一个networking存储设备。 解决scheme是从源networking存储rsync同步到本地机器。 然后从本地机器到目标networking存储的rsync。 但它只是打我。 我需要从源networking存储中删除的文件在本地机器上被删除。 rsync是否会镜像它们,删除不在目的地的文件? 或者只是减less了所需的数据传输量? 希望我明白了吗?

重新启动后,PHP-FPM不会自动启动

我运行PHP-FPM和Nginx,偶尔出于任何原因,我必须重新启动服务器。 一旦服务器再次运行,nginx服务会自动启动,但是PHP-FPM不会。 当我在sudo /etc/init.d/php-fpm restart后立即运行sudo /etc/init.d/php-fpm restart命令时,可以看到这个结果: $ sudo /etc/init.d/php-fpm restart Stopping php-fpm: [FAILED] Starting php-fpm: [ OK ] 这是预期的行为? 什么是使PHP-FPM自动启动的最佳方式? 在任何地方有configuration选项,还是必须将命令添加到其中一个Linux启动脚本? 谢谢。

为什么应用程序在内存限制的LXC容器中将大文件写入磁盘被OOM杀死?

编辑2:此问题似乎也存在以及3.8.0-25 – generics#37 – Ubuntu的SMP 编辑:我修改了原来的标题“为什么会通过写入与dd文件触发Linux内存不足的经理”的问题? 以更好地反映我担心​​的一般问题如下: 当我写一个超过内存限制(设置为300MB)的文件时,我遇到了一个麻烦的情况,即OOM杀手在我的LXC容器中进行了严酷的查杀过程。 当我在Xen虚拟机(EC2 t1.micro)上运行应用程序时,实际上只有512 MB内存,所以这个问题不会发生,所以文件缓冲方面似乎存在一些问题,涉及容器内存限制。 作为一个简单的例子,我可以演示一个由dd编写的大文件如何导致问题。 再次,这个问题困扰所有的应用程序。 我正在寻求解决应用程序的caching的一般问题变得太大, 我明白我可以如何做“dd”的工作。 场景: 我有一个LXC容器,其中memory.limit_in_bytes设置为300 MB。 我试图dd一个〜500 MB的文件,如下所示: dd if=/dev/zero of=test2 bs=100k count=5010 大概有20%的时间,Linux OOMpipe理器被这个命令触发,一个进程被终止。 不用说,这是非常意想不到的行为; dd是为了模拟在容器内部运行的程序写入的实际“有用的”文件。 详细信息:虽然文件caching变大(260 MB),rss和文件映射似乎保持相当低。 下面是在写入过程中可能看起来像memory.stat的一个例子: cache 278667264 rss 20971520 mapped_file 24576 pgpgin 138147 pgpgout 64993 swap 0 pgfault 55054 pgmajfault 2 inactive_anon 10637312 active_anon 10342400 inactive_file 278339584 active_file […]

链路汇聚(LACP / 802.3ad)最大吞吐量

我在Linux下看到一些关于绑定接口的混淆行为,我想把这种情况抛诸脑后,希望有人能为我解决这个问题。 我有两台服务器:服务器1(S1)有4个1Gbit以太网连接; 服务器2(S2)具有2个1Gbit以太网连接。 两台服务器都运行Ubuntu 12.04,尽pipe内核为3.11.0-15(来自lts-saucy linux-generic软件包)。 两台服务器都将其各自的networking接口绑定到单个bond0接口中,并具有以下configuration(在/etc/network/interfaces ): bond-mode 802.3ad bond-miimon 100 bond-lacp-rate fast bond-slaves eth0 eth1 [eth2 eth3] 在服务器之间有几个惠普交换机(我认为)正确configurationLACP的端口有问题。 现在,链接正在工作 – networkingstream量愉快地stream入和stream出两台机器。 而且所有的接口都在使用,所以不像聚合是完全失败的。 但是,我需要在这两个服务器之间的尽可能多的带宽,我没有得到我期望的〜2Gbit / s。 在我的testing中,我可以观察到,每个服务器似乎都将每个TCP连接(例如,iperf,scp,nfs等)分配给一个从属接口。 基本上所有东西似乎都被限制在最大1千兆位。 通过设置bond-xmit-hash-policy layer3+4 ,我可以使用iperf -c S1 -P2发送两个从接口,但是在服务器端,接收仍然只发生在一个从接口上,因此总吞吐量上限为1Gbit / s,即客户端在两个从接口上显示〜40-50MB / s,服务器在一个从接口上显示〜100MB / s。 在没有设置bond-xmit-hash-policy的情况下,发送也仅限于一个从接口。 我觉得LACP应该允许这种连接捆绑,例如,允许单个scp传输来利用两个主机之间的所有可用接口。 我对LACP的理解错了吗? 还是我错过了一些configuration选项? 任何意见或线索调查将不胜感激!

查找具有特定结尾的文件丢失的目录

我想显示所有的目录,不包含具有特定文件结尾的文件。 所以我尝试使用下面的代码: find . -type d \! -exec test -e '{}/*.ENDING' \; -print 在这个例子中,我想显示所有的目录,不包含结尾.ENDING文件,但是这不起作用。 我的错误在哪里?

Ulimit文件描述符限制不适用于特定的进程

我最近检查了我们的一个redis进程,以便在使用的地方限制哪些内容: cat /proc/<redis-pid>/limits 并惊讶地发现,这是在默认值低: Limit Soft Limit Hard Limit Max open files 4016 4016 我很惊讶,因为我们有以下configuration: # /etc/sysctl.conf fs.file-max = 100000 。 # /etc/security/limits.conf * soft nofile 100000 * hard nofile 100000 。 # /etc/ssh/sshd_config UsePAM yes 。 # /etc/pam.d/sshd session required pam_limits.so 谁能告诉我为什么增加的ulimit没有被应用到正在运行的redis进程? redis进程正在以用户'redis'的方式运行,服务器已经重新启动,因为限制已经增加。 我们在Debian挤压。