Bash脚本:尝试通过SFTP

时间:2016-03-23 21:51:37

标签: bash unix scripting sftp

我试图编写一个bash脚本,我可以将其设置为cronjob,以便通过SFTP自动将备份文件上传到远程服务器。

本地服务器上的备份文件已加上日期戳(例如backup-file-YYYY-mm-dd.tar.gz),我希望脚本只从具有相同日期戳的目录上传文件作为当前日期。

关于我哪里出错的任何想法?我无能为力,但我觉得我错过了一些基本的东西,但我无法想到它是什么!

下面的当前损坏的脚本:

 #!/bin/bash

FILE=$backups/$(date+%Y-%m-%d).tar.gz *<<<<< I'm guessing this is where it's slipping up*

sshpass -p "remoteserverpassword" sftp -o StrictHostKeyChecking=no <user>@<remoteserverip)

cd /directory1/directory2/

put $FILE

exit 0

EOF

1 个答案:

答案 0 :(得分:0)

你在哪里滑倒是正确的,在传递到这里的脚本之前需要评估日期。为了清晰起见重新格式化,但您也可以插入原始脚本。

#!/bin/bash                                                                     

backup=/tmp
today=`date +%Y-%m-%d`

FILE=$backup/$today.tar.gz

sshpass -p "remoteserverpassword" sftp -o StrictHostKeyChecking=no <user>@<remoteserverip) <<EOF                                                               

cd /directory1/directory2/                                                      

put $FILE                                                                       

exit 0                                                                          

EOF