I am trying to upload local files to server by using Putty or SSH but not getting upload there.
Is there any direct method to upload file from local to server from Linux terminal without using FTP etc ?
Solution:
Sure. Use scp
(secure copy) like this:
scp [source file] [username]@[destination server]:.
Of course replace the bracketed [source file]
, [username]
and [destination server]
to match your local settings. So if the file was cool_stuff.txt
and your username on the remote sever is sanjeev
and the destination sever is example.com
, the command would be:
scp cool_stuff.txt sanjeev@example.com:.
And the source could also be remote so you could do this to do the opposite of the above example:
scp sanjeev@example.com:cool_stuff.txt .
That command would copy the remote file cool_stuff.txt
to whatever local directory you are in. And if you are doing this with multiple files, just use a wildcard (*
) like you would for a normal cp
command.
Also, the .
just indicates the immediate directory path; such as the one you are in right at the moment you run the command or the immediate path that the remote user on the destination server has. But you could also specify a path like /this/path/right/here
in the local to remote example:
scp cool_stuff.txt sanjeev@example.com:/this/path/right/here
Or the remote to local example right here:
scp sanjeev@example.com:cool_stuff.txt /this/path/right/here
Now if the remote server does not allow SSH and only SFTP, then SFTP is the way to go. But scp
is very useful when you want to just toss a file and not do the whole SFTP process manually from the command line.