我试图编写一个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
答案 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