linux ftp批量删除文件,用于从ftp删除旧文件的Linux shell脚本

这是我写的一个脚本,用于删除超过7天的远程ftp站点上的任何文件.它的工作原理是检索目录列表,解析修改日期,然后重新连接以删除任何早于ndays的文件.

我怀疑硬编码到循环中的数字(元素日期)可能会根据系统的设置而改变. ls命令的返回格式取决于本地系统设置.

假设您的备份是每天,那么将ndays设置为10可能会解决您的问题.

#!/bin/bash

# get a list of files and dates from ftp and remove files older than ndays

ftpsite="ftp.yourserver.com"

ftpuser="loginusername"

ftppass="password"

putdir="/public_ftp/admin/logs"

ndays=7

# 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 $ftpsite <

user $ftpuser $ftppass

binary

cd $putdir

ls

quit

EOMYF

`

lista=( $listing )

# loop over our files

for ((FNO=0; FNO

# 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 $ftpsite <

user $ftpuser $ftppass

binary

cd $putdir

delete ${lista[`expr $FNO+8`]}

quit

EOMYF2

fi

fi

done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值