Articles of linux

系统重启服务,如果它没有监听端口

我在Debian 8中一直使用Systemd。我使用Restart = on-failure选项来唤醒服务,以防出现故障。 我想知道是否有办法强制重新启动服务,如果它没有监听特定的端口(即使进程仍在运行)。 我之所以需要这个原因是因为我们正在开发新的function来解决这个问题,但这需要一段时间。 同时我们需要一个解决方法。 我已经开发了一个脚本来检查这个状态: #! /bin/bash PORTS=( 1452 542 ) for port in ${PORTS[@]}; do netstat -anp | grep $port > /dev/null 2>&1 if [ "$?" -ne 0 ]; then # Port blocked. Kill the running process and start it again after a while done 这个脚本是使用cron定期触发的。我知道这是一个肮脏的伎俩。 这就是为什么我想在Systemd检查中集成该行为的原因。 那可能吗? 先谢谢你。 干杯, 一个。

Linux没有修改时间(nomtime)

有没有办法来禁用文件系统的mtime? 有一个Filesystem independend noatime选项,但没有“nomtime”。 另外在文件系统ext4和/或btrfs的特定文档,我找不到这个。 这是否存在?

仅使用一个节点设置DRBD

我需要将运行Debian 6的现有存储服务器(具有多TB数据)迁移到HA设置。 我不能简单地closures这个服务器很长的时间(毕竟是HA)。 我计划将此服务器迁移到DRBD群集。 我不能为这个集群购买两台新的服务器。 由于成本的原因,我需要重用现有的服务器作为群集的成员。 请记住,我不能一次closures超过几分钟的任何内容。 我准备了一台新的服务器,运行Debian 8成为“主”。 我需要使用这个“主”服务器来build立一个“裂脑”群集。 将现有旧服务器中的所有数据复制到群集; 将现有的服务切换到集群; 使用Debian 8重新configuration旧服务器,然后将其作为“从服务器”添加到群集中,重新同步数据,最后进行冗余设置。 我已经在新机器上设置了集群,但是,如何继续? 我甚至无法启动drbd服务,因为其他“节点”还不存在… 我从以前的drbdconfiguration开始工作很好…有两个可用的节点。 任何帮助赞赏。

限制对特定用户的KVM虚拟机访问

在我的服务器上,我有一个名为“cards2”的KVM虚拟机。 它是通过执行(以root身份)创build的: # virt-install –connect qemu:///system –virt-type kvm –name cards2 –ram 2048 –disk /var/kvm/cards2.qcow,size=3 –vcpus=8 –cdrom /var/kvm/debian-8.5.0-amd64-netinst.iso –vnc –os-type linux –network network=default 该图片拥有权限: # ls -l /var/kvm/cards2.qcow -rwxr-xr-x 1 libvirt-qemu libvirt-qemu 3221225472 Aug 17 18:49 /var/kvm/cards2.qcow 但是我注意到, 任何使用SSH访问的用户都可以通过执行以下命令来访问虚拟机: virt-viewer –connect qemu+ssh://[email protected]/system vmname (注意,这个命令是远程执行的,而不是在服务器上执行的,它通过SSH隧道连接到连接URI为qemu+ssh://[email protected]的pipe理程序) 用户username只是username组的一个成员。 使用username帐户进行SSH连接时,虚拟机列表显示为空: $ virsh list –all Id Name State —————————————————- 在通过SSH执行以下操作时,我也无法使用套接字进行连接: $ […]

上限总发送数据

限制总月度外发数据的最简单方法是什么? 我不希望在很短的时间间隔内节省带宽,我的目标是确保我保持每月带宽成本的支出限制,即使我得到DDOS并且无法响应AWS限制监视器的警报。 运行在AWS EC2上的Ubuntu上运行的Node.js,因此可以在不同的层次上实现。

如何解决闰秒睡眠问题,无需重新启动

我发现,在最新的闰秒插入(2016-12-31 23:59:60)后,我们的CentOS7应用程序的工作线程在作业之间hibernate1秒,开始立即唤醒睡眠线程,而不是一秒钟。 一般而言,所有的睡眠都比预期的醒来时间提前1秒醒来。 最简单的工作解决scheme是重新启动盒子。 但在我们的情况下这是不可取的。 有没有办法解决这个问题,而无需重新启动? PS。 作为参考,这里是一个简单的C ++程序,它重现了这个问题。 #include <boost/date_time.hpp> #include <boost/thread.hpp> #include <iostream> using namespace std; // this has to be run in a thread to be able to detect the issue void check_thread() { size_t expected_delay = 1000; cout << "Expected delay: " << expected_delay << " ms" << endl; boost::posix_time::ptime t1 […]

ZFS池安装不正确; 找不到所有文件

我在一个从FreeBSD 11.0服务器转移到Ubuntu 16.04.2 LTS服务器的两个磁盘上有一个ZFS池(镜像RAID)。 导入池后,我看到: NAME USED AVAIL REFER MOUNTPOINT zroot 993G 790G 104K /mnt/zfs zroot/ROOT 989G 790G 96K none zroot/ROOT/default 989G 790G 989G none zroot/tmp 140K 790G 140K none zroot/usr 3.37G 790G 96K none zroot/usr/home 2.15G 790G 2.15G none zroot/usr/ports 640M 790G 640M none zroot/usr/src 608M 790G 608M none zroot/var 1.66M 790G 96K none […]

如何获得IPv6的工作?

我的托pipe服务提供商提供了以下信息: 子网:2a02:f99:0:64 :: / 64 网关:2a02:f99:0:64 :: 1 所以我做了(是的, eth3是正确的界面) ip addr add 2a02:f99:0:64::2/64 dev eth3 ip -6 route add ::/0 via 2a02:f99:0:64::1 dev eth3 但 $ ip -6 neigh show 2a02:f99:0:64::1 dev eth3 FAILED $ ping6 google.com PING google.com(ams16s30-in-x0e.1e100.net) 56 data bytes From 2a02:f99:0:64::2 icmp_seq=1 Destination unreachable: Address unreachable … 我也试过了 ip -6 route […]

我怎样才能挂载在Linux的UFS驱动器?

我正在考虑从FreeNAS切换到OpenFiler。 我看到的一个问题是,我的NAS中的所有硬盘都格式化为UFS。 我尝试过,但无法在Fedora中安装它们。 有没有什么办法可以从UFS硬盘中提取数据而不使用FreeBSD操作系统?

限制Red Hat Linux中每个用户的资源使用情况

我需要在每个用户的基础上限制大量进程的CPU,内存和networking带宽使用量。 用户实际上只是几个守护进程的逻辑分组,而不是真人。 所以不同的用户有类似的(但不一定是相同的)一组正在运行的进程。 不幸的是,我甚至没有经验过Linux用户,所以我不知道如何得到它。 你能指出可能的方法来完成这个吗?