How to cat via ssh and sed at the same time.?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to cat via ssh and sed at the same time.?
# 1  
Old 04-06-2014
How to cat via ssh and sed at the same time.?

I am trying to write a script to automatically create conf files and remote servers. I would like to do all this without creating files locally and copying them .

Here is what I have tried.

Code:
sitename=$1
prodserver=$2
ssh $prodserver "cat > /data/$sitename.conf" << cat |sed "s/changeme/$sitename/g" << EOF
<VirtualHost *:80>

        ServerName dev.changeme

        DocumentRoot /var/www/html/www.changeme/

        <Directory /var/www/html/www.changeme/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog /var/log/httpd/dev.changeme-error.log
        LogLevel warn

        CustomLog /var/log/httpd/dev.changeme-access.log combined


</VirtualHost>

EOF

I know it's way wrong I have tried many iterations. Just hoping can set me on a better track if they understand what I am trying to do.



and yet the file is written


Many thanks!

Last edited by macrossm; 04-06-2014 at 04:09 PM.. Reason: Add CODE tags.
# 2  
Old 04-06-2014
Have you tried:
Code:
sitename=$1
prodserver=$2
sed "s/changeme/$sitename/g" << EOF | ssh $prodserver "cat > /data/$sitename.conf"
<VirtualHost *:80>

        ServerName dev.changeme

        DocumentRoot /var/www/html/www.changeme/

        <Directory /var/www/html/www.changeme/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog /var/log/httpd/dev.changeme-error.log
        LogLevel warn

        CustomLog /var/log/httpd/dev.changeme-access.log combined


</VirtualHost>
EOF

---------------
Oops. I left behind an unneeded cat. The code has been fixed above.

Last edited by Don Cragun; 04-06-2014 at 04:35 PM.. Reason: Fix typo.
This User Gave Thanks to Don Cragun For This Post:
# 3  
Old 04-06-2014
Thank you very much sir. Work great except I have to push enter after it completes, I want to put it in a script will that hang at the end ?
# 4  
Old 04-06-2014
In addition you could leave out the sed and use:

Code:
cat << EOF | ...
<VirtualHost *:80>

        ServerName dev.${sitename}

        DocumentRoot /var/www/html/www.${sitename}/

        <Directory /var/www/html/www.${sitename}/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog /var/log/httpd/dev.${sitename}-error.log
        LogLevel warn

        CustomLog /var/log/httpd/dev.${sitename}-access.log combined


</VirtualHost>
EOF

These 2 Users Gave Thanks to Scrutinizer For This Post:
# 5  
Old 04-06-2014
Quote:
Originally Posted by macrossm
Thank you very much sir. Work great except I have to push enter after it completes, I want to put it in a script will that hang at the end ?
I accidentally left in an unneeded and unwanted cat. I have updated my suggestion in message #2 in this thread to fix the problem. But, Scrutinzer's suggestion is better; you don't need sed of this application.
# 6  
Old 04-06-2014
Thank you so much I really appreciate it. Works great I just bypass sed as suggested
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issue in executing cat (remote ssh)

Hi, I need to ssh remotely to a machine and cat a file assign the value to a variable Script: #!/bin/bash -x value=`cat config.txt` echo "$value" ssh me@xxx.host.com "valu='cat /export/home/test.md5'; echo "$valu"" | tee Execution: $ ./x ++ cat config.txt + value='touch me' +... (5 Replies)
Discussion started by: close2jay
5 Replies

2. Shell Programming and Scripting

Cat a file across ssh?

There is a file on a remote host that I want to read across an ssh tunnel. NOT copy... scp won't work here. And this file requires elevated permissions to read. 'ssh -t remotehost sudo cat /path/to/file' will prompt me for my sudo password and read out the file. But I'm coming up blank for a... (4 Replies)
Discussion started by: jnojr
4 Replies

3. UNIX for Dummies Questions & Answers

emulating cat in sed with q option

Hi, I am aware that the below are the equivalent in sed for cat command. sed ':' sed -n 'p' Is there any way to emulate the same using "q" option in sed? Thanks (8 Replies)
Discussion started by: pandeesh
8 Replies

4. UNIX for Advanced & Expert Users

cat / sed process weird characters

Hi everyone, I'm trying to write a shell script that process a log file. The log format is generally: (8 digit hex of unix time),(system ID),(state)\n My shell script gets the file from the web, saves it in a local text directory. I then want to change the hex to decimal, convert from unix time... (7 Replies)
Discussion started by: bencpeters
7 Replies

5. Shell Programming and Scripting

grep or cat using sed

Is there a way using grep or cat a file to create a new file based on whether the first 9 positions of each record is less than 399999999? This is a fixed file format. (3 Replies)
Discussion started by: ski
3 Replies

6. Shell Programming and Scripting

want to pass sentence with SED and CAT

I have to pass a sentence in a file, the specs are as: cat run | sed 's/SRT/'$8'/g' | sed 's/plength/68/g' | sed 's/stcol/'$5'/g' | sed 's/encol/'$6'/g' | sed 's/brdtype/'$1'/g' | sed 's/brdtxt/'$3'/g' | sed 's/demotxt/Total '$2'/g' | sed 's/bantxt/ban_'$7'/g' | sed 's/validcodes/'$4'/g' > runx... (1 Reply)
Discussion started by: patilrakesh1984
1 Replies

7. Shell Programming and Scripting

Help on cat with sed!

Hi All! I have a script having one statement like. cat xfile | sed 's/A/a/g' > xfile I have two boxes which have similar version of linux running but one is greater in speed compared to other. Lets say A is faster than B. A which is faster writes output as NULL B which... (6 Replies)
Discussion started by: kbalaji_uk
6 Replies

8. UNIX for Dummies Questions & Answers

tr, sed, awk, cat or scripting

I need to change all Newline caracters (\12) to Fieldseparator(\34). tr -A '\12' '\34' <file1> file2 Replace all delete (\177) with Newline (\12) tr -A '\177' '\12' <file2> file3 Put the name of the file first in all rows. awk '{printf "%s\34%s\n", FILENAME,$0} file3 > file4 So far no... (6 Replies)
Discussion started by: MrKlint
6 Replies

9. UNIX for Advanced & Expert Users

use of sed over cat to merge files

I have three files, basically: file 1 - one line header file 2 - big data (approx 80GB) file 3 - a one line trailer the existing process cats these together i.e cat file 1 file 2 file 3 however... I was thinking, surely it could be more efficient to insert the header (file 1) on the... (2 Replies)
Discussion started by: miwinter
2 Replies

10. UNIX for Dummies Questions & Answers

How to use cat command in sed pattern searching

Hi All, I have a file named pattern.dat which contains pattern like A1000090 250.00 250.00 i have one more file named test.dat in which this pattern is present. What i should do is, in test.dat after this pattern i should append comments. i used... (4 Replies)
Discussion started by: Sona
4 Replies
Login or Register to Ask a Question