#!/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") t '查询文件 %s' "$log_path" if [[ -z $result ]]; then t '删除中~' rm -vf $log else t '正在被 %s 使用,跳过~' "$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 t '查找旧日志文件中...\n' remove_js_log remove_empty_dir t '删除旧日志执行完毕\n' fi