Using a find command in ssh but using local variables?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using a find command in ssh but using local variables?
# 1  
Old 06-21-2013
Using a find command in ssh but using local variables?

I have a script like this (Yes, I know the DAY6 number isn't right - I'm just testing at this point):

Code:
DAY0=`date -I`
DAY1=`date -I -d "1 day ago"`
DAY6=`date -I -d "2 days ago"`

if [ ssh root@synology1 -d /volume1/Fileserver/$DAY6 ]
then
ssh root@synology1 nohup rm -rf "/volume1/Fileserver/$DAY6"
fi

I've tested the line to remove the files at the command line and it works great, but I'd like to skip it doing this if the folder doesn't exist.

Now, I've read that I need to modify the if line to something like:

Code:
ssh root@synology1 'if [ -d /volume1/Fileserver/$DAY6 ] then nohup rm -rf "/volume1/Fileserver/$DAY6" fi'

My question is, I don't think this will work as $DAY6 is a local variable to the local script and won't be available on the system I'm SSH'ing into.

Anyone know how I could do this?

Thanks in advance!
# 2  
Old 06-21-2013
If I am correct,

When you are doing ssh all the local varibles will get expanded before the connection made to remote machine.

Instead of "rm" just try with "ls" command and see if that's working.
# 3  
Old 06-21-2013
Why don't you go ahead and try (replacing the rm command by e.g. echo)?
I think if you use double quotes instead of single quotes, the shell should expand your variables before running the ssh cmd.
# 4  
Old 06-21-2013
Ok, I tried just to create a test script:

Code:
DAY6=`date -I -d "2 days ago"`

ssh root@synology1 `if [ -d /volume1/Fileserver/$DAY6 ] then echo "Found" fi`

But I get the following error upon execution:

./test.sh: command substitution: line 4: syntax error: unexpected end of file

I then changed the back quotes to forward quotes and got the following error:

ash: syntax error: unexpected end of file (expecting "then")

I'm stuck - any ideas on what I need to do?

---------- Post updated at 01:14 PM ---------- Previous update was at 01:13 PM ----------

Ok, that showed up as I was writing my reply. Let me give that a try...

---------- Post updated at 01:15 PM ---------- Previous update was at 01:14 PM ----------

Ok, I changed the command to:

Code:
DAY6=`date -I -d "2 days ago"`

ssh root@synology1 "if [ -d /volume1/Fileserver/$DAY6 ] then echo "Found" fi"

Got the same error message:

ash: syntax error: unexpected end of file (expecting "then")
# 5  
Old 06-21-2013
try with this:

Code:
ssh root@synology1 "if [ -d /volume1/Fileserver/$DAY6 ] ; then echo "Found"; fi"

# 6  
Old 06-21-2013
Actually just found this code online:

Code:
DAY6=`date -I -d "2 days ago"`

ssh root@synology1 "if [[ -d /volume1/Fileserver/$DAY6 ]]; then echo Found; fi"

Works!

Thanks!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Read several variables from command output via SSH

Hi Folks, I'm currently trying to read several values into different variables. Actually, what I'm doing works, but I get an error message. My attempts are: read strCPROC strIPROC strAPROC <<<$(ssh -n -T hscroot@$HMC "lshwres -r proc -m $strIDENT --level sys -F \"configurable_sys_proc_units... (11 Replies)
Discussion started by: NKaede
11 Replies

2. UNIX for Beginners Questions & Answers

How to have local shell variables in a ksh script seen on remove server in SSH block?

I have googled this and found many solutions, but none of them are working for me. I am in a korn shell, most others reference bsh, maybe that is the issue? Anyway, all I am trying to do is use a variable I have declared in my main script in a remote shell I am running through ssh. So I have a... (8 Replies)
Discussion started by: DJR
8 Replies

3. UNIX for Dummies Questions & Answers

Using find command with variables

I have a number of files in the /tmp directory with PET-DOG in their name. I want to delete them, leaving only files with PET-CAT and PET-HORSE. I'd like to use the find command to locate those files (by using a variable) and then I'd like to delete them. However, I can't find a way to do this. I... (3 Replies)
Discussion started by: newbie2010
3 Replies

4. UNIX for Dummies Questions & Answers

Output of ssh command from localhost - direct to local file.

Hi, i'm trying to gather details from remote hosts and want them to be written to my local linux machine from where i'm using SSH. My command looks some thing like this ssh -q remotehost 'bash -s' <command.txt where command.txt is a file in my local machine containing ps -ef |grep httpd |... (1 Reply)
Discussion started by: poga
1 Replies

5. UNIX for Dummies Questions & Answers

Long listing of files using find command on remote server via SSH

Hi , I am trying to find some files on a remote machine using the find command. >ssh -q atukuri@remotehostname find /home/atukuri/ -name abc.txt /home/atukuri/abc.txt The above command works fine and lists the file, but if I want to do a long listing of files (ls -l) its not working . ... (2 Replies)
Discussion started by: atukuri
2 Replies

6. UNIX for Advanced & Expert Users

Help! How to find the local host after few ssh hops to remote host???

I do a ssh to remote host(A1) from local host(L1). I then ssh to another remote(A2) from A1. When I do a who -m from A2, I see the "connected from" as "A1". => who -m userid pts/2 2010-03-27 08:47 (A1) I want to identify who is the local host who initiated the connection to... (3 Replies)
Discussion started by: gomes1333
3 Replies

7. Red Hat

Command to find the local harddisks of a server ? Including their size

Hi guys How do I find the harddisks in a server ? Rgds Nishant (4 Replies)
Discussion started by: thevishy
4 Replies

8. Shell Programming and Scripting

'while' loop does not change local variables?!

(I think this question desearves separate thread..) I have a problem with 'while' I am trying to set variables by 'while' and it is fine inside, but after completting the loop all changes are lost: > bb="kkkk - 111\nlllll - 22222\nbbbb - 4444" > echo "$bb" kkkk - 111 lllll - 22222 bbbb -... (3 Replies)
Discussion started by: alex_5161
3 Replies

9. Shell Programming and Scripting

Problem with global and local variables

Guys, how can I define global variables in sorlaris...cause I lose the values outside the scope. Rite now wat I do is,I redirect variable value to a file n then get it back outside the function...:o....theres obviously a better way of doing this...I now this is a basic question....but please... (2 Replies)
Discussion started by: qzv2jm
2 Replies

10. UNIX for Dummies Questions & Answers

rsh with local variables

Hi, I am trying to do an rsh and execute the same script on a distant unix computer. The problem is that I need to get all the local variables of the distant computer to launch correctly my script. I'm working on AIX 4.3.3 I try to execute .profile in the rsh but it seems not to be... (1 Reply)
Discussion started by: jo_aze
1 Replies
Login or Register to Ask a Question