Schon mal daran gedacht, dass das Problem am FTP liegt und nicht am Skript? Letzteres scheint ja problemlos zu funktionieren.

Manchmal braucht man bei einem FTP-Zugang zusätzliche Befehle um alle Dateien sichtbar zu machen.
z.B. LIST -a.