作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 dropbox_uploader.sh 运行备份我的数据库. backupds 通过基于日期的命名约定保存在 Dropbox 中:
DATE=$(date +"%d-%m-%Y_%H%M")
BKP_FILE="pal_BK_$DATE.sql"
pal_BK_12-12-2016_1311.sql
.
最佳答案
如果不修改日期格式,文件之间的比较会变得有点奇怪,但这会很好。
这个想法是以秒为单位计算当前日期(以您的格式)和限制删除日期(1个月前)。然后对于列出的文件的每个条目,我们检索日期,将其转换为秒,并与规定的限制进行比较。如果文件足够旧,我们将其删除。
#!/bin/bash
#####################
# Convert a given date to s (leaves result in DATE_IN_S)
#####################
dateToS() {
local date=$1
local year=$(echo $date | tr "-" "\t" | tr "_" "\t" | awk {' print $1 '})
local month=$(echo $date | tr "-" "\t" | tr "_" "\t"| awk {' print $2 '})
local day=$(echo $date | tr "-" "\t" | tr "_" "\t" | awk {' print $3 '})
local hour=$(echo $date | tr "-" "\t" | tr "_" "\t" | awk {' print $4 '} | cut -c -2)
local minute=$(echo $date | tr "-" "\t" | tr "_" "\t" | awk {' print $4 '} | cut -c 3-)
local seconds="00"
# Compute the date time in s
DATE_IN_S=$(date -d "${year}-${month}-${day} ${hour}:${minute}:${seconds}" +%s)
}
#####################
# MAIN CODE
#####################
DEST_DIR= # Dropbox backups base folder
DATE=$(date +"%Y-%m-%d_%H%M")
BKP_FILE="pal_BK_${DATE}.sql"
# Compute the limit date to erase files
LIMIT_DATE=$(date +%s)
LIMIT_DATE=$((LIMIT_DATE-2592000)) # 1 month in seconds
# Retrieve the list of files
files=$(./dropbox_uploader.sh list $DEST_DIR | awk {' print $3 '} | tail -n +2)
# Process each file
for file in $files; do
fileDate=$(echo $file | tr "_" "\t" | tr "." "\t" | awk {' print $3"_"$4 '})
# Retrieve file date in seconds
dateToS $fileDate
# Erase the file if it exceeds the limit date
#echo "[DEBUG] Comparing ${DATE_IN_S} - ${LIMIT_DATE}"
if [ ${DATE_IN_S} -lt ${LIMIT_DATE} ]; then
echo "[INFO] Erasing file $file"
./dropbox_uploader.sh delete ${DEST_DIR}${file}
fi
done
请注意:
关于bash - 使用 dropbox_uploader.sh 在特定日期后删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41098278/
我已经阅读了一堆 dropbox_uploader 的帖子,但无法继续……我已经创建了应用程序并运行脚本以在我的 Linux 服务器上安装 uploader 应用程序 ( https://github
我正在使用 dropbox_uploader.sh 运行备份我的数据库. backupds 通过基于日期的命名约定保存在 Dropbox 中: DATE=$(date +"%d-%m-%Y_%H%M"
我是一名优秀的程序员,十分优秀!