使用 FTP 服务器上的 shell 脚本删除最旧的文件

使用 FTP 服务器上的 shell 脚本删除最旧的文件

我想创建一个 cron 作业来删除 FTP 服务器上目录中最旧的文件。我已经创建了我的第一个 shell 脚本

#!/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)"

...但是当我将它放在 shell 脚本中并且当我运行它时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

相关内容