A few comments allowed?
The way you programmed your script might not be the best use of resources:
Code:
for i in `cat file1` # useless use of cat, may fail on spaces in file1's lines, `...` deprecated
do
for j in `cat file2` # same as above; plus: opens, reads, closes file2 linecount1 times
do
ssh $i 'systemctl is-enabled "${j}" '; # creates and deletes a remote network login (linecount1 * linecount2) times
done
done
How about trying, given your shell offers
- the mapfile command
- "here documents",
and using
- a while instead of a for loop
- the $(...) for "command substitution" in lieu of the `...`
reading each file only once, and connecting to each node in file1 just once (only lightly tested, YMMV):
Code:
mapfile -t j < file2
while read i
do ssh ${i} <<-EOFSSH
$(for X in ${!j[@]}
do echo "systemctl is-enabled ${j[X]}"
done)
EOFSSH
done < file1
Please report back...
EDIT: or, if your shell offers "here strings", using "parameter expansion / Pattern substitution", try
Code:
mapfile -t j < file2
IFS=$'\n'
while read i
do ssh -T ${i} <<< "${j[*]/#/systemctl is-enabled }"
done < file1
I'm not very familiar with the ssh command. When I tried to set a variable and then echo its value on a remote machine via ssh, I found a problem. For example,
$ ITSME=itsme
$ ssh xxx.xxxx.xxx.xxx "ITSME=itsyou; echo $ITSME"
itsme
$ ssh xxx.xxxx.xxx.xxx 'ITSME=itsyou; echo $ITSME'
itsyou
$... (3 Replies)
Hi gurus,
I'd like to know your opions about Single Sign On (SSO) for linux (Debian). In my company, clients want to access to different services (FTP, HTTP, Mail, Web Applications ). I think about OpenLDAP and Proxy (Squid, Vulture) to resolve this problem but i'm not sure if they can. Are there... (0 Replies)
Hi guys, I have a sed line in double quotes which works fine, but I want it to be in single quotes
here is the sed line
sed "/abc_def/s/\'.*\'/\'\${abc_def}\'/"
can some one give the equivalent to the above script in single quotes
Thanks a ton (5 Replies)
Unix superusers,
I am new to unix but would like to learn more about grep. I am very familiar with regular expressions as i have used them for searching text files in windows based text editors. Since I am not very familiar with Unix, I dont understand when one should use GREP with the... (2 Replies)
Hi,,
Let example cmd: $$config/all
Here I want to replace or subsitute blank space and also with any other character in place of "$" sign...and also want to replace backslash (/) with forward (\)......in expect script
please could any one help on this.....thank you (2 Replies)
Hi I want to replace single quote with two single quotes in a perl string.
If the string is <It's Simpson's book> It should become <It''s Simpson''s book> (3 Replies)
Hello. I'm trying to write a bash script that uses GNU screen and have hit a brick wall that has cost me many hours... (I'm sure it has something to do with quoting/globbing, which is why I post it here)
I can make a script that does the following just fine:
test.sh:
#!/bin/bash
# make... (2 Replies)
Hi,
Trying to change the prompt. I have the following code.
export PS1='
<${USER}@`hostname -s`>$ '
The hostname is not displayed
<abc@`hostname -s`>$ uname -a
AIX xyz 1 6 00F736154C00
<adcwl4h@`hostname -s`>$
If I use double quotes, then the hostname is printed properly but... (3 Replies)
Hi experts. I want to setup a training lab.
I have a Power 5 standalone server 9110-51A (p5 510)
I want to enable PowerVM on it and create two LPARs
I don't have money for an HMC
I know I can use IVM instead
I understand IVM is part of the VIOS software
TWO QUESTIONS:
1- If... (12 Replies)
I'm looking at a config file with dollar signs. What do the dollar signs mean in front of a directory?
dir = ./demoCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
new_certs_dir = $dir/newcerts # default... (1 Reply)