diff --git a/shell/task.sh b/shell/task.sh index 67a77810..f6b59175 100755 --- a/shell/task.sh +++ b/shell/task.sh @@ -87,7 +87,7 @@ run_normal() { log_dir_tmp="${first_param##*/}" log_dir="$dir_log/${log_dir_tmp%%.*}" log_path="$log_dir/$log_time.log" - cmd=">> $log_path" + cmd=">> $log_path 2>&1" [[ "$show_log" == "true" ]] && cmd="" make_dir "$log_dir" @@ -97,11 +97,11 @@ run_normal() { local id=$(cat $list_crontab_user | grep -E "$cmd_task $first_param" | perl -pe "s|.*ID=(.*) $cmd_task $first_param\.*|\1|" | head -1 | awk -F " " '{print $1}') [[ $id ]] && update_cron "\"$id\"" "0" "$$" "$log_path" - . $file_task_before $cmd 2>&1 + . $file_task_before $cmd - eval timeout -k 10s $command_timeout_time $which_program $first_param $cmd 2>&1 + eval timeout -k 10s $command_timeout_time $which_program $first_param $cmd - eval . $file_task_after $cmd 2>&1 + eval . $file_task_after $cmd [[ $id ]] && update_cron "\"$id\"" "1" "" "$log_path" local end_time=$(date '+%Y-%m-%d %H:%M:%S') local diff_time=$(($(date +%s -d "$end_time") - $(date +%s -d "$begin_time"))) @@ -123,7 +123,7 @@ run_concurrent() { log_dir_tmp="${first_param##*/}" log_dir="$dir_log/${log_dir_tmp%%.*}" log_path="$log_dir/$log_time.log" - cmd=">> $log_path" + cmd=">> $log_path 2>&1" [[ "$show_log" == "true" ]] && cmd="" make_dir $log_dir @@ -133,7 +133,7 @@ run_concurrent() { local id=$(cat $list_crontab_user | grep -E "$cmd_task $first_param" | perl -pe "s|.*ID=(.*) $cmd_task $first_param\.*|\1|" | head -1 | awk -F " " '{print $1}') [[ $id ]] && update_cron "\"$id\"" "0" "$$" "$log_path" - eval . $file_task_before $cmd 2>&1 + eval . $file_task_before $cmd local envs=$(eval echo "\$${third_param}") local array=($(echo $envs | sed 's/&/ /g')) @@ -141,7 +141,7 @@ run_concurrent() { for i in "${!array[@]}"; do export ${third_param}=${array[i]} single_log_path="$log_dir/${single_log_time}_$((i + 1)).log" - timeout -k 10s $command_timeout_time $which_program $first_param &>$single_log_path 2>&1 & + timeout -k 10s $command_timeout_time $which_program $first_param &>$single_log_path & done wait @@ -151,7 +151,7 @@ run_concurrent() { [ -f $single_log_path ] && rm -f $single_log_path done - eval . $file_task_after $cmd 2>&1 + eval . $file_task_after $cmd [[ $id ]] && update_cron "\"$id\"" "1" "" "$log_path" local end_time=$(date '+%Y-%m-%d %H:%M:%S') local diff_time=$(($(date +%s -d "$end_time") - $(date +%s -d "$begin_time"))) @@ -164,7 +164,7 @@ run_else() { local log_dir_tmp="${1##*/}" local log_dir="$dir_log/${log_dir_tmp%%.*}" log_path="$log_dir/$log_time.log" - cmd=">> $log_path" + cmd=">> $log_path 2>&1" [[ "$show_log" == "true" ]] && cmd="" make_dir "$log_dir" @@ -174,11 +174,11 @@ run_else() { local id=$(cat $list_crontab_user | grep -E "$cmd_task $first_param" | perl -pe "s|.*ID=(.*) $cmd_task $first_param\.*|\1|" | head -1 | awk -F " " '{print $1}') [[ $id ]] && update_cron "\"$id\"" "0" "$$" "$log_path" - eval . $file_task_before $cmd 2>&1 + eval . $file_task_before $cmd - eval timeout -k 10s $command_timeout_time "$@" $cmd 2>&1 + eval timeout -k 10s $command_timeout_time "$@" $cmd - eval . $file_task_after $cmd 2>&1 + eval . $file_task_after $cmd [[ $id ]] && update_cron "\"$id\"" "1" "" "$log_path" local end_time=$(date '+%Y-%m-%d %H:%M:%S') local diff_time=$(($(date +%s -d "$end_time") - $(date +%s -d "$begin_time"))) diff --git a/shell/update.sh b/shell/update.sh index 3cfcb24b..47df549a 100755 --- a/shell/update.sh +++ b/shell/update.sh @@ -423,6 +423,17 @@ get_uniq_path() { } main() { + show_log="false" + while getopts ":l" opt + do + case $opt in + l) + show_log="true" + ;; + esac + done + [[ "$show_log" == "true" ]] && shift $(($OPTIND - 1)) + local p1=$1 local p2=$2 local p3=$3 @@ -431,26 +442,32 @@ main() { local p6=$6 local log_time=$(date "+%Y-%m-%d-%H-%M-%S") local log_path="$dir_log/update/${log_time}_$p1.log" + + local cmd=">> $log_path" + [[ "$show_log" == "true" ]] && cmd="" + local begin_time=$(date '+%Y-%m-%d %H:%M:%S') case $p1 in update) - echo -e "## 开始执行... $begin_time\n" >> $log_path - cat $task_error_log_path >> $log_path - update_qinglong "$2" >> $log_path + eval echo -e "\#\# 开始执行... $begin_time\\\n" $cmd + eval cat $task_error_log_path $cmd + eval update_qinglong "$2" $cmd ;; extra) - echo -e "## 开始执行... $begin_time\n" >> $log_path - cat $task_error_log_path >> $log_path - run_extra_shell >> $log_path + eval echo -e "\#\# 开始执行... $begin_time\\\n" $cmd + eval cat $task_error_log_path $cmd + eval run_extra_shell $cmd ;; repo) get_user_info get_uniq_path "$p2" "$p6" log_path="$dir_log/update/${log_time}_${uniq_path}.log" - echo -e "## 开始执行... $begin_time\n" >> $log_path - cat $task_error_log_path >> $log_path + [[ "$show_log" == "false" ]] && cmd=">> $log_path" + + eval echo -e "\#\# 开始执行... $begin_time\\\n" $cmd + cat $task_error_log_path $cmd if [[ -n $p2 ]]; then - update_repo "$p2" "$p3" "$p4" "$p5" "$p6" >> $log_path + eval update_repo "$p2" "$p3" "$p4" "$p5" "$p6" $cmd else echo -e "命令输入错误...\n" usage @@ -460,29 +477,31 @@ main() { get_user_info get_uniq_path "$p2" log_path="$dir_log/update/${log_time}_${uniq_path}.log" - echo -e "## 开始执行... $begin_time\n" >> $log_path - cat $task_error_log_path >> $log_path + [[ "$show_log" == "false" ]] && cmd=">> $log_path" + + eval echo -e "\#\# 开始执行... $begin_time\\\n" $cmd + eval cat $task_error_log_path $cmd if [[ -n $p2 ]]; then - update_raw "$p2" >> $log_path + eval update_raw "$p2" $cmd else echo -e "命令输入错误...\n" usage fi ;; rmlog) - echo -e "## 开始执行... $begin_time\n" >> $log_path - cat $task_error_log_path >> $log_path - . $dir_shell/rmlog.sh "$p2" >> $log_path + eval echo -e "\#\# 开始执行... $begin_time\\\n" $cmd + eval cat $task_error_log_path $cmd + eval . $dir_shell/rmlog.sh "$p2" $cmd ;; bot) - echo -e "## 开始执行... $begin_time\n" >> $log_path - cat $task_error_log_path >> $log_path - . $dir_shell/bot.sh >> $log_path + eval echo -e "\#\# 开始执行... $begin_time\\\n" $cmd + eval cat $task_error_log_path $cmd + eval . $dir_shell/bot.sh $cmd ;; check) - echo -e "## 开始执行... $begin_time\n" >> $log_path - cat $task_error_log_path >> $log_path - . $dir_shell/check.sh >> $log_path + eval echo -e "\#\# 开始执行... $begin_time\\\n" $cmd + eval cat $task_error_log_path $cmd + eval . $dir_shell/check.sh $cmd ;; *) echo -e "命令输入错误...\n" @@ -491,7 +510,7 @@ main() { esac local end_time=$(date '+%Y-%m-%d %H:%M:%S') local diff_time=$(($(date +%s -d "$end_time") - $(date +%s -d "$begin_time"))) - echo -e "\n## 执行结束... $end_time 耗时 $diff_time 秒" >> $log_path + eval echo -e "\\\n\#\# 执行结束... $end_time 耗时 $diff_time 秒" $cmd cat $log_path }