Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Echizen

#1
Dale, subí lo que tenes así vemos como lo mejoramos...

Lo que tenes que hacer es un script muy simple y no lleva mas de 11 lineas de código.

Saludos
#2
Buenas tardes...

Te dejo un par de tips para que lo armes, es un script muy simple lo que buscas hacer...

Los siguientes son los comandos que podras utilizar:

Código (bash) [Seleccionar]
cat <path/file> # Este comando lee el archivo de texto donde tienes las ip
sed -n '1p' #Este comando muestra la primer linea del texto
wc -l #Este comando cuenta la cantidad de lineas que tiene un archivo
ping <ip> # hace ping
$?     #variable reservada que contiene el resultado del ultimo comando ejecutado


Con esos comando, un par de variables y unos 'until' e 'if', vas a poder armar el script que buscas.

Espero que te sea de utilidad.

Saludos
#3
Cita de: tincopasan en 24 Junio 2016, 09:19 AM
perdón por la demora, instale mysql para probar lo que hace, y el problema que encontré está en la versión de pyhton, evidentemente como estás usando 2.x no toma las cadenas directamente como unicode(cosa que python 3 si hace), por eso te agrega u`por ejemplo. Así que tendrías que agregarle el code utf -8, algo que en mi caso no sucede porque hace mucho que solo uso 3.x.

muchas gracias por la respuesta!,

ya veré de migrar a python 3.0 y hacer las pruebas.

Saludso
#4
Cita de: garniks en 21 Junio 2016, 23:13 PM
Código (bash) [Seleccionar]
num=$1

until [[ "$num" -le 0 ]]; do
       echo "numero: $num"    
       num=$(($num/2))
       let cont+=1
done

echo "CONTADOR: $cont"



he hecho este script pero me da fallo poniendo que el error es esperando expresión aritmética: "/2" y no entiendo porque, si alguien me puede iluminar se lo agradecería mucho


Me parece una total falta de respeto que tomes el código que te dí en una respuesta en otro post y digas que lo has hecho tu.

post: https://foro.elhacker.net/scripting/ayuda_a_un_novato_en_un_script_de_debian-t454175.0.html

me enferman las personas que son tan cortas de cerebro.
#5
Hola garniks,

no entiendo la utilidad de tu script, pero según entiendo, lo que buscas es algo asi...

Código (bash) [Seleccionar]
num=$1

until [[ "$num" -le 0 ]]; do
        echo "numero: $num"     
        num=$(($num/2))
        let cont+=1
done

echo "CONTADOR: $cont"


Salida en pantalla:
Código (bash) [Seleccionar]
$ sh test.sh 10
numero: 10
numero: 5
numero: 2
numero: 1
CONTADOR: 4


Si lo que buscas es otra cosa, por favor explica mejor cual es el problema o la necesidad.

Saludos
#6
Scripting / Re: ¿Se puede hacer este script?
21 Junio 2016, 16:52 PM
en bash (linux) se puede hacer. me imagino hacer un listado con los nombres de la carpeta "A" y despues ir comparando nombre por nombre con todos los archivos de la carpeta "B" en busqueda de coincidencias. obviamente el scripting para eso es bastante limitado, pero se puede hacer algo simple y funcional.

me imagino el código algo como...

Código (bash) [Seleccionar]

#obtener listado
LISTA=$(ls -l /carpetaA |awk '{print $9}')

#cantidad de elementos en al lista
CANT=$(wc -l $LISTA |awk 'print $1')

#creamos un contador
CONT=1

#bucle para recorrer el listado
until [ $CONT -gt $CANT ]; do

   #obtener nombre de archivo a comparar
   ARCHIVO_ACTUAL=$(echo $LISTA |sed -n '${CONT}p')
   
   buscar archivos en la carpeta B que contengan el nombre del archivo actual
   ls /carpetaB |grep ${ARCHIVO_ACTUAL%.*}
   #                                   ^   esto es para que no tome en cuenta la extensión del archivo

#
# después de aca vos veras que haces con las coincidencias...
#
done


asi es como yo lo encararía con bash. me imagino que en batch se debe poder hacer lo mismo, no creo que windows sea tan pobre...

Saludos!
#7
En realidad el problema son todos los caracteres que no conforman el correo electronico.

Yo necesito obtener una lista de correos separados por comas y lo que me devuelve python es una lista junto con otros caracteres que no forman parte del mail propiamente dicho.
#8
Buenas tardes,

no se si ya solucionaste el problema, pero yo intentaría agregar el directorio donde se encuentra el comando "sh"

Código (bash) [Seleccionar]
/bin/sh

Lo otro que no entiendo es porque utilizas el comando "su". Hasta donde entiendo, el comando su te permite cambiar de usuario o ejecutar un comando cambiando el id de usuario que lo ejecuta.

si es que no lo solucionaste, pasa el msj de error que te da al ejecutar el ssh

saludos
#9
Scripting / python: email list from sql query
14 Junio 2016, 17:38 PM
Buenas tardes, tengo un script en python que lo utilizo para mandar mail.

A dicho escript lo quiero modificar para que consulte a una base de datos una lista de correos electronicos y mande el mail a los mismos...

El problema es que no se como conformar esa lista de emails para que las acepte el sendmail

Código (python) [Seleccionar]
# Import smtplib to provide email functions
import smtplib
import sys
import mysql.connector

# Import the email modules
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# Create MySQL conector
Conexion = mysql.connector.connect(user='pepito',password='pepitopepe',
                              host='10.11.12.13',
                              database='HELLO')

# Define cursor
cursor=Conexion.cursor()

# Create a MySQL Query
# ARGV[2] level of issue elevation
cursor.execute("select email from emails where nivel= '%s'" % sys.argv[2] )

# Define email addresses to use
addr_to = cursor.fetchone()
#addr_to   = ['pepito1@tepelandia.com', 'pepito2@pepelandia.com']
addr_from = 'Check@pepelandia.com'

# Define SMTP email server details
smtp_server = 'smartrelay.pepelandia.com'

# Construct email
msg = MIMEMultipart('alternative')
msg['To'] = ", ".join(addr_to)
msg['From'] = ", ".join(addr_from)
msg['Subject'] = 'Alerta'

# Open a plain text file for reading.  For this example, assume that
# the text file contains only ASCII characters.
# ARGV[1] html file to send
fp = open(sys.argv[1], 'rb')


# Create a text/plain message
msg = MIMEText(fp.read(), 'html')
fp.close()



# Send the message via an SMTP server
s = smtplib.SMTP(smtp_server)
s.sendmail(addr_from, addr_to, msg.as_string())
s.quit()



Al ejecutar el cofigo...
Código (python) [Seleccionar]
Traceback (most recent call last):
  File "SendMail.py", line 48, in <module>
    s.sendmail(addr_from, addr_to, msg.as_string())
  File "/usr/lib64/python2.7/smtplib.py", line 742, in sendmail
    raise SMTPRecipientsRefused(senderrs)
smtplib.SMTPRecipientsRefused: {u'pepito1@pepelandia.com': (550, '#5.1.0 Address rejected.')}


cuando separo el codigo y solo me quedo con la consulta de la DB y veo como me devuelve la lisla de emails...

Código (python) [Seleccionar]
# Create MySQL conector
Conexion = mysql.connector.connect(user='pepito',password='pepitopepe',
                              host='10.11.12.13',
                              database='HELLO')

# Define cursor
cursor=Conexion.cursor()

# Create a MySQL Query
cursor.execute("select email from emails where nivel= '%s'" % sys.argv[1] )


# Define email addresses to use
addr_to = cursor.fetchall()

for row in addr_to:
  print(addr_to)


resultado de la consulta:
Código (python) [Seleccionar]
# python get_list.py 1   # el 1 es el parametro que paso para la consulta de SQL
[(u'pepito1@pepelandia.com',), (u'pepito2@pepelandia.com',)]
[(u'pepito1@pepelandia.com',), (u'pepito2@pepelandia.com',)]


evidentemente la lista que estoy pasando esta mal conformada, pero no encuentro como hacer que la lista que arma la consulta quede con los mails solamente separada por comas.

alguien tiene alguna idea?
#10
Scripting / Re: Bash script: variable array
12 Junio 2016, 03:56 AM
desconozco como utilizar el bash -x para tal fin.

cual seria la idea, poner en medio del script la sentencia "bash -x $variable" para saber que valor tiene asignado?