How to check via SSH and credentials if file on remote server exists?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to check via SSH and credentials if file on remote server exists?
# 1  
Old 03-06-2019
How to check via SSH and credentials if file on remote server exists?

Hi there,

I am sorry to ask that kind of beginner thing, but all the code I found online didnt work for me.
All I want to do is: Check via SSH if a File exists on my webserver. The SSH login has to be with username and password.

So I would be very thankful if somebody could write the line.
Example data:
Code:
User: user0815
Password: pwd0815
Host: example.com

Path of file on remote server: /htdocs/www/my/folder/file.jpg

Thank you very much.
Jens


Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 03-06-2019 at 10:24 AM.. Reason: Added CODE tags.
# 2  
Old 03-06-2019
Welcome to the forum.


Any attempts / ideas / thoughts from your side? Where are you stuck?
# 3  
Old 03-06-2019
Welcome Jens885544,

I have a few to questions pose in response first:-
  • Is this homework/assignment? There are specific forums for these.
  • Why must SSH using id/password be used for the connection?
  • What have you tried so far?
  • What output/errors do you get?
  • What OS and version are you using? The output of uname -a on both the client and the server would be useful here.
  • What logical process have you considered? (to help steer us to follow what you are trying to achieve)
Most importantly, What have you tried so far?

There are probably many ways to achieve most tasks, so giving us an idea of your style and thoughts will help us guide you to an answer most suitable to you so you can adjust it to suit your needs in future.


We're all here to learn and getting the relevant information will help us all.



Kind regards,
Robin
# 4  
Old 03-06-2019
Hey guys. You are totally right so far. I forgot to add my try.
The problem was how to add the credentials. Well the problem still exists but now I was able to add the public key to the webserver.
So now it is working without entering user and password.

The so far working code is:
Code:
FILETOCHECK=/test.txt
if ssh 'user0815@example.com' stat $FILETOCHECK \> /dev/null 2\>\&1
            then
                    echo "File exists"
            else
                    echo "File does not exist"

fi

Thank you.
I was not able to do with pwd authentication. If you know how to do so, please post it, because then we have a 100% solution on the topic.
Jens




Moderator's Comments:
Mod Comment Seriously: Please use CODE tags as required by forum rules!

Last edited by RudiC; 03-06-2019 at 11:55 AM.. Reason: Added CODE tags.
# 5  
Old 03-06-2019
Quote:
Originally Posted by Jens885544
Hey guys. You are totally right so far. I forgot to add my try.
The problem was how to add the credentials. Well the problem still exists but now I was able to add the public key to the webserver.
So now it is working without entering user and password.
Congratulation. That is an easy, short, comfortable, and, before all, safe solution, working as intended by the ssh creators (at least I hope so).

Quote:
I was not able to do with pwd authentication. If you know how to do so, please post it, because then we have a 100% solution on the topic. ...
Why do you want (or have to?) fall back to a complicated and unsafe workaround?
# 6  
Old 03-06-2019
Quote:
Originally Posted by RudiC
Why do you want (or have to?) fall back to a complicated and unsafe workaround?
Not for me, but maybe somebody would need it and expects it because its in the headline.

But maybe you can give me a hint: I now build in the working code into my script. The script does a foreach on 7000 files. Is it a recommended way to do
"if ssh 'ssh-user0815@example.com' stat $FILETOCHECK \> /dev/null 2\>\&1"
on every file? I ask because to me it looks like it builds then 7000 times a ssh connection.
Is there a way to build it once and then check the files?

Thank you.
Jens
# 7  
Old 03-06-2019
It's difficult to say, in a way. What do you want to do with the output from the ssh command? Because the output will be in a standard format, you might be able to call stat just once for all of them. The output will be one long trail, but there is a clear marker for the file name, size and other information. You can even direct it to format in a way most useful to you.

If you fancy a fairly terse output, you could try ssh $username@target_server "stat -t $files_to_check" or push it even further with ssh $username@target_server "stat -tc '%n' $files_to_check" which will give you the filenames that exist or a message something like stat: cannot stat `not_a_file': No such file or directory as one big list of output.


What do you eventually want to get out of it?

Are any files likely to be a symbolic link? You might need to add the -L flag to follow links to check them.




Does this help,
Robin

Last edited by rbatte1; 03-06-2019 at 12:44 PM.. Reason: Corrected formatting definition for last suggestion.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Check if file exists via ssh in ssh (nested)

I'm using redhat and have an odd issue with a nested ssh call. ssh -i ~/.ssh/transfer-key -q transfer@fserver1 ] && ssh -i ~/.ssh/transfer-key transfer@fserver1 "ssh -i ~/.ssh/sftp-key sftpin@10.0.0.1 ]" && ssh -i ~/.ssh/transfer-key transfer@fserver1 "scp -i ~/.ssh/sftp-key /home/S/outbox/*... (2 Replies)
Discussion started by: say170
2 Replies

2. Shell Programming and Scripting

Except script fails to check file exists or not in remote node

Dear members, The following expect script connects to remote node and check for the file "authorized_keys" in directory /root/.ssh in remote node. However the result is always found even if the file exist or doesn't exist. expect { "$fname" { send_user "found\n" } Any idea what is... (4 Replies)
Discussion started by: Sudhakar333
4 Replies

3. Shell Programming and Scripting

Unable to check if file exists on remote server using expect

Hi, I need to check if a file exists on remote server using expect. #!/bin/bash ip_addr=10.10.10.10 user=root passwd=Help filename=/root/test expect -c " spawn ssh -n -T -o NumberOfPasswordPrompts=3 -o StrictHostKeyChecking=no $user@$ip_addr expect \"*?assword:*\" send --... (6 Replies)
Discussion started by: temp_user
6 Replies

4. Shell Programming and Scripting

ssh to remote server and check if file exists

Hi everyone, I am trying to figure out a way to ssh to remote server and check if file exists, and if it doesn't I want to leave the script with an exit status of 5. I have the following that I am attempting to use, but it is not returning anything: check() { ssh ${SOURCE_SERV} "ls -l... (4 Replies)
Discussion started by: jimbojames
4 Replies

5. Shell Programming and Scripting

csh Check if file exists on remote system

I've seen this question posed a few times with shell scripting, but have not found anything with csh. I am trying to download multiple txt files from a source using wget. These are archived tornado warning files; however, the files only exist if there were tornado warnings issued that day. I'm... (3 Replies)
Discussion started by: meteorologistks
3 Replies

6. Shell Programming and Scripting

Check file exists on remote machine.

I am haveing one script haveing one issue with this could any one can reply soon it is very urgent. :p if ssh hcp_ftp@$1 'ls '$2/stop.txt' 1>&2 2>/dev/null'; then exit 1; else scp -p hcp_ftp@$1:$2/VAT*.dat $3 <<EOF EOF cd $3 pwd echo 'About to find file' SOURCE_FILE=$(ls -rt VAT*.dat|tail... (2 Replies)
Discussion started by: marpadga18
2 Replies

7. UNIX for Dummies Questions & Answers

ftp - check if file on remote exists (skip overriding)

Hello, I have a script that uploads a file from local to remote place using ftp. The problem is that, if on remote host there is a file called the same as the one I want to upload, the ftp program overrides that file. But I don't want to override nothing (even if the remote file is older,... (3 Replies)
Discussion started by: spiriad
3 Replies

8. Shell Programming and Scripting

check if remote file exists

Hi Does anybody know how I can check if a file exists on a remote machine i.e. see bellow, this doesn't work by the way and if tried countless variations on this #!/bin/sh hostname=server56 if ; then echo file exists else echo file doesn't exist fi Any help on this would... (2 Replies)
Discussion started by: hcclnoodles
2 Replies

9. Shell Programming and Scripting

check if file exists on remote system ?

Hi there, I am designing a software rollout script and need to check if a particular file exists on a remote system something along the lines of if ; then blah blah The above doesnt work but you get the general idea....is there a way I can do this on a single line ?? any help would... (2 Replies)
Discussion started by: hcclnoodles
2 Replies

10. Shell Programming and Scripting

Check Remote Folder Exists

Hi, I want to sftp some files to a remote directory. Before transferring files i want to check whether the required folder exists. If so copy the files to that folder, else create the folder and copy the files. Thanks in adv (1 Reply)
Discussion started by: borncrazy
1 Replies
Login or Register to Ask a Question