小编Eri*_*ouf的帖子

使用 ssh 并在后台运行脚本

我在每台服务器上运行一个大约需要 20 分钟的工作。但是,所有服务器可以同时运行此作业。这是我的工作:

#cat mylist

server1
server2
...
...

#for i in `mylist`; do ssh root@$i /home/run_command ; done
Run Code Online (Sandbox Code Playgroud)

它工作正常,但它必须在移动到下一个服务器之前完成每台服务器上的工作。

我尝试添加 &

for i in `mylist`; do ssh root@$i /home/run_command & ; done
Run Code Online (Sandbox Code Playgroud)

它没有任何区别。我感谢您可以与我分享的任何信息。

ssh

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

如何查看我删除的文件的内容,但进程仍在写入

我开始了一项非常长时间运行的工作(预计需要 6 天才能完成),并且想查看其输出,所以我这样做了:

$ nohup ./thejob.sh > out.txt
Run Code Online (Sandbox Code Playgroud)

当我需要查看工作进度时,我会tail - f归档。

但该out.txt文件增长太多,我删除了该文件并重新创建了它。

$ rm out.txt
$ touch out.txt
Run Code Online (Sandbox Code Playgroud)

此后,没有输出发送到文件。我认为该作业失去了与文件的绑定。我可以通过使用看到作业正在运行top,但我再也看不到它的进度了。

有什么办法可以再次看到吗?

linux io-redirection nohup deleted-files

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

在文件中查找与另一个文件中定义的模式匹配的行

我有两个文件 file1.txt

kepaul
jack
mike 
david
Run Code Online (Sandbox Code Playgroud)

file2.txt

1 london smith 12564
2 miami jack 51616
3 la mike 165156
4 london kepaul 54654
5 miami grag 46546
Run Code Online (Sandbox Code Playgroud)

我需要从file2.txt包含在名称中找到的file1.txt名称打印到一个新的文件行。所以我的结果应该是

4 london kepaul 54654
2 miami jack 51616
3 la mike 165156
Run Code Online (Sandbox Code Playgroud)

grep awk

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

我需要一个 shell 脚本,通过将逗号保留在引号内,将 csv 文件转换为管道 (|) 分隔的文件

示例文件(test.csv):

"PRCD-15234","CDOC","12","JUN-20-2016 17:00:00","title, with commas, ","Y!##!"
"PRCD-99999","CDOC","1","Sep-26-2016 17:00:00","title without comma","Y!##!"
Run Code Online (Sandbox Code Playgroud)

输出文件:

PRCD-15234|CDOC|12|JUN-20-2016 17:00:00|title, with commas, |Y!##!
PRCD-99999|CDOC|1|Sep-26-2016 17:00:00|title without comma|Y!##!
Run Code Online (Sandbox Code Playgroud)

我的脚本(不起作用)如下:

while IFS="," read f1 f2 f3 f4 f5 f6; 
do  
    echo $f1|$f2|$f3|$f4|$f5|$f6;  
done < test.csv
Run Code Online (Sandbox Code Playgroud)

shell

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

保留 $1 中的反斜杠

我正在尝试编写一个脚本,该脚本接受带有反斜杠的参数 ($1),并且我希望我的脚本与输入的反斜杠完全一致地回显参数 ($1)。

例如

$ ./tst \\abc\def\ghi\jkl\lmn\
\\abc\def\ghi\jkl\lmn\
Run Code Online (Sandbox Code Playgroud)

我目前的 tst 脚本是这样的;

#!/bin/bash
echo $1
Run Code Online (Sandbox Code Playgroud)

当我运行我的脚本时,它会返回;

\abcdefghijkllmn
Run Code Online (Sandbox Code Playgroud)

我希望它返回:

\\abc\def\ghi\jkl\lmn\
Run Code Online (Sandbox Code Playgroud)

正是我输入的内容。我什至尝试过,echo -E $1但这没有任何区别。

非常感谢我可以从我的脚本中实现我想要的返回输出的任何建议。

bash

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

我的 linux pc 无法使用主机名 ping 通

在远程机器上,我可以通过 IP 地址 ping 我的计算机,但不能通过主机名 ping。我怎样才能使它的主机名也可以访问它?

networking ip dns hosts

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

标签 统计

awk ×1

bash ×1

deleted-files ×1

dns ×1

grep ×1

hosts ×1

io-redirection ×1

ip ×1

linux ×1

networking ×1

nohup ×1

shell ×1

ssh ×1