aiupdate backup

发布时间 2023-11-24 12:22:30作者: lsgxeva

aiupdate backup

 

#!/bin/bash
#filename: checkping.sh
#usage: ./checkping.sh ./IPList.csv

if [ $# -ne 1 ]; then
    echo "exit ..."
    exit 0
fi

ip_file=$1
if [ -e $file ]; then
    while IFS=, read -r DeviceSN RemoteEndPoint
    do
        echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "DeviceSN: ${DeviceSN}, RemoteEndPoint: ${RemoteEndPoint}"
        IPAddr=$( echo $RemoteEndPoint | cut -d : -f 1 )
        echo $IPAddr | grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null
        if [ $? -ne 0 ]
        then
            echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "Parse IPAddr NG - DeviceSN: ${DeviceSN}, IPAddr: ${IPAddr}"
            continue
        else
            echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "Parse IPAddr OK - DeviceSN: ${DeviceSN}, IPAddr: ${IPAddr}"
        fi

        ping -c 1 $IPAddr >/dev/null 2>&1
        if [ $? -ne 0 ]
        then
            echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "Check IPAddr DOWN - DeviceSN: ${DeviceSN}, IPAddr: ${IPAddr}"
        else
            echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "Check IPAddr UP - DeviceSN: ${DeviceSN}, IPAddr: ${IPAddr}"
        fi
    done<"$ip_file"
fi

exit 0

 

#!/bin/bash
#filename: backup.sh
#usage: ./backup.sh

sed -i '/^[[:space:]]*$/d' SNList.csv
sed -i '/^DeviceSN$/d' SNList.csv

rm -f "tmpval"
grep -Fxf SNList.csv SNList_total.csv 1>tmpval 2>/dev/null
tmpval_count=$(awk 'END {print NR}' tmpval)

if [ $tmpval_count -ne 0 ]
then
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "need backup, will be start backup ....." | tee -a backup.log

    SNList_total_count=$(awk 'END {print NR}' SNList_total.csv)
    let old_SNList_total_count=$SNList_total_count-1

    cat SNList.csv >>SNList_total.csv
    sed -i '/^[[:space:]]*$/d' SNList.csv
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "add SNList.csv to SNList_total.csv" | tee -a backup.log

    cur_date="$(date +%Y%m%d%H%M)"
    cp SNList_total.csv SNList_total_${cur_date}.csv
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "backup SNList_total_${cur_date}.csv" | tee -a backup.log

    SNList_count=$(awk 'END {print NR}' SNList.csv)
    let up_SNList_count=$SNList_count

    up_SNList_total_count=$(awk 'END {print NR}' SNList_total.csv)
    let last_SNList_total_count=$up_SNList_total_count-1

    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "Old SNList_total count = ${old_SNList_total_count}" | tee -a backup.log
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "update SNList count = ${up_SNList_count}" | tee -a backup.log
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "last SNList_total count = ${last_SNList_total_count}" | tee -a backup.log
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "add update success, backup done." | tee -a backup.log

else
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "already backup, will be stop backup ....." | tee -a backup.log

    SNList_count=$(awk 'END {print NR}' SNList.csv)
    let up_SNList_count=$SNList_count

    up_SNList_total_count=$(awk 'END {print NR}' SNList_total.csv)
    let last_SNList_total_count=$up_SNList_total_count-1

    cur_date="$(date +%Y%m%d%H%M)"
    cp SNList_total.csv SNList_total_${cur_date}.csv
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "backup SNList_total_${cur_date}.csv" | tee -a backup.log

    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "old SNList_total count = last SNList_total count" | tee -a backup.log
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "update SNList count = ${up_SNList_count}" | tee -a backup.log
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "last SNList_total count = ${last_SNList_total_count}" | tee -a backup.log
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "skip update success, backup done." | tee -a backup.log
fi

rm -f "tmpval"
exit 0

 

#!/bin/bash
#filename: aiupdate.sh
#usage: ./aiupdate.sh

DOWN_FILE="zjnineinoneipexcelout"
cur_date="$( date '+%Y-%m-%d' )"

read -p "Download zhejiang ship list file, Are you sure you want to continue connecting (y/n) ? " choice_val
if [ "$choice_val" == "y" ]
then
    curl -s -O "http://10.0.8.182:5000/user/$DOWN_FILE"
    [ $( du -s $DOWN_FILE | awk '{print $1}' ) -lt 5 ] && echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "$DOWN_FILE error, will exit." && exit 0
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "$DOWN_FILE success"
    mv $DOWN_FILE ${DOWN_FILE}.xlsx
    in2csv zjnineinoneipexcelout.xlsx >zjnineinoneipexcelout.csv 2>/dev/null
    [ $( du -s ${DOWN_FILE}.csv | awk '{print $1}' ) -lt 5 ] && echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "${DOWN_FILE}.csv error, will exit." && exit 0

    sed -i '/^[[:space:]]*$/d' ${DOWN_FILE}.csv
    grep -E "设备序列号|河北雄安|浙江" ${DOWN_FILE}.csv | awk 'BEGIN { FS=OFS="," } {print $2,$3}' ${DOWN_FILE}.csv >zj-ai-sn-ip-${cur_date}.csv
    [ $( du -s zj-ai-sn-ip-${cur_date}.csv | awk '{print $1}' ) -lt 5 ] && echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "zj-ai-sn-ip-${cur_date}.csv error, will exit." && exit 0
    sed -i '1s/设备序列号,Ip/DeviceSN,RemoteEndPoint/' zj-ai-sn-ip-${cur_date}.csv
    rm -f ${DOWN_FILE}*
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "count file == " "$( wc -l zj-ai-sn-ip-${cur_date}.csv )"
    cp zj-ai-sn-ip-${cur_date}.csv RecordFile/zj-ai-sn-ip.csv
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "in RecordFile directory generate zj-ai-sn-ip.csv"
else
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "skip down $DOWN_FILE"
fi

echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "process SNList_new ...."

echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "need select zj-ai-sn-ip.csv and SNList_total.csv"
cat /dev/null >SNList_new.csv
./SNHandler >/dev/null 2>&1

echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "in RecordFile directory copy SNList_null.csv to SNList.csv"
[ ! -e "RecordFile/SNList_null.csv" ] && echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "in RecordFile directory SNList_null.csv non-existent, will exit." && exit 0
cp RecordFile/SNList_null.csv RecordFile/SNList.csv

echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "in RecordFile directory copy IPList_null.csv to IPList.csv"
[ ! -e "RecordFile/IPList_null.csv" ] && echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "in RecordFile directory IPList_null.csv non-existent, will exit." && exit 0
cp RecordFile/IPList_null.csv RecordFile/IPList.csv

echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "in RecordFile directory add SNList_new.csv to IPList.csv"
cat SNList_new.csv >>RecordFile/IPList.csv


SNList_new_count=$(awk 'END {print NR}' SNList_new.csv)
IPList_count=$(awk 'END {print NR}' RecordFile/IPList.csv)
SNList_count=$(awk 'END {print NR}' RecordFile/SNList.csv)
SNList_total_count=$(awk 'END {print NR}' RecordFile/SNList_total.csv)
echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "SNList_new_count=${SNList_new_count} IPList_count=${IPList_count} SNList_count=${SNList_count} SNList_total_count=${SNList_total_count}"
let up_IPList_count=$IPList_count-1
[ $up_IPList_count -eq 0 ] && echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "up_IPList_count is zero, will exit." && exit 0

if [ $up_IPList_count -eq $SNList_new_count ]
then
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "process SNList_new success, up_IPList_count == SNList_new_count"
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "Please continue running OTA ......"
else
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "process SNList_new failed, up_IPList_count != SNList_new_count"
    echo "$( date +'%Y/%m/%d %H:%M:%S' ) " "Please check SNList_new file ......"
fi

exit 0

 

=========== End