96 ENCODING="$3" 97 else 98 ENCODING="en_US.ISO-8859-1" 99 fi100 101 #return 0 # hack para testes.102 # Enviando o E-Mail.103 if LC_ALL="$ENCODING" echo -e "$MSG" | mail -s "$ASS" $EMAILS104 then105 return 0 # Foi enviado na boa.106 else107 return 2 # O envio do e-mail deu problema.108 fi109 110 }111 112 testStatusFile () {113 114 # Return codes115 # 1 - Nao foi passado o arquivo116 # 0 - Arquivo criado com valor 0117 # 2 - Arquivo esta com valor 0118 # 3 - Arquivo esta com valor 1119 120 local statusfile121 if [ -n "$1" ] 122 then123 statusfile=$1124 else125 return 1 # nao foi passado o status file.126 fi127 128 if ! [ -s $statusfile ]129 then130 echo 0 > $statusfile131 return 0132 fi133 134 [ "$(<$statusfile)" = "0" ] && return 2135 136 [ "$(<$statusfile)" = "1" ] && return 3137 138 }139 140 # #141 # --- CORPO DO PROGRAMA --- #142 # #143 144 for url in ${URLS};145 do146 147 # Acertando variAveis temporArias (para cada url elas ficam diferentes).148 TMP_STATUS_FILE="${STATUS_FILE/FOO/${url##*\/}}"149 TMP_LYNX_ERROR_FILE="${LYNX_ERROR_FILE/FOO/${url##*\/}}"150 TMP_LYNX=${LYNX/URL/$url} && TMP_LYNX=${TMP_LYNX/ERROR_FILE/$TMP_LYNX_ERROR_FILE}151 152 # Fazendo request da url.153 $TMP_LYNX &>/dev/null154 155 if [ "$?" = "1" ]156 then157 158 EXITCODE=1159 testStatusFile $TMP_STATUS_FILE160 if [ "$?" = "0" ] || [ "$?" = "2" ]161 then162 163 echo 1 > $TMP_STATUS_FILE164 165 MSG="\n Ocorreu um erro com o Lynx, nao foi possivel negociar a requisicao com o servidor."166 MSG="$MSG\n Pode ser possivel que o micro nao esteja ligado ou o servico responsavel nao esteja de pe."167 MSG="$MSG\n E ainda possivel que nao haja conexao com a internet ou existam outros problemas na conexao."168 MSG="$MSG\n"169 170 ASS="Problemas na conexao com $url"171 172 sendMail "$ASS" "$MSG"173 174 fi175 176 else177 178 # Pegando protocolo e codigo de retorno do arquivo.179 PROTOCOL=$(grep STATUS $TMP_LYNX_ERROR_FILE | cut -d"=" -f2 | cut -d" " -f1)180 CODE=$(grep STATUS $TMP_LYNX_ERROR_FILE | cut -d"=" -f2 | cut -d" " -f2)181 182 # Testando codigos183 case "$CODE" in184 185 2??)186 187 # Codigos 2XX sao codigos de sucesso.188 echo 0 > $TMP_STATUS_FILE189 190 ;;191 192 4??)193 194 EXITCODE=1195 testStatusFile $TMP_STATUS_FILE196 if [ "$?" = "0" ] || [ "$?" = "2" ]197 then198 199 echo 1 > $TMP_STATUS_FILE200 201 case "$CODE" in202 203 204 403)205 206 MSG="\n Acesso proibido a $url.\n Erro codigo 403, protocolo $PROTOCOL"207 ASS="Erro de cliente na url $url, erro 403."208 sendMail "$ASS" "$MSG"209 210 ;;211 212 404)213 214 MSG="\n O arquivo da url $url nao foi encontrado.\n Erro codigo 404, protocolo $PROTOCOL"215 ASS="Erro de cliente na url $url, erro 404."216 sendMail "$ASS" "$MSG"217 218 ;;219 220 408)221 222 MSG="\n Timeout de requisicao para url $url.\n Erro codigo 408, protocolo $PROTOCOL"223 ASS="Erro de cliente na url $url, erro 408."224 sendMail "$ASS" "$MSG"225 226 ;;227 228 *)229 230 MSG="\n O erro $CODE aconteceu com a url $url.\nVerifique a lista de erros HTTP em http://en.wikipedia.org/wiki/HTTP_error_codes ou http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html para ver qual e o erro."231 ASS="Erro de cliente na url $url, erro $CODE."232 sendMail "$ASS" "$MSG"233 234 ;;235 236 esac237 238 fi239 240 ;;241 242 5??)243 244 EXITCODE=1245 testStatusFile $TMP_STATUS_FILE246 if [ "$?" =