- 栏目导航
Linux SSH远程文件/目录传输命令scp
相信各位VPSer在使用VPS时会经常在不同VPS间互相备份数据或者转移数据,大部分情况下VPS上都已经安装了Nginx或者类似的web server,直接将要传输的文件放到web server的目录,然后在目标机器上执行:wget http://www.vpser.net/testfile.zip 就行了。当VPS上没有安装web server和ftp server的时候或感觉上面的方法比较麻烦,那么用scp命令就会排上用场。
一、scp是什么?
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。
二、scp有什么用?
1、我们需要获得远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过scp命令便可轻松的达到目的。
2、我们需要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,无法通过常规途径上传是,只需要通过scp命令便可以轻松的达到目的。
三、scp使用方法
1、获取远程服务器上的文件
scp -P 2222 root@www.vpser.net:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz
上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。 root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示远程服务器上的文件,最后面的/home/lnmp0.4.tar.gz表示保存在本地上的路径和文件名。
2、获取远程服务器上的目录
scp -P 2222 -r root@www.vpser.net:/root/lnmp0.4/ /home/lnmp0.4/
上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4/ 表示远程服务器上的目录,最后面的/home/lnmp0.4/表示保存在本地上的路径。
3、将本地文件上传到服务器上
scp -P 2222 /home/lnmp0.4.tar.gz root@www.vpser.net:/root/lnmp0.4.tar.gz
上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。 /home/lnmp0.4.tar.gz表示本地上准备上传文件的路径和文件名。root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示保存在远程服务器上目录和文件名。
4、将本地目录上传到服务器上
scp -P 2222 -r /home/lnmp0.4/ root@www.vpser.net:/root/lnmp0.4/
上 端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);/home/lnmp0.4/表示准备要上传的目录,root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4/ 表示保存在远程服务器上的目录位置。
5、可能有用的几个参数 :
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .
-C 使能压缩选项 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .
附上将DiaHosting VPS 上的文件 scp传输Linode上的截图,速度在10MB/s:
mysql时间类型的默认值
以前一直没搞清楚如何设置mysql时间字段的默认值,今天无意之间看到原来mysql时间类型的已经默认给了值呢。如何你想让他默认只需要 NULL 就可以了。
linux 下svn安装
Subversion1.3.2安装以及配置
1.Subrsion安装
fang_ tar xvzf Subversion-1.3.2.tar.gz
fang_ cd Subversion-1.3.2
fang_ ./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion
fang_ make
fang_ make install
2.Subversion的建立与使用仓库使用
$mkdir /var/repos
在这里,我们假设设置/var/repos目录下的svn1和svn2两个目录为仓库。
用hgz用户运行(如果用root用户,则在运行完这两个程序之后要将这两个目录的所有者权限更改为用户hgz命令是:chown –R hgz:hgz /var/repos
svnadmin create /var/repos/svn1
svnadmin create /var/repos/svn2
这样,我们使用的时候,就可以向里面提交文件。
仓库的使用,必须先把服务搭建起来才行。我们等后面的服务器配置后再讲。
3、Subversion服务器的搭建
我们使用与Apache模块的方式运行。
首先,把我们需要的SVN模块加载上,修改Apache的配置文件httpd.conf:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule dav_module modules/mod_dav.so
LoadModule authz_svn_module modules/mod_authz_svn.so
然后配置仓库:
<Location /svn>
DAV svn
SVNParentPath /var/repos
</Location>
然后,配置验证方式:
这里使用旦Apache的验证方式:
htpasswd -cm /etc/svn-auth-file dl1
然后,会提示输入密码,这里就加入了一个用户了。然后再加一个用户:
htpasswd -m /etc/svn-auth-file dl2
htpasswd -m /etc/svn-auth-file dl3
然后修改配置:
<Location /svn>
DAV svn
SVNParentPath /var/repos
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile /etc/svn-access-file
</Location>
下面,就要写这个svn-access-file文件了,它是用来控制用户访问仓库的权限的,我们把说明写在后面
[svn1:/] //这表示,仓库svn1的根目录下的访问权限
dl1 = rw // svn1仓库dl1用户具有读和写权限
dl2 = rw // svn1仓库dl2用户具有读和写权限
dl3 = r // svn1仓库dl3用户具有读权限
[svn2:/] //svn2仓库根目录下的访问权限
harry = r // harry用户在svn2仓库根目录下只有读权限
sally = // sally用户在 svn2仓库根目录下无任何权限
fang_[/] // 这个表示在所有仓库的根目录下
fang_* = r // 这个表示对所有的用户都具有读权限
fang_[groups] // 这个表示群组设置
fang_svn1-developers = harry, sally // 这个表示某群组里的成员
fang_svn2-developers = sally
fang_[svn1:/]
fang_@svn1-developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置
将这个设置完成后。重启Apache,就可以通过
http://localhost/svn/svn1
http://localhost/svn/svn2
这两个URL来访问仓库了,当然,要受权限的限制,必须是合法用户才能访问且具有相应的权限
客户端的使用,可以通过许多客户端GUI软件来用。比如TortoiseSVN就很好用。
官方网址:http://tortoisesvn.tigris.org/
- 共 1 页
- 1
- 没有了

