CRONで別サーバーにファイルを転送しようとしています。
対話式で
ftp example.com
username
password
cd ディレクトリ
put ファイル
quit
とやると正常にファイルを送信することができます。

ftp -n example.com << __END__
user username password
bin
passive
cd ディレクトリ
put ファイル名
quit
__END__

をシェルスクリプトで実行すると
ファイル名: Permission denied.
と権限がない旨が表示されます。

転送元ファイルの権限はroot、パーミッションは0644、転送するファイル一般ユーザー権限、ディレクトリに変えてみたのですが、
結果は変わらずです。
実行ユーザーはroot、シェルスクリプトのパーミッションは0700です。
対話式とは権限周りが違うのでしょうか?