Questions tagged «linux»

Linux是基于Linux内核的类UNIX开源操作系统的通用术语。

1
从终端会话中恢复正在运行的脚本
因此,我正在使用GNU屏幕来管理多个正在运行的脚本/程序。多路复用和可分离性很有帮助。 我从磁盘上删除了一个脚本,现在在查找备份时遇到了一些麻烦。但是,其中一个终端会话正在执行脚本,然后删除了该文件,该脚本继续正常运行。 有没有办法劫持当前正在运行脚本的终端会话以恢复该文件的内容?

1
为什么从接口中删除未使用的IP地址会杀死与该地址无关的连接
昨天我在数据中心内快速重新安装了(物理)服务器,由于我的时间很短并且无法轻松访问我们的数据库,因此我为它分配了一个我知道可用的IP,以后我可以通过它分配正确的地址,然后从温暖的地方继续进行配置。 今天,我登录到服务器(位于172.16.130.10/22)并执行以下操作: ip addr add 172.16.128.67/22 dev eth0 从本地工作站上的一个终端,我检查它是否响应了新地址上的ping并通过它登录: $ ping 172.16.128.67 PING 172.16.128.67 (172.16.128.67) 56(84) bytes of data. 64 bytes from 172.16.128.67: icmp_req=2 ttl=62 time=3.61 ms 64 bytes from 172.16.128.67: icmp_req=3 ttl=62 time=4.87 ms ^C $ ssh 172.16.128.67 到目前为止,我已经通过新的IP地址连接了,不再需要旧的IP地址。我继续将其删除: ip addr del 172.16.130.10/22 dev eth0 但是,一旦Enter我的SSH会话冻结,我就不再能够连接。我必须要求现场操作员为我重新启动服务器。 我哪里做错了?为什么删除该地址会终止我的连接?

4
如何禁用AAAA查找?
...来弥补无法控制的DNS服务器损坏。 我们的问题:我们部署了嵌入式设备,这些设备在各种(主要是纯IPv4的)站点上收集传感器数据。一些站点的网络维护不佳,例如配置错误或其他原因破坏了DNS缓存和/或防火墙,它们要么完全忽略AAAA查询,要么以破碎的响应(例如错误的源IP!)对它们进行响应。作为设施部门的外部供应商,我们几乎对(有时是勉强的)IT部门毫无影响。他们在不久的将来修复DNS服务器/防火墙的机会微乎其微。 对我们的设备的影响是,对于每个gethostbyname(),进程必须等待直到AAAA查询超时,此时某些进程已经完全超时了其连接尝试。 我正在寻找的解决方案是... 系统范围内。我无法单独重新配置数十个应用程序 非永久性和可配置的。我们需要在修复/推出IPv6的地方/时间(重新)启用它。重新启动就可以了。 如果解决方案需要替换glibc之类的核心库,则应该从一个维护良好的已知存储库(例如Debian Testing,Ubuntu Universe,EPEL)中获得替换库包。出于多种原因,甚至我都不知道从何开始,所以无法进行自我构建,因此我根本不列出它们。 最明显的解决方案是配置解析器库,例如通过/ etc / { resolv,nsswitch,gai } .conf而不查询AAAA记录。中resolv.conf选项no-inet6建议作为这里会正是我所期待的。不幸的是,它没有实现,至少在我们的系统上没有实现(在Debian 7上为libc6-2.13-38 + deb7u4;在Ubuntu 14.04上为libc6-2.19-0ubuntu6.3) 那怎么办 人们发现了以下在SF和其他地方建议的方法,但它们都不起作用: 完全禁用IPv6,例如通过将ipv6 LKM列入/etc/modprobe.d/或中sysctl -w net.ipv6.conf.all.disable_ipv6=1。(出于好奇:解析器为什么要在禁用IPv6的情况下要求AAAA?) options inet6从/etc/resolv.conf中删除。它最初不存在,inet6这些天默认情况下只是启用了。 options single-request在/etc/resolv.conf中设置。这只能确保A和AAAA查询是顺序执行的,而不是并行执行的 precedence在/etc/gai.conf中进行更改。这不会影响DNS查询,只会影响如何处理多个答复。 使用外部解析器(或运行绕过损坏的DNS服务器的本地解析器守护程序)会有所帮助,但通常会被公司的防火墙策略所禁止。而且它会使内部资源无法访问。 替代的丑陋想法: 在本地主机上运行DNS缓存。将其配置为转发所有非AAAA查询,但以NOERROR或NXDOMAIN响应AAAA查询(取决于相应A查询的结果)。我不知道DNS缓存能够执行此操作。 使用一些巧妙的iptables u32匹配或Ondrej Caletka的iptables DNS模块来匹配AAAA查询,以便icmp拒绝它们(解析程序库对此有何反应?),或将它们重定向到响应该错误的本地DNS服务器带有空NOERROR的所有内容。 请注意,关于SE也有类似的相关问题。我的问题有所不同,因为它阐述了我要解决的实际问题,因为它列出了明确的要求,因为它将一些经常被建议的非工作解决方案列入了黑名单,并且它不是特定于单个应用程序的。在讨论之后,我发表了我的问题。 IPv6 DNS查找 没有IPv6地址时,如何禁用请求AAAA记录? 禁用libcurl中的AAAA查找


4
当剩余大量可用内存时,为什么要使用交换?
我有一个不错的Web(专用)服务器,具有良好的内存资源: System information Server load 2.19 (8 CPUs) Memory Used 29.53% (4,804,144 of 16,267,652) Swap Used 10.52% (220,612 of 2,097,136) 如您所见,当有足够的可用内存时,我的服务器正在使用交换。 这是正常现象还是配置或编码有问题? 注意: 由于某种原因,我的MySQL进程占用了超过160%的CPU能力。我不知道为什么,但同时用户不超过70个...
35 linux  mysql  php 

4
找出哪个进程正在更改文件
我试图找到一种可靠的方法来查找机器上的哪个进程正在更改配置文件(/etc/hosts具体来说)。 我知道我可以lsof /etc/hosts用来找出当前打开了哪些进程的文件,但这无济于事,因为该进程显然是在打开文件,写入文件然后再次将其关闭。 我还查看了lsof的重复选项(-r),但它似乎仅以每秒一次的速度运行,这可能永远不会捕获正在进行的写入。 我知道有几个用于监视文件系统更改的工具,但是在这种情况下,我想知道哪个进程负责,这意味着在执行过程中将其捕获。

3
禁用rpm安装的公共密钥检查
我想用一些有用的软件包制作DVD(例如php-common)。唯一的问题是,如果我尝试在未连接互联网的计算机上进行安装,则无法验证公钥。 场景是这样的: 我下载了RPM,然后将它们复制到DVD。 我在笔记本电脑上安装了CentOS 5.5(它没有互联网连接)。 我尝试使用yum(或rpm -i,或其他)安装一个。 我收到以下错误:未安装“程序包”的公钥。 我该如何绕过呢?
35 linux  centos  yum  rpm  public-key 

2
将MySQL的绑定地址设置为0.0.0.0有多糟糕?
我试图允许远程服务器访问当前与Web应用程序共享Linux服务器的MySQL实例。根据文档,唯一可能的方法(除非我不能正确理解)是将bind-address指令设置为0.0.0.0,这导致MySQL允许从任何可以产生有效用户的IP进行访问。 因此,有两个问题: 这对安全有多有害? 有没有更好的方法可以与MySQL进行本地和远程交互?
35 linux  mysql  security 



6
合并Linux中的2个目录树而不进行复制?
我有两个具有相似布局的目录树,即 . |-- dir1 | |-- a | | |-- file1.txt | | `-- file2.txt | |-- b | | `-- file3.txt | `-- c | `-- file4.txt `-- dir2 |-- a | |-- file5.txt | `-- file6.txt |-- b | |-- file7.txt | `-- file8.txt `-- c |-- file10.txt …
35 linux  bash  files 

4
有人真的了解Linux / BSD中的HFSC调度如何工作吗?
我阅读了有关HFSC的SIGCOMM '97 PostScript原始论文,从技术上讲,但是我了解基本概念。您可以指定凸或凹服务曲线,而不是给出线性服务曲线(与几乎所有其他调度算法一样),从而可以解耦带宽和延迟。但是,即使本文提到了所使用的调度算法的类型(实时和链接共享),每个调度类始终仅提及一条曲线(通过指定该曲线来实现解耦,为此仅需要一条曲线) )。 现在,已经使用ALTQ调度框架为BSD(OpenBSD,FreeBSD等)实现了HFSC,并已通过TC调度框架(iproute2的一部分)在Linux上实现了HFSC。两种实现都增加了两条额外的服务曲线,这不在原始文件中!实时服务曲线和上限服务曲线。同样,请注意,原始论文提到了两种调度算法(实时和链接共享),但在那篇论文中,它们都使用一条服务曲线。正如您当前在BSD和Linux中所发现的那样,从来没有两个独立的服务曲线。 更糟糕的是,某些版本的ALTQ似乎为HSFC添加了额外的队列优先级(在原始文件中也没有优先级)。我发现一些BSD HowTo提到了此优先级设置(即使最新的ALTQ版本的手册页不知道HSFC的此类参数,因此正式地甚至不存在)。 这一切都使得HFSC调度比原始论文中描述的算法更加复杂,并且互联网上有很多教程经常相互矛盾,其中一个声称与另一个相反。这可能是为什么似乎没有人真正了解HFSC调度工作原理的主要原因。在我提出问题之前,我们需要某种示例设置。我将使用一个非常简单的示例,如下图所示: 替代文字http://f.imagehost.org/0177/hfsc-test-setup.png 以下是一些我无法回答的问题,因为这些教程相互矛盾: 我到底需要什么实时曲线?假设A1,A2,B1,B2都是128 kbit / s的链路共享(任何一个都没有实时曲线),那么如果根要分配512 kbit / s,则每个共享将获得128 kbit / s。 A和B当然都是256 kbit / s,对吗?为什么还要另外给A1和B1实时速率为128 kbit / s的曲线?这有什么好处?给予这两个更高的优先级?根据原始论文,我可以通过使用曲线来给它们更高的优先级,这毕竟是HFSC的全部意义所在。通过给两个类别提供[256kbit / s 20ms 128kbit / s]的曲线,它们的优先级都自动达到A2和B2的两倍(平均仍然仅获得128 kbit / s) 实时带宽是否计入链路共享带宽?例如,如果A1和B1都仅具有64kbit / s的实时和64kbit / s的链路共享带宽,那是否意味着一旦通过实时为64kbit / s提供服务,它们的链路共享要求也将得到满足(它们可能会获得多余的带宽,但请忽略一秒钟),或者这意味着它们通过链路共享又获得了64 kbit / s?那么,每个类别是否都具有实时和链接共享的带宽“需求”?或者,如果某个类别的要求比实时曲线更高,那么它的链接份额曲线要比实时曲线高(当前的链接份额要求等于指定的链接份额要求减去已为此提供的实时带宽)类)? 上限曲线是否也适用于实时,仅适用于链接共享或两者都适用?有些教程说一种方式,有些说另一种方式。甚至有人声称上限是实时带宽+链路共享带宽的最大值?真相是什么? 假设A2和B2均为128 kbit / …

6
Bash循环-当我在命令中按Control-C时如何停止循环?
我正在同步一些目录。我有一个bash终端打开,正在执行如下操作: for DIR in * ; do rsync -a $DIR example.com:somewhere/ ; done 但是,如果要停止全部操作,请按Control-C。这样就停止了rsync,但随后继续进行下一个。在这种情况下,我意识到发生了什么,然后像疯子一样按Control-C,直到一切恢复正常。 有什么办法可以“解决”这个问题。我想要它,如果我有这样的循环,然后按Control-C,它将使我回到我的bash shell中。

7
ls挂到某个目录
有一个特定的目录(/var/www),当我运行时ls(带有或不带有某些选项),该命令将挂起并且永远不会完成。中的大约只有10-15个文件和目录/var/www。通常只是文本文件。以下是一些调查信息: [me@server www]$ df . Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_dev-lv_root 50G 19G 29G 40% / [me@server www]$ df -i . Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/vg_dev-lv_root 3.2M 435K 2.8M 14% / find工作正常。另外,我可以输入内容cd /var/www/并按TAB键,然后再按Enter键,它将成功在其中按Tab键完成所有文件/目录的列表: [me@server www]$ cd /var/www/ cgi-bin/ create_vhost.sh html/ manual/ phpMyAdmin/ scripts/ usage/ conf/ …
35 linux  centos  centos6 

14
文件服务器-存储配置:RAID还是LVM还是ZFS还有其他……?
我们是一家从事视频编辑等业务的小公司,并且需要一个地方来保存大型媒体文件的备份副本并使其易于共享。 我有一个装有Ubuntu Server和4 x 500 GB驱动器的盒子。目前,它们与Samba一起设置为Mac / Windows工作站可以看到的四个共享文件夹,但是我想要一个更好的解决方案。这样做的主要原因有两个: 500 GB确实不够大(某些项目较大) 管理当前设置非常麻烦,因为单个硬盘驱动器具有不同数量的可用空间和重复数据(用于备份)。这是混淆了现在,一旦有多个服务器只会变得更糟。(“该项目在share4中的sever2上”等) 因此,我需要一种组合硬盘驱动器的方式,以避免由于单个驱动器故障而导致完全数据丢失,因此用户在每个服务器上只能看到一个共享。我已经完成了Linux软件RAID5的使用,并且体验较差,但是会再次尝试。LVM看起来还不错,但似乎没人使用它。ZFS看起来很有趣,但是它相对“新”。 组合方便用户使用的硬盘的最有效,风险最小的方法是什么? 编辑:这里的目标基本上是创建包含任意数量的硬盘但限制最终用户复杂性的服务器。(即,每个服务器看到一个“文件夹”)在这里备份数据不是问题,但是每种解决方案如何响应硬件故障是一个严重的问题。这就是为什么我将RAID,LVM,ZFS和谁知道的东西混在一起的原因。 我以前在RAID5上的经验也是在Ubuntu Server机器上进行的,有一些棘手且不太可能的情况导致完全数据丢失。我可以再次避免这种情况,但是感觉是我正在向系统添加不必要的额外故障点。 我没有使用RAID10,但是我们使用的是商用硬件,每个盒中最多的数据驱动器几乎固定为6。我们有很多500 GB驱动器,而1.5 TB非常小。(不过,仍然为至少一台服务器提供一个选项) 我没有使用LVM的经验,并且阅读了有关如何处理驱动器故障的冲突报告。如果(非条带化的)LVM安装程序可以处理单个驱动器发生故障,并且仅松散该驱动器上存储了一部分文件的文件(并且大部分文件仅存储在单个驱动器上),我们甚至可以忍受。 但是,只要我必须学习全新的知识,我就可以一直学习ZFS。但是,与LVM不同,我还必须更改操作系统(?),以增加我所在的位置和想要成为的位置之间的距离。我在uni上使用过solaris版本,但并不介意。 在IT领域的另一端,我想我可能还会探索FreeNAS和/或Openfiler,但这并不能真正解决如何组合驱动器的问题。

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.