domingo, 21 de diciembre de 2014

Twitter Programado - con configuracion

Tengo un trabajo y clientes que no todas las computadoras están en la ciudad donde vivo entonces tengo dificultades para hacer detalles mínimos de programación y estos son los problemas que tengo

.- Trasladarme hasta donde están esas computadoras para detalles mínimos no es viable, por el tiempo o lo premura, ademas del costo del transporte.
.- Las personas en esos lugares no están en esos locales como técnicos "no es su trabajo pues" y por eso motivo no son muy cooperadores.
.- No siempre tienen conocimientos de como hacer las cosas las personas que tienen la computadora cerca. Y también están los que le tienen miedo a tocar algo no sea que se descomponga MAS.
.- Linux NO es un sistema estéticamente parecido a windows y esa es una barrera mas para tener apoyo técnico remoto de las personas.
.- No tengo paciencia, para explicar las cosas.

Los equipos se sincronizan por internet y nunca he tenido problemas, pero como hombre precavido vale por dos. He hecho un script para que envié un post  a twitter a una cuenta que configure privada, con información de la computadora, para dar asistencia remota o tomar el control de la mismo con un programa VNC como Vinagre.

Requisitos
########
.- Sistema operativo linux o unix (perl, curl, cron instalados)
.- Cuenta twitter, configurada privada, para manejo de información privada (post protegidos)
.- Ttytter (cliente twitter en linea de comandos - perl)
.- Archivos ttytterrc y ttytterkey ya configurados.(buscar manual)
.- Otra cuenta twitter ya configurada como seguidor y aceptado por la cuenta privada. (opcional, pero mucho mas cómodo)
.- Comprender que el script puede enviar información sensible y tomar precauciones.
.- Router configurado con puertos abiertos para poder conectarse a distancia sí es que fuera necesario. Y OBVIO saber el numero de puerto.
.- Tener algún servicio corriendo en la maquina remota para poder interaccionar con ella. VNC, Web, FTP.  Si no que caso tendría esa información.
.- Dar permisos de ejecución al script "chmod +x envioIP "envioIP es un nombre sugerido y esta en libertad de ponerle otro nombre
.- Agregar tarea a cron

Información que necesito
########
Dirección IP publica (afuera del router y la que es visible desde internet
Ciudad
Dirección IP privada (adentro de la red del router - intranet)
AP conectado
Usuario

Script    ####

## Si quieres usar el script como esta, debes de poner esto en la terminal
mkdir -vp ~/ATEdicion/{Config,Scripts}
cd ~/ATEdicion/Scripts/
wget -c http://www.floodgap.com/software/ttytter/dist2/2.1.00.txt
mv 2.1.00.txt ttytter

Copia y pega lo siguiente de la linea hasta exit en un archivo nuevo
con tu editor de texto preferido. Se sugiere lo guardes en la carpeta ATEdicion/Scripts

-----------------------------
#!/bin/bash
#
#Autor: Abraham Tamayo
#URI: abrahamtamayo.blogspot.com
#Twitter: @abrahamtamayo
#To: ATEdicion
#Disclaimer: Twitter and another brands are under Copy Rights Laws
#Only education purpose.
#I DON'T have responsibility for the bad USED   
#Me and ATEdicion don't give support to everybody
#It's only to personal use
#The scripts can change without advence
#
if [ `hostname -i | awk '{print $1}'` == "127.0.0.2" ]
    then
        ### Si estamos desconectados borra el archivo candado
        ### Estas desconectado así que no harás nada
        ### Aunque lo quisieras, hasta que te conectes
        ### Pero podrías tomar algunas capturas de pantalla
        ### Para saber que ocurre en la computadora
        ### Tomar una foto con la webcam
            # fswebcam -r 640x480 --jpeg 100 -D 4 -S 13 ~/ATEdicion/registro.jpg &
            # REGIS=$(date +"%d-%m-%Y-%H-%M");
            # mv ~/ATEdicion/registro.jpg ~/ATEdicion/$REGIS.jpg &
        ### Tomar una captura de pantalla
            # scrot -c -d 3 escritorio.jpg &
            # REGIS=$(date +"%d-%m-%Y-%H-%M");
            # mv ~/ATEdicion/escritorio.jpg ~/ATEdicion/$REGIS_screen.jpg &
        ### Hasta algun video grabar
        ### Grabar Audio
        rm ~/ATEdicion/Config/BLOCK
        echo "Estas desconectado y se elimino el candado"
        2> /dev/null
    else
        ### Si estamos conectados verifica que si esta el archivo candado
        ### Esto es útil para no enviar twits con información ya recibida
        ### Si se reciben dos o mas twitts con la información
        ### Significa que ha tenido problemas de red
        ### Si los ip recibidos son diferentes a los antes recibidos
        ### El también el AP es diferente significa que el equipo
        ### Se ha movido a otra parte diferente a la que fue destinado
        ### Se tiene que recibir un twit diario
        if [ `ls ~/ATEdicion/AllFitness/Config/ | grep 'BLOCK'` == "BLOCK" ]
            then
        ### Salimos del programa si esta el candado
        ### Porque todo esta correcto y no hay nueva información
                echo "Esta el candado y no se envio el Twit"
                2> /dev/null
            else              
        ### Si estamos conectado y no esta el candado se envía el twit
#### --------------------------------------------------------------------
ciudad=$(cat < ~/prueba1);
mitwitt=$(cat < ~/prueba);
#### Limpia el archivo
# Se inserta primero el nombre del usuario
####
echo > ~/prueba ;
####
# IP Publica
####
curl ifconfig.me > ~/prueba ;
cat ~/prueba > ~/prueba1 ;
####
# Ciudad
####
echo ' ' >> ~/prueba ;
curl ipinfo.io/$ciudad | grep city | cut -d: -f2 >> ~/prueba ;
####
# IP Privada
####
echo ' ' >> ~/prueba ;
hostname -i - >> ~/prueba ;
####
# AP conectado
####
echo ' ' >> ~/prueba ;
iw wireless link | grep SSID | awk '{print $2}' - >> ~/prueba ;
####
# Inserta el usuario al principio con sed o al final con echo
#### si hubiera solo un usuario se puede usar ls
#ls /home | grep -v lost+found >> ~/prueba
#sed -i '1i $USER' >> ~/prueba
echo ' ' >> ~/prueba ;
echo $USER >> ~/prueba ;
####
# Twittear la información
####
mitwitt=$(cat < ~/prueba);
~/ATEdicion/Scripts/ttytter -status="$mitwitt" ;
####
# Remover los archivos temporales
####
rm ~/prueba1 ;
sleep 5s && rm ~/prueba ;
####
# Candado para no estar enviando twits
####
echo "Se envió la información"> ~/ATEdicion/Config/BLOCK
####
# Salir del programa
####
        fi
fi
exit 0
--------------------------------

Cron
########
# Para enviar el twitt cada hora
# De 10 de la mañana hasta ocho de la noche,
# De lunes a viernes
* 10-20 * * 1-5 /ATEdicion/Script/envioIP
# Borra el archivo que usamos como candado para enviar otro twit
02 20 * * * rm ~/ATEdicion/Config/BLOCK
59 09 * * * rm ~/ATEdicion/Config/BLOCK

Paginas
########
AbrahamTamayo on Twitter
TTYTTER
ArchLinux
Linux / GNU
Cron

No hay comentarios:

Publicar un comentario