
[英]Trying to use this bash script to login to a remote ftp from ssh and delete files older than N days old
[英]Bash script - delete old files
我有一个将压缩文件上传到 ftp 的脚本,这是我在下面显示的代码。
此代码工作正常,但我想对其进行调整,以便在上传文件后,它会删除超过一周的ftp 文件。
#!/bin/sh
HOST='xxx'
USER='xxx'
PASSWD='xxx'
DAY=`date +"%d%m%Y_%H%M"`
cd /temp
rm -fr backup
mkdir backup
cd backup
export GZIP=-9
tar -czvf $DAY-backup.tar.gz --exclude="*/node_modules/*" /var/www/html/cars
FILE=$DAY-backup.tar.gz
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
put $FILE
quit
END_SCRIPT
exit 0
一种选择是使用 find 命令来捕获早于 7 天的文件并将其删除。 所以它给出了这样的东西:
find . -type f -name ".*-backup.tar.gz" -mtime +7 -exec rm {} \;
你可以在你的脚本中添加这一行如果你想先测试删除替换 exec 部分打印以显示捕获的文件:
find . -type f -name ".*-backup.tar.gz" -mtime +7 -print
你可以试试这个解决方案:
# Purpose: This step is used to Purge 7 days old files
export PROJECT_LOG="${PROJECT_HOME}/log";
export APP_MAINT_LOG="APP.log"
export LOG_RETAIN_DUR=7
echo "Maintenance Job Started" > "${APP_MAINT_LOG}"
echo "=========================================================================" >> "${APP_MAINT_LOG}"
echo "${LOG_RETAIN_DUR} Day(s) Old Log Files..." >> "${APP_MAINT_LOG}"
echo "=========================================================================" >> "${APP_MAINT_LOG}"
find "${PROJECT_LOG}" -mtime +"${LOG_RETAIN_DUR}" -type f -exec ls -1 {} \; >> "${APP_MAINT_LOG}"
#find "${PROJECT_LOG}" -mtime +"${LOG_RETAIN_DUR}" -type f -exec rm -rf {} \;
echo "=========================================================================" >> "${APP_MAINT_LOG}"
echo "Maintenance Job Completed" >> "${APP_MAINT_LOG}"
cat "${APP_MAINT_LOG}"
注意:我已经评论了删除文件行,以便您可以检查并运行!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.