Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

4
如何检索可能的ssh攻击者的IP地址?
我刚刚cat /var/log/auth.log登录并看到,有很多| grep "Failed password for"记录。 但是,有两种可能的记录类型-有效/无效用户。它使我的尝试变得复杂| cut他们的。 我想看到创建一个列表(文本文件),其中包含可能的攻击者的IP地址以及每个IP地址的尝试次数。有什么简单的方法可以创建它吗? 另外,仅涉及ssh:/var/log/auth.log在列出可能的攻击者时,我应该考虑所有记录吗? 我的带有隐藏数字的“ auth.log”示例: cat /var/log/auth.log | grep "Failed password for" | sed 's/[0-9]/1/g' | sort -u | tail 结果: Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user ucpss from 111.11.111.111 port 11111 ssh1 Mar 11 11:11:11 vm11111 sshd[111]: Failed …

4
管道旁的空间
我见过的history | grep blah和history |grep blah; 并且history|grep blah也可以使用,尽管似乎没有人使用过它。 空间中是否有任何意义(例如,到/来自不同命令的管道要求使用不同的空间),还是总是武断的?
17 bash  shell  pipe 



3
LVM在哪里存储其配置?
我试图了解LVM如何/在何处存储其配置数据。 是否pvcreate /dev/sdb将任何元数据写入/dev/sdb?如果是这样写的是什么? vgcreate data /dev/sdb /dev/sdc卷组的配置存储在哪里? LVM在逻辑盘区和物理盘区之间的映射存储在哪里? LVM配置中是否有任何特定于计算机的配置? 假设我有一个配置有2个磁盘的计算机到一个逻辑卷中,是否可以将这些磁盘从该计算机中取出并放入另一台计算机中,并希望该逻辑卷可以在新计算机上工作?
17 lvm 

4
fork和exec如何工作?
我没有太多的经验,只是试图参与到流程中,它们如何从用户级别解释为硬件。 因此,当从外壳启动命令时fork(),它将继承该命令的子进程并将exec()该子进程加载到内存中并执行。 如果子流程包含父流程(原始流程)的所有属性,那么该子流程有什么需求?原始进程也可能已加载到内存中。 这fork和exec概念适用于UNIX中的所有可执行程序吗?是否也喜欢用于shell脚本或仅用于命令?它也适用于shell内置命令吗? 如果我将执行命令/脚本,何时使用写时复制概念? 抱歉一次问很多问题,但是当我想到任何命令执行时,所有这些问题立刻浮现在脑海。
17 fork  exec 

1
以一定深度的子文件夹递归rsync
我想rsync递归地创建一个文件夹,但只希望包含一定深度的子文件夹。 例如,我想要像这样的1,2,3或4个子文件夹的深度: source/ ├── subfolder 1 │ ├── subsubfolder │ │ ├── subsubsubfolder │ │ │ └── wanted with depth 4.txt │ │ └── wanted with depth 3.txt │ └── wanted with depth 2.txt ├── subfolder 2 │ └── wanted with depth 2.txt └── wanted with depth 1.txt

6
vi命令行,转到行和列
很长时间以来,我一直在混合使用emacs和vi(vim)。他们每个人都有其优势。我解析像过程这样的编译的错误输出并获得行号和列号,但是我只能emacs用来直接进入行号和列号: emacs +15:25 myfile.xml 与vi我只有行号(根据手册页) vi +15 myfile.xml 有一个选项可以将光标移到模式(vi +/pattern myfile.xml)上,而我从未使用过。但这对我没有帮助,因为模式并非始终是文件中的第一个匹配项。 我怎样才能开始vi进入文件第15行的第25列?我可以在-c选项上做些什么吗?
17 vim  cursor 


1
设置i3锁的图像:“无法加载图像x:内存不足”
我使用此命令锁定屏幕: i3lock -i /home/freyja/pics/owl.jpg 屏幕被锁定,但是没有图片(只有白色背景)。从控制台调用时,命令将显示: Could not load image /home/freyja/pics/owl.jpg: out of memory. 我该怎么办?整个系统是否缺少内存(似乎不是这样),或者只是i3锁有一些内部限制?图片很大(HD),但分辨率与我的屏幕完全匹配,所以我不想使用较小的分辨率。

6
如何防止`mv`将文件集合移动到单个常规文件中?
由于我犯了一个愚蠢的错误,我失去了一部分音频收藏。:-(很 高兴我有一个最近的备份,但是它仍然很烦人。除了您的确如此,另一个作弊的罪魁祸首是mv,它将显示如下: 音频文件有一个特定的方案: ARTIST - Some Title YY.mp3 YY2位数字的年份规范在哪里。 mkdir 90<invisible control character> (到现在为止,我还不知道我实际上键入了三分之一的多余字符,这是不可见的……!) 我不想将所有1990年代的音乐都放在一个目录中,而不是全部放在一个目录中。所以我输入: find . -name '* 9?.mp3' -exec mv {} 90 \; 不难理解发生了什么事吗?:-> (灾难性的)结果是一个名为'90 something ' 的原始空目录(其中某些东西是“不可见的”控制字符)和一个名为'90'的单个文件,被覆盖了n次。 所有文件都消失了。:-(((显然) 希望mv能够及时检查目标“文件”的签名(请记住* NIX:Everything Is A File)是否以d------(例如drwxr-xr-x)开头。当然,目的地是否存在。当您只是简单地忘记首先mkdir进入目录时,上述情形就有一个变体。(但是,当然,您认为它在那里...) 甚至从首字母W开始的我们讨厌的OS都这样做。如果需要,甚至会提示您指定目标的类型(文件?目录?)。 因此,我想知道我们* NIXers是否仍必须为自己编写“ mv脚本”,以避免这些最不希望的意外。
17 mv 

1
BOOTPROTO =无| 静态 dhcp和/etc/resolv.conf
它BOOTPROTO=none在/etc/sysconfig/network-scripts/ifcfg-eth0文件中说的是什么意思。 我记得以前曾经有过BOOTPROTO=static,告诉我们如果IPADDR=<x.x.x.x>给出了,服务器将提供指定的IP地址,这非常清楚直接。同样,BOOTPROTO=dhcp将寻找DHCP服务器以获得动态IP地址。Redhat说: BOOTPROTO=protocol where protocol is one of the following: none — No boot-time protocol should be used. bootp — The BOOTP protocol should be used. dhcp — The DHCP protocol should be used. 这是否意味着如果我们不在ifcfg-eth0文件中指定IP,它将寻找DHCP服务器,如果指定了IP,它将获取该静态IP? 即使IPADDR=在BOOTPROTO设置为none的情况下指定了IP地址,它仍然有机会查找DHCP服务器并修改/etc/resolv.conf 吗? 上下文:-我们移动了数据中心,不得不更改许多服务器中的IP地址。我们已经/etc/resolv.conf使用新的DNS服务器的IP地址进行了修改,但是由于某些原因,在某些服务器中/etc/resolv.conf被清空了,或者想出了旧的DNS IP地址。在/etc/init.d/network脚本中,我看到它正在调用/etc/sysconfig/network-scripts/network-functions它具有此功能。这是罪魁祸首吗? # Invoke this when /etc/resolv.conf has changed: change_resolv_conf () { s=$(/bin/grep …

1
找到-maxdepth 0不返回任何输出
我试图了解如何使用find -maxdepth 0选项。 我有以下目录结构。 --> file1 --> parent --> child1 --> file1 --> file2 --> child2 --> file1 --> file2 --> file1 现在,我执行find以下命令。 find ./parent -maxdepth 0 -name "file1" find ./ -maxdepth 0 -name "file1" find . -maxdepth 0 -name "file1" 如果没有上述find命令,则返回file1。 从的手册页find,我看到以下信息。 -maxdepth 0表示仅将测试和操作应用于命令行参数。 我搜索了一些带有-maxdepth 0option的示例,但找不到合适的示例。 我的find版本是 find --version …
17 find 

4
如何强制Linux内核“冻结”(或几乎冻结)几百毫秒
我们正在非实时内核(CentOS 6)上运行实时进程,并且这种情况可能不会改变。 我们有一个流媒体视频应用程序,它需要一个定制的FPGA每次连续1.5小时连续提供约500 MB / s的PCIe流量。该应用程序运行良好-大多数时候。但是,在某些情况下,内核似乎一次最多只能停止响应对PCIe或内存请求的服务,最长可达500毫秒。这似乎是在来自另一个线程的突发文件IO期间发生的。我发现无法通过在主应用程序运行时仅从用户空间进行大量虚拟文件IO来尝试复制此问题。 有没有一种方法可以强制(模拟)Linux内核的全局“冻结”(特别是停止PCIe或所有DDR3内存访问等操作),以便我们可以重现此问题? 目前,我们已将最多10毫秒的缓冲实现到内部FPGA存储器中,但这还不够。我们可以缓冲到FPGA DDR3,然后转储到主机,但是我们需要一种在胁迫下测试此新功能的方法。 我们不希望内核永久冻结或锁定。我们希望能够设置时间间隔。 我正在寻找一些方法来/proc/sys/vm临时编写魔术值,这些临时值会使系统虚拟爬网,然后在几百毫秒后恢复原状,但是寻找打破它的可能方法的数量并不适合像我这样的新手(https://www.kernel.org/doc/Documentation/sysctl/vm.txt)。也许有些numactl魔术?

1
跟踪没有读取权限的可执行文件
strace在可执行文件上使用时,我在Ubuntu 14.04上发现了一些令人惊讶的行为,但我没有读取权限。我想知道这是否是错误,还是某些标准规定了这种晦涩的行为。 首先,让我们看看当我在后台启动普通可执行文件并将其附加时会发生什么。正如预期的那样: $ /bin/sleep 100 & [2] 8078 $ strace -p 8078 Process 8078 attached restart_syscall(<... resuming interrupted call ...> 接下来,我尝试一个可执行文件,该文件没有读取权限: ---x--x--x 1 root root 26280 Sep 3 09:37 sleep* 不允许附加到此运行进程: $ ./sleep 100 & [1] 8089 $ strace -p 8089 strace: attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted 这也是我所期望的。如果我可以简单地将调试器附加到进程中并以这种方式有效地拥有对可执行文件的读取权限,那么在没有读取权限的情况下授予执行权限不会有什么好处。 …

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.