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
我正在尝试编写一个 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