Bash 脚本:尝试通过 SFTP 上传带日期戳的文件

Bash script: Attempting to upload datestamped file via 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

你说得对,它在哪里出错了,在传递到这里的脚本之前需要评估日期。为清楚起见重新格式化,但您也可以插入原始脚本。

#!/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