2016-03-23 13 views
0

SFTP経由でバックアップファイルをリモートサーバに自動的にアップロードするためのcronジョブとして設定できるbashスクリプトを作成しようとしています。Bashスクリプト:SFTP経由でdatestampedファイルをアップロードしようとしています

ローカルサーバー上のバックアップファイルには日付印が付けられています(例: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 
+4

'date'と' + 'の間にスペースを追加すると、それは動作していますか? – thom

+0

また、cronのエラー出力は何を表していますか?それは通常、cronジョブの所有者に電子メールで送られます。 – ghoti

答えて

0

、日付が前にスクリプトをここに渡すにeval'dする必要があります。明確にするために再フォーマットされますが、元のスクリプトにもプラグインすることができます。

#!/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 
関連する問題