VPS备份到远程FTP脚本

基于网上代码修改。由于手上没有好用的FTP服务器,只能用sftp服务器,sourceforge的sftp服务器不仅免费,而且文件大小限制的不严格,速度也快,当然成了首选。
要在shell脚本里连接sftp服务器,必须要执行以下步骤:
1.为运行shell脚本的本地用户生成密钥对
2.将其中的公钥分发到sftp欲登录的远程服务器上
3.编写并以上面的本地用户运行shell脚本

一、生成密钥对:
在shell脚本中使用sftp时必须用到密钥对(公钥和私钥).可使用下列方式生成(SSH 2.X版本),这里本地用户为root:

屏幕提示:

二.分发公钥
执行:

复制公钥,然后登录你的sf帐号,切换到 “sourceforge.net/account/ssh”, 在 “Host Access Information ” 处点击 [Edit SSH Keys for Shell/CVS], 把 上述复制的字符粘贴进去。点击 update 即可。(这个选项在services的Edit SSH Keys for Shell/CVS下)
注:如果是两个KEY或者多个的话,要确保KEY与KEY之间有且只有一个回车,KEY中间不能有空格.
这是sourceforge的用法,若远程服务器为另一台VPS,那么应该按下面的方法做:

为了使用密钥,必须将公钥分发到欲登录的远程服务器上,这里远程服务器记为remote_host,欲登录的远程用户记为remote_user

1.copy公钥到欲登录的远程服务器的远程用户的家目录下,例如:

copy id_dsa.pub到remote_host:/home/remote_user/.ssh/

若目录/home/remote_user/.ssh/不存在,请先创建之.

2.将copy来的公钥文件改名为authorized_keys

3.修改公钥文件的访问权限

chmod 644 authorized_keys

三、脚本编写

本文参考了一下文章:
在shell脚本里使用sftp批量传送文件:http://bbs.chinaunix.net/thread-508290-1-1.html
使用putty连接sourceforge:http://www.annhe.net/article-984.html
sendmail使用方法:http://3414033.blog.51cto.com/3404033/737481

2 thoughts on “VPS备份到远程FTP脚本

  1. 给脚本添加执行权限:

    chmod +x /root/AutoBackupToFtp.sh

    利用系统crontab实现每天自动运行:

    crontab -e

    输入以下内容:

    00 00 * * * /root/AutoBackupToFtp.sh

    其中00 00为时间分/小时,可自行修改,例如:30 12 ***,就是每天12.30运行这个脚本。

    附一个使用lftp备份文件

回复 admin 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注