小编Kiw*_*iwy的帖子

使用 find 命令查找文件夹忽略大小写

我想知道是否存在特定文件夹。我使用了以下命令

find /mnt/md0/ -maxdepth 1 -name 'dcn'||'DCN'
Run Code Online (Sandbox Code Playgroud)

我想知道文件夹名称是 DCN 还是 dcn 。
我该怎么做?

linux find

5
推荐指数
2
解决办法
3832
查看次数

如何使用 lsof 来识别传入的 TCP 连接?

我想知道我的服务器是否与远程服务器建立了连接,或者远程服务器是否尝试访问我的服务器。我试图阅读输出lsof并获取以下信息:

lsof -i TCP:25 
 USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
master   2657    root   12u  IPv4     8086      0t0  TCP *:smtp (LISTEN)
smtpd   12950 postfix    6u  IPv4     8086      0t0  TCP *:smtp (LISTEN)
smtpd   12950 postfix    9u  IPv4 35762406      0t0  TCP hostname:smtp->spe.cif.ic.IP:55277 (ESTABLISHED)
smtp    13007 postfix   13u  IPv4 35762309      0t0  TCP hostname:34434->fake.VVVVV.fr:smtp (ESTABLISHED)
smtpd   14188 postfix    6u  IPv4     8086      0t0  TCP *:smtp (LISTEN)
smtpd   14188 postfix    9u  IPv4 35748921      0t0  TCP hostname:smtp->XX.XX.XX.XX:55912 (ESTABLISHED)
smtpd   14897 postfix    6u  IPv4     8086      0t0 …
Run Code Online (Sandbox Code Playgroud)

lsof tcp netstat

5
推荐指数
2
解决办法
8253
查看次数

如何确保 iptables 完全禁用?

我想完全禁用 iptables。我按照指示

/etc/init.d/iptables close
Run Code Online (Sandbox Code Playgroud)

它说在那里 No such file or directory

[root@dataapp02 tmp]# service iptables stop
Redirecting to /bin/systemctl stop  iptables.service
Failed to stop iptables.service: Unit iptables.service not loaded.
Run Code Online (Sandbox Code Playgroud)

我找到了另一个命令 firewalld

[root@dataapp02 tmp]# service firewalld stop
Redirecting to /bin/systemctl stop  firewalld.service
Run Code Online (Sandbox Code Playgroud)

到目前为止,我不确定 iptables 是否被禁用?

如何检查 iptables 是否禁用。

在我的电脑上我可以打开

http://mirror.centos.org/centos/7/os/x86_64/repodata/repomd.xml
Run Code Online (Sandbox Code Playgroud)

但是在带有防火墙、iptables 和 http 代理白名单的本地计算机上,它说连接超时。

security firewall iptables

5
推荐指数
1
解决办法
2万
查看次数

如何根据时间戳查找文件

如何查找基于特定时间戳创建或修改的文件。

假设时间戳是 date +%d-%m-%y_%H.%M

您能否建议一个基于特定时间戳获取文件的命令?

linux find date

5
推荐指数
1
解决办法
2万
查看次数

使用 sudo 通过 SSH 执行多个命令

#!/bin/bash
while IFS="," read -r f1 f2
do
 username="testuser"
 SSHPASS='abcde' sshpass -e ssh -t "$username@$f1" "sudo su - root -c 'yum -y install wget'"< /dev/null ;  
done < Input.txt
Run Code Online (Sandbox Code Playgroud)

现在我不仅想wget安装,还想执行一个脚本。
例如:Grep 并检查服务是否正在运行,删除不需要的文件夹等。
我已经尝试过:

#!/bin/bash
while IFS="," read -r f1 f2
do
  username="testuser"
  SSHPASS='abcde' sshpass -e ssh -t "$username@$f1" "sudo su - root -c
  if [ -d /opt/xxxx ]; then
    rm -rf /opt/xxxx
  if [ -d /etc/xxxx ]; then
    rm -rf /etc/xxxx
  fi"< /dev/null ;
done < Input.txt
Run Code Online (Sandbox Code Playgroud)

看来不行。我如何传递一个脚本以在远程计算机上以 …

sudo shell-script sshpass

5
推荐指数
1
解决办法
7592
查看次数

Debian 9 未检测到 hdmi 端口中的监视器

我最近安装了 Debian 9。一切正常,唯一的问题是它没有在 hdmi 端口检测到我的显示器。我使用的是戴尔 Inspiron 15 游戏笔记本电脑。

xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192                                                                
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm                                       
   1920x1080     60.05*+  59.93    48.04                                                                                             
   1680x1050     59.95    59.88                                                                                                      
   1600x1024     60.17                                                                                                               
   [....]                                                                                             
   512x384       60.00                                                                                                               
   400x300       60.32    56.34                                                                                                      
   320x240       60.05                                                                                                               
DP-1 disconnected (normal left inverted right x axis y axis)                                                                         
HDMI-1 disconnected (normal left inverted right x axis y axis)
Run Code Online (Sandbox Code Playgroud)

lspci -nn | grep …

debian hdmi

4
推荐指数
1
解决办法
2万
查看次数

在 AIX 上重现磁盘使用命令的“--max-depth=”开关

当我在 Linux/GNU 发行版环境中工作时,我经常使用那个美妙的命令

du --max-depth=1 /
Run Code Online (Sandbox Code Playgroud)

这为您提供了root目录中每个文件夹的大小。今天我在 AIX 工作,而 sysadmin 不想听说 GNU。
是否有任何工具或命令行允许--max-depth在 AIX 上为du命令重现开关?

disk-usage aix

3
推荐指数
1
解决办法
1万
查看次数

为什么在 /proc/[PID]/io 中忽略了 memmap IO

我有一个问题 /proc/[PID]/io 和 memmap 我需要分析使用 python 库astropy 的应用程序 IO 。
我遇到的问题之一是 /proc/[PID]/io.io 中的 IO 读/写总字节数不正确。

我有一个脚本copy.sh

#!/bin/bash
cp huge.fits huge.2.fits
#python copyfits.py
#python copyfitsMemmapOFF.py
sleep 5 
cat /proc/$$/io
Run Code Online (Sandbox Code Playgroud)

我注释了cp要为每个测试运行的行和行。

copyfits.py 包含:

from astropy.io import fits    
hdulist = fits.open('huge.fits', mode='readonly')
hdulist.writeto('huge.2.fits')
hdulist.close()
Run Code Online (Sandbox Code Playgroud)

copyfitsMemmapOFF.py 包含:

    from astropy.io import fits    
    hdulist = fits.open('huge.fits', mode='readonly', memmap=False)
    hdulist.writeto('huge.2.fits')
    hdulist.close()
Run Code Online (Sandbox Code Playgroud)

下面是每个解决方案的 IO 结果:

cp huge.fits huge.2.fits

rchar: 9749929202
wchar: 9749551680
Run Code Online (Sandbox Code Playgroud)

python copyfits.py

**rchar: 8399421**
wchar: 9749551685
Run Code Online (Sandbox Code Playgroud)

python copyfitsMemmapOFF.py

rchar: 9757502959 …
Run Code Online (Sandbox Code Playgroud)

memory io proc

3
推荐指数
1
解决办法
255
查看次数

/proc/[PID]/stat 是否显示有关子进程的累积 CPU 统计信息

我不确定是否正确表达了这个问题,我已经尝试阅读man proc,但我无法找到正确的答案,也找不到验证它的简单方法。
我尝试获取一个 PID 的 CPU/RAM 消耗,但我不知道该程序将投射多少个子进程,我想获得 CPU 和 RAM 消耗的总量,而不仅仅是主进程。
我知道/proc/[PID]/io通过所有子进程确实累积的事实和经验,但我想知道并在可能的情况下提供证据是否同样适用于/proc/[PID]/stat.

proc

2
推荐指数
1
解决办法
3477
查看次数

Netstat 没有将我的机器 IP 显示为侦听端口 22

我可以通过 ssh 连接到机器。
但是我的机器没有显示为侦听端口 22。
下面是我看到的。
它显示为侦听端口 53、21、8080、8443 等。但没有 22(ssh) 的条目。
我的机器IP是10.8.113.30。操作系统是windriver linux。
为什么是这样?

netstat -antu | grep LISTEN 
tcp        0      0 127.0.0.1:8083          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:8084          0.0.0.0:*               LISTEN     
tcp        0      0 10.8.113.30:8021        0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:8021          0.0.0.0:*               LISTEN     
tcp        0      0 10.8.113.30:21          0.0.0.0:*               LISTEN     
tcp        0      0 10.8.113.30:53          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN     
tcp        0      0 10.8.113.30:8443        0.0.0.0:*               LISTEN     
tcp …
Run Code Online (Sandbox Code Playgroud)

linux netstat

1
推荐指数
1
解决办法
1921
查看次数

在 awk 中从 FILENAME 中提取值并将其用作新字段

我正在处理命名Event_42417555_2018-05-23_16\:45\:28-log.txt和格式如下的CSV 文件:

timestamp;fullpath;event;size
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_OPEN;2324
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_ACCESS;2324
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_CLOSE_NOWRITE;2324
1521540649.02;/home/workdir/quad_list_14.json;IN_OPEN;2160
1521540649.03;/home/workdir/quad_list_14.json;IN_ACCESS;2160
1521540649.03;/home/workdir/quad_list_14.json;IN_CLOSE_NOWRITE;2160
Run Code Online (Sandbox Code Playgroud)

我想要的是根据使用正则表达式提取的文件名中的值向该文件添加一列[0-9]{8}(并删除标题)。

1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_OPEN;2324;42417555
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_ACCESS;2324;42417555
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_CLOSE_NOWRITE;2324;42417555
1521540649.02;/home/workdir/quad_list_14.json;IN_OPEN;2160;42417555
1521540649.03;/home/workdir/quad_list_14.json;IN_ACCESS;2160;42417555
1521540649.03;/home/workdir/quad_list_14.json;IN_CLOSE_NOWRITE;2160;42417555
Run Code Online (Sandbox Code Playgroud)

使用 gnu 工具很容易,就像这样(几乎没有测试,几乎可以肯定引号有问题):

#!/bin/bash
#$1 being the filename
JOBID=$(grep -oE "[0-9]{8}" "${1}")
sed -E "s/(.*)/\1;$JOBID/" "${1}"
Run Code Online (Sandbox Code Playgroud)

awk到目前为止,我想在这里实现最好的效果

awk -F";"  'JOBID=substr(FILENAME ,match(FILENAME,"[0-9]{8}"),8); \  
BEGIN { OFS=";"} { if ($1 != "timestamp") print $0,JOBID; }' \  
Event_42417555_2018-05-23_16\:45\:28-log.txt | head

timestamp;fullpath;event;size
timestamp;fullpath;event;size
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_OPEN;2324
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_OPEN;2324;42417555
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_ACCESS;2324
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_ACCESS;2324;42417555
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_CLOSE_NOWRITE;2324
1521540649.02;/home/workdir/ScienceXMLIn/config.cfg;IN_CLOSE_NOWRITE;2324;42417555
Run Code Online (Sandbox Code Playgroud)

我有我的变量并且它设置正确,但我找不到它的正确位置。
如果我移动,JOBID=substr(FILENAME ,match(FILENAME,"[0-9]{8}"),8);
我将无法访问该变量。
这里的问题是文件被处理了两次,一次正确(尽管我的条件被忽略了),另一次它认为我的变量

awk text-processing

1
推荐指数
1
解决办法
671
查看次数

通过脚本名称搜索正在运行的脚本PID

我有以下脚本

hello.sh
--------
while :
do
    echo "hello"
    sleep 20
done
Run Code Online (Sandbox Code Playgroud)

当我运行上面的脚本时,我得到了 2627 作为脚本的 PID

root@localhost ~]# ./hello.sh &
[1] 2627
[root@localhost ~]#
Run Code Online (Sandbox Code Playgroud)

现在,当我在另一个终端中运行 ps 命令时,我没有在输出中获取脚本名称

[root@localhost ~]# ps -ef| grep 262[7]
root      2627  1582  0 19:19 pts/1    00:00:00 -bash
root      3427  2627  0 19:52 pts/1    00:00:00 sleep 20
[root@localhost ~]#
Run Code Online (Sandbox Code Playgroud)

$$ 是我运行脚本的主 shell 的 PID。我知道在脚本中我可以输入 $$ 来获取脚本的 PID,但这不是我的意图。

一旦我在后台运行了长时间运行的脚本,并且假设我意外关闭了终端,那么有没有办法使用脚本名称或任何其他方式来 grep PID?

供参考

[root@localhost ~]# echo $$
2586
[root@localhost ~]# ps -ef| grep 262[7]
root      2627  1582  0 19:19 pts/1 …
Run Code Online (Sandbox Code Playgroud)

ps shell-script

0
推荐指数
1
解决办法
2582
查看次数

标签 统计

linux ×3

find ×2

netstat ×2

proc ×2

shell-script ×2

aix ×1

awk ×1

date ×1

debian ×1

disk-usage ×1

firewall ×1

hdmi ×1

io ×1

iptables ×1

lsof ×1

memory ×1

ps ×1

security ×1

sshpass ×1

sudo ×1

tcp ×1

text-processing ×1