| #!/bin/sh |
| myself=${0##*/} |
| # Uploads full and tiny logs tgz files to server |
| |
| CURRENT_MCC=$(getprop hawk.mcc 0) |
| CHINA_MCC=460 |
| |
| if [ $CURRENT_MCC == $CHINA_MCC ] ; then |
| HAWK_SENDER_SERVER_URL_NAME=$(getprop ro.hawk.logs.server_cn.url.name "ftp://Hawksh.marvell.com") |
| HAWK_SENDER_SERVER_URL_IP=$(getprop ro.hawk.logs.server_cn.url.ip "ftp://222.73.125.85") |
| HAWK_SENDER_SERVER_USERNAME=$(getprop ro.hawk.logs.server_cn.user "HAWKlogs") |
| HAWK_SENDER_SERVER_PASSWORD=$(getprop ro.hawk.logs.server_cn.pass "mrvllogs!@") |
| else |
| HAWK_SENDER_SERVER_URL_NAME=$(getprop ro.hawk.logs.server.url.name "ftp://HawkPtk.marvell.com") |
| HAWK_SENDER_SERVER_URL_IP=$(getprop ro.hawk.logs.server.url.ip "ftp://212.199.69.13") |
| HAWK_SENDER_SERVER_USERNAME=$(getprop ro.hawk.logs.server.user "HAWKServer_APSE") |
| HAWK_SENDER_SERVER_PASSWORD=$(getprop ro.hawk.logs.server.pass "SR4p1RctEG9") |
| fi |
| |
| #2G upload speed around 236 kbps |
| let "DEFAULT_FTP_UPLOAD_SPEED=30*1024" |
| |
| BOARD_IMEI=$(getprop persist.ml.imei "") |
| if [ -z "$BOARD_IMEI" ] ; then |
| echo "missing IMEI property" > /dev/kmsg |
| exit 1 |
| fi |
| |
| EVENT_DIR=$1 |
| cd $EVENT_DIR |
| |
| # if tar doesn't exist, we pack new one |
| FILE=`find -name \*.tar` |
| if [ -z "$FILE" ] ; then |
| #taking only EVENT_ID(directory name) |
| EVENT_ID=${EVENT_DIR##*/} |
| |
| TINY_LOG=tiny_logs.tgz |
| FULL_LOG=full_logs.tgz |
| |
| if [ \( -e OFFLINE \) -a \( -e "$TINY_LOG" -o -e "$FULL_LOG" \) ] ; then |
| RANDOM="head /dev/urandom | tr -dc "0123456789abcdefhghijklmnopqrstuvwxyz" | head -c4" |
| UNIQUE_ID=$BOARD_IMEI-`eval $RANDOM`-`eval $RANDOM`-`eval $RANDOM`-`eval $RANDOM`-`eval $RANDOM` |
| mkdir $EVENT_ID |
| # __ to indicate not to pull from internal server |
| FILE=__$UNIQUE_ID.tar |
| if [ -e "$TINY_LOG" ] ; then |
| mv $TINY_LOG $EVENT_ID/ |
| fi |
| if [ -e "$FULL_LOG" ] ; then |
| mv $FULL_LOG $EVENT_ID/ |
| fi |
| |
| tar -cf $FILE $EVENT_ID |
| # delete event folder to optimise space usage |
| rm -r $EVENT_ID |
| else |
| echo "$myself: No logs found for upload.." > /dev/kmsg |
| exit 1 |
| fi |
| fi |
| |
| # sending logs to server |
| FILE_SIZE=`ls -nl $FILE | awk '{print $5}'` |
| let "MAX_UPLOAD_TIME=$FILE_SIZE / $DEFAULT_FTP_UPLOAD_SPEED" |
| if [ "$MAX_UPLOAD_TIME" -lt "120" ] ; then |
| #set defualt upload time to 120 seconds |
| MAX_UPLOAD_TIME=120 |
| fi |
| |
| upload() { |
| echo upload $EVENT_DIR/$FILE to $1 > /dev/kmsg |
| curl --connect-timeout 20 -m $MAX_UPLOAD_TIME -C - -T $FILE -u $HAWK_SENDER_SERVER_USERNAME:$HAWK_SENDER_SERVER_PASSWORD $1/ |
| exval=$? |
| if [ $exval == 0 ] ; then |
| # remove __ from name |
| NEW_FILE=`echo $FILE | cut -d '_' -f3` |
| curl --connect-timeout 20 -Q "-RNFR $FILE" -Q "-RNTO $NEW_FILE" -u $HAWK_SENDER_SERVER_USERNAME:$HAWK_SENDER_SERVER_PASSWORD $1/ |
| exval=$? |
| if [ $exval == 0 ] ; then |
| #if we succeeded to upload logs, then delete from SD and exit |
| cd .. |
| echo "hawk: curl upload passed" > /dev/kmsg |
| rm -rf $EVENT_DIR |
| exit 0 |
| else |
| echo "hawk: curl rename failed: $exval" > /dev/kmsg |
| fi |
| elif [ $exval == 6 ] ; then |
| echo "hawk: curl upload failed - Can't resolve host: $exval" > /dev/kmsg |
| else |
| echo "hawk: curl upload failed: $exval" > /dev/kmsg |
| fi |
| } |
| |
| # Try upload using DNS |
| upload $HAWK_SENDER_SERVER_URL_NAME |
| # Try again without DNS |
| upload $HAWK_SENDER_SERVER_URL_IP |
| # Failed to upload - exit |
| exit -1 |