【发布时间】:2015-04-01 04:32:57
【问题描述】:
我正在基于这个创建一个脚本。但是当我在结果上运行它时,如果月份不一样,它会删除比日期更新的文件。
Linux shell script for delete old files from ftp
“删除 02-02-2015”这是我今天创建的备份
#!/bin/bash
# get a list of directories and dates from ftp and remove directories older than ndays
ftpsite="hostname"
ftpuser="user"
ftppass="pass"
putdir="/full"
ndays=15
# work out our cutoff date
MM=`date --date="$ndays days ago" +%b`
DD=`date --date="$ndays days ago" +%d`
echo removing files older than $MM $DD
# get directory listing from remote source
listing=`ftp -i -n -p $ftpsite <<EOMYF
user $ftpuser $ftppass
binary
cd $putdir
ls
quit
EOMYF
`
lista=( $listing )
# loop over our files
for ((FNO=0; FNO<${#lista[@]}; FNO+=9));do
# month (element 5), day (element 6) and filename (element 8)
# echo Date ${lista[`expr $FNO+5`]} ${lista[`expr $FNO+6`]} File: ${lista[`expr $FNO+8`]}
# check the date stamp
if [ ${lista[`expr $FNO+5`]}=$MM ];
then
if [[ ${lista[`expr $FNO+6`]} -lt $DD ]];
then
# Remove this file
echo "Removing ${lista[`expr $FNO+8`]}";
ftp -i -n -p $ftpsite <<EOMYF2
user $ftpuser $ftppass
binary
cd $putdir
mdelete ${lista[`expr $FNO+8`]}/*
rmdir ${lista[`expr $FNO+8`]}
quit
EOMYF2
fi
fi
done
结果 => 删除早于 1 月 18 日的文件 删除 02-02-2015
【问题讨论】: