我想知道是否存在特定文件夹。我使用了以下命令
find /mnt/md0/ -maxdepth 1 -name 'dcn'||'DCN'
Run Code Online (Sandbox Code Playgroud)
我想知道文件夹名称是 DCN 还是 dcn 。
我该怎么做?
我想知道我的服务器是否与远程服务器建立了连接,或者远程服务器是否尝试访问我的服务器。我试图阅读输出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) 我想完全禁用 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 代理白名单的本地计算机上,它说连接超时。
如何查找基于特定时间戳创建或修改的文件。
假设时间戳是 date +%d-%m-%y_%H.%M
您能否建议一个基于特定时间戳获取文件的命令?
#!/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)
看来不行。我如何传递一个脚本以在远程计算机上以 …
我最近安装了 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 …
当我在 Linux/GNU 发行版环境中工作时,我经常使用那个美妙的命令
du --max-depth=1 /
Run Code Online (Sandbox Code Playgroud)
这为您提供了root目录中每个文件夹的大小。今天我在 AIX 工作,而 sysadmin 不想听说 GNU。
是否有任何工具或命令行允许--max-depth在 AIX 上为du命令重现开关?
我有一个问题 /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) 我不确定是否正确表达了这个问题,我已经尝试阅读man proc,但我无法找到正确的答案,也找不到验证它的简单方法。
我尝试获取一个 PID 的 CPU/RAM 消耗,但我不知道该程序将投射多少个子进程,我想获得 CPU 和 RAM 消耗的总量,而不仅仅是主进程。
我知道/proc/[PID]/io通过所有子进程确实累积的事实和经验,但我想知道并在可能的情况下提供证据是否同样适用于/proc/[PID]/stat.
我可以通过 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) 我正在处理命名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);
我将无法访问该变量。
这里的问题是文件被处理了两次,一次正确(尽管我的条件被忽略了),另一次它认为我的变量
我有以下脚本
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)