FTPサーバーでシェルスクリプトを使用して最も古いファイルを削除する

FTPサーバーでシェルスクリプトを使用して最も古いファイルを削除する

FTPサーバーのディレクトリから最も古いファイルを削除するcronジョブを作成したいと思います。最初のシェルスクリプトを作成しました。

#!/bin/sh

# connect to backup FTP server...
lftp -u (username),password backup.contabo.net << EOF
cd /backups
ls

EOF

これは私が得たものです。http://image.prntscr.com/image/72a86bf453c849a8af4a3340e4936172.jpeg

いくつかの検索を実行し、VPSのテストフォルダ内の端末でテストすると(新しく作成された.txtファイルを含む)、次の行が機能します。

rm "$(ls -t | tail -1)"

...しかし、シェルスクリプトに入れて実行すると、次のような結果bash testing.shが出ます。

rm: アクセスに失敗しました: 550 index.php: そのファイルまたはディレクトリがありません。

スクリプトがindex.phpを削除しようとしているのはなぜですか?ファイルリストにも見えません。削除する必要があります01December_01_2016_html.tar

編集する さて、いよいよファイル削除に成功しましたが、ファイル名を手動で作成することになりました。

rm /backups/01December_01_2016_html.tar

それで、まずファイル名を含む変数を作成して渡すことができるようにしたいと思います。rm /backups/$FILENAME.tar以下のコードでエラーが発生するため、そうしません。Unknown command 'FILENAME="testing.sh" これは基本的に同じです。つまり、FTPディレクトリの代わりにローカルディレクトリにある最新のファイルをインポートします(単一ファイルがlsすべてのファイルを正しく検索しても)。

FILENAME="$(ls -t | tail -1)"
echo $FILENAME

ベストアンサー1

おすすめ記事