mirror of
https://github.com/whyour/qinglong.git
synced 2025-05-22 14:26:07 +08:00
51 lines
1.3 KiB
Bash
Executable File
51 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
days=$1
|
|
|
|
remove_js_log() {
|
|
local log_full_path_list=$(find $dir_log -name "*.log")
|
|
local diff_time
|
|
for log in $log_full_path_list; do
|
|
local log_date=$(echo $log | awk -F "/" '{print $NF}' | cut -c1-10)
|
|
if ! [[ $log_date =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
|
|
if [[ $is_macos -eq 1 ]]; then
|
|
log_date=$(stat -f %Sm -t "%Y-%m-%d" "$log")
|
|
else
|
|
log_date=$(stat -c %y "$log" | cut -d ' ' -f 1)
|
|
fi
|
|
fi
|
|
if [[ $is_macos -eq 1 ]]; then
|
|
diff_time=$(($(date +%s) - $(date -j -f "%Y-%m-%d" "$log_date" +%s)))
|
|
else
|
|
diff_time=$(($(date +%s) - $(date +%s -d "$log_date")))
|
|
fi
|
|
if [[ $diff_time -gt $((${days} * 86400)) ]]; then
|
|
local log_path=$(echo "$log" | sed "s,${dir_log}/,,g")
|
|
local result=$(find_cron_api "log_path=$log_path")
|
|
echo -e "查询文件 $log_path"
|
|
if [[ -z $result ]]; then
|
|
echo -e "删除中~"
|
|
rm -vf $log
|
|
else
|
|
echo -e "正在被 $result 使用,跳过~"
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|
|
remove_empty_dir() {
|
|
cd $dir_log
|
|
for dir in $(ls); do
|
|
if [[ -d $dir ]] && [[ -z $(ls $dir) ]]; then
|
|
rm -rf $dir
|
|
fi
|
|
done
|
|
}
|
|
|
|
if [[ ${days} ]]; then
|
|
echo -e "查找旧日志文件中...\n"
|
|
remove_js_log
|
|
remove_empty_dir
|
|
echo -e "删除旧日志执行完毕\n"
|
|
fi
|