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

관련 정보