Linux下通过ssh scp命令上传下载文件。
1、上传本地文件到服务器
scp /path/filename username@servername:/path/
例如
scp /var/tale.sql root@120.79.212.177:/var/
把本机/var/目录下的tale.sql文件上传到120.79.212.177这台服务器上的/var/目录中
如果需要带端口号,则:
scp -P port /path/filename username@servername:/path/
2、上传本地目录到服务器
scp -r local_dir username@servername:remote_dir
例如
scp -r test root@120.79.212.177:/var/www/
把当前目录下的test目录上传到服务器的/var/www/目录
下载文件我们经常使用wget,但是如果没有http服务,如何从服务器上下载文件呢?
3、从服务器上下载文件
scp username@servername:/path/filename /local_dir
例如
scp root@120.79.212.177:/var/test.txt /web
把120.79.212.177上的/var/test.txt 的文件下载到本地目录/web内
4、从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/ /var/www/local_dir
例如
scp -r root@120.79.212.177:/var/www/test /var/www/
把120.79.212.177上的/var/www/test目录下载到本地/var/www目录内
5、简化向服务器上传或下载的方法
如果需要经常使用 scp 命令在本地和服务器之间传输数据,每次都要打上一长串命令,包括用户名,地址什么的,很是枯燥,这里分享一个简单的方法。
(1) 新建一个 bash 脚本,代码如下:
#!/bin/bash myfile=$1 scp -P 22 -r "$myfile" root@123.56.71.70:/home/www #将文件上传到服务器的 /home/www 目录下
命名为 copy2server,现将该脚本存在本地 /home/yhm 目录下
(2) 将该脚本权限更新为可执行
chmod a+rwx /home/yhm/copy2server
(3) 然后通过 alias 命令添加到系统中:
alias 2server='/home/yhm/copy2server'
然后就可以直接在终端输入 2server,然后直接将文件拖入到终端,轻敲 enter 键,就可以直接上传到服务器上去了。