Debes editar el fichero /etc/crontab y añadir los tabs
Ejemplo:
20 8 27 2 * hector echo "esto es una prueba" | tee /tmp/prueba
Indica que quiere correr todos los años el comando "echo "esto es una prueba" | tee /tmp/prueba" con el usuario hector el 27 de febrero a las 8 y 20 AM
lunes, 27 de febrero de 2017
miércoles, 22 de febrero de 2017
Test WAVECOM M1306B en Linux
Primero debes agregar al usuario dialout para que tenga permisos para usar el puerto serial.
Para probar se utilizó Moserial con las siguientes configuraciones:
Luego se conectó y se envió el comando "AT" y se recibió respuesta "OK". Lo que indica que está bien conectado:
Se prueba con el comando
at+cmgs="NUMERO DE TELEFONO"
Ej:
at+cmgs="041485548412"
Luego de enviarlo te saldrá un prompt y debes enviar el siguiente carácter hexadecimal para simular que presionaste CTRL+Z
ASCII OCT HEX
'\032'
= '\x1A'
Para mas detalles de configuración:http://www.puntoflotante.net/CONFIGURACION%20INICIAL%20Y%20PRUEBAS%20DE%20MODEM%20WAVECOM%20M1306B.pdf
lunes, 20 de febrero de 2017
Borrar conexión en el Network Manager
Jugando con el Network Manager buscando la forma de crear un NIC teaming cree por error una interfaz llamada "bridge0" la cual, aunque la eliminé por el gui seguia apareciendo con el comando ifconfig.
Para eliminarla basta con escribir:
nmcli connection delete bridge0
sábado, 18 de febrero de 2017
El mejor editor de Bash para linux
La mejor forma de escribir código bash es usando el plugin BashSupport para los ides de IntelliJ.
En mi caso lo instalé en PyCharm y va excelente:
Entras en Settings -> Plugins -> Browse Repositories y lo buscas:
Una vez instalado renicias PyCharm y ya te debería salir la opción de crear un nuevo bash file:
Seteas el intérprete y listo
En mi caso lo instalé en PyCharm y va excelente:
Entras en Settings -> Plugins -> Browse Repositories y lo buscas:
Una vez instalado renicias PyCharm y ya te debería salir la opción de crear un nuevo bash file:
Seteas el intérprete y listo
sábado, 11 de febrero de 2017
Corregir: file_exists(): open_basedir restriction in effect. File(/var/www/html/
Cuando desplegué un api que estoy desarrollando a mi hosting me saltó el siguiente error:
ErrorException in Filesystem.php line 23:file_exists(): open_basedir restriction in effect. File(/var/www/html/API/storage/framework/cache/2c/60) is not within the allowed path(s): (/home/u776079664:/tmp:/var/tmp:/opt/php-5.6/pear:/usr/local/bin:/etc/pki/tls/certs)
En esta imag se ve mejor
Esta mierda ocurre porque se subió el fichero de bootstrap/cache/config.php que se crea cuando se ejecuta el comando
php artisan config:make
Para solucionar el error basta con borrar este fichero en el servidor o lo que es lo mismo, ejecutar :
php artisan config:clear
jueves, 9 de febrero de 2017
Unban ip baneado por ssh
Cuando se excede el número de intentos fallidos al intentar acceso a un terminal ssh el servidor bloquea el acceso a la maquina.
Para solventarlo se hace lo siguiente:
fail2ban-client set sshd unbanip IP_A_UNBANEAR
ej:
fail2ban-client set sshd unbanip 192.168.1.123
Para solventarlo se hace lo siguiente:
fail2ban-client set sshd unbanip IP_A_UNBANEAR
ej:
fail2ban-client set sshd unbanip 192.168.1.123
martes, 7 de febrero de 2017
Enviar correos desde Laravel usando cuenta Gmail
Intentando enviar un correo desde láravel usando mi cuenta gmail encontré que cuando se intentaba enviar me salía el siguiente error:
Swift_TransportException in AbstractSmtpTransport.php line 383:
Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials p62sm3200250ywb.2 - gsmtp
"
Esto ocurre porque gmail detecta el server como una aplicación no segura.
Para solucionarlo debes ir a la cuenta de gmail e entrar en:
Ya con esto debería funcionar.
Mis valores del .env me quedaron así:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=micorreo@gmail.com
MAIL_PASSWORD=claveloca
MAIL_ENCRYPTION=tls
Si todavía con eso no te funciona intenta entrar en el siguiente link y darle aceptar:
ABA CANTV se pone lento con aumento de plan (Explicación del porque)
Es probable que al subir el plan de internet tu velocidad de conexión haya bajado. En mi caso me ocurrió que tenía 4 Megas y me funcionaba bien. Luego coloqué el de 10 Megas y la velocidad de descarga bajó drásticamente a 1 Mega
Esto suena contradictorio pero tiene explicación:
Explicación corta:
La linea que tienes no "soporta" el plan que colocaste porque tienes mucha atenuación o ruido, por lo que el modem reduce la velocidad de transferencia a una que permita la comunicación con menos tasa de errores.
OJO: También es posible que tu baja de velocidad sea también por saturación en el servicio de CANTV
Explicación larga:
Hay dos variables que definen la velocidad máxima que se puede transmitir por una línea antes que se pierda la sincronización. Estas son el ruido y la atenuación.
Estas variables las puedes ver en el panel de tu modem:
En este caso el modem indica un SNR Margin de 13.3 dB y una atenuación de 32 dB.
Ruido:
Cada linea telefónica tiene un ruido asociado. Este es llamado SNR.
Cada velocidad de conexión tiene un ruido máximo al que se puede transmitir llamado SNR to sync.
La diferencia entre el SNR y SNR to sync es el SNR Margin, que se puede interpretar como la holgura que se tiene para transmitir a esa velocidad con ese ruido SNR.
El valor del SNR to sync viene seteado en el modem y depende de cada fabricante
Ejemplo
SNR = 44dB
SNR to sync at 8Mb = 35dB <--- Plan CANTV 8 Megas
SNR MARGIN = 44-35 = 9dB <---- Mientras mayor sea el número mejor es la conexión
¿Como sé si mi plan es adecuado según el ruido que tengo?
Por lo anteriormente expuesto, el SNR Margin aumenta cuando cambiamos de plan.
Puedes guiarte con los siguientes valores para saber si tienes un SNR Margin adecuado:
6dB O menos deriva en una muy mala navegación con muchos errores.
7dB-10dB Conexión con mala calidad
11dB-20dB Es un buen valor. Con pocos problemas sincronización
20dB-28dB Es excelente.
29dB o más: Es un sueño (El ruido ideal)
Atenuación:
Es la reducción de la "fuerza" de la señal en la linea. Está relacionado con la distancia al nodo, pero también hay otros factores como la calidad del cable, la frecuencia de transmisión, los empalmes, etc.
Generalmente se asume que hay una perdida de 13.81 db por cada km que separe el cliente del nodo (Por supuesto en la vida real nunca es exacto y depende del tipo de infraestructura de transmisión).
20dB o menos es ideal
20dB-30dB es excelente
30dB-40dB es muy bueno
40dB-50dB es aceptable
50dB-60dB es una conexión pobre y muy posiblemente tengas problemas
60dB o menos es muy mala atenuación. Tendrás problemas importantes en la navegación
Con un ruido ideal, estas son las siguientes velocidades de navegación máximas que se pueden lograr. Note la relación entre distancia y atenuación:
1km = 24Mbit
1.0km = 13.81dB = 23Mbit
1.5km = 20.7dB = 21Mbit
2.0km = 27.6dB = 18Mbit
2.5km = 34.5dB = 13Mbit
3.0km = 41.4dB = 8Mbit
3.5km = 48.3dB = 6Mbit
4.0km = 56dB = 4Mbit
4.5km = 62.1dB = 3Mbit
5.0km = 69dB = 2Mbit
En la siguiente table lo podemos ver mejor
Esto suena contradictorio pero tiene explicación:
Explicación corta:
La linea que tienes no "soporta" el plan que colocaste porque tienes mucha atenuación o ruido, por lo que el modem reduce la velocidad de transferencia a una que permita la comunicación con menos tasa de errores.
OJO: También es posible que tu baja de velocidad sea también por saturación en el servicio de CANTV
Explicación larga:
Hay dos variables que definen la velocidad máxima que se puede transmitir por una línea antes que se pierda la sincronización. Estas son el ruido y la atenuación.
Estas variables las puedes ver en el panel de tu modem:
En este caso el modem indica un SNR Margin de 13.3 dB y una atenuación de 32 dB.
Ruido:
Cada linea telefónica tiene un ruido asociado. Este es llamado SNR.
Cada velocidad de conexión tiene un ruido máximo al que se puede transmitir llamado SNR to sync.
La diferencia entre el SNR y SNR to sync es el SNR Margin, que se puede interpretar como la holgura que se tiene para transmitir a esa velocidad con ese ruido SNR.
El valor del SNR to sync viene seteado en el modem y depende de cada fabricante
Ejemplo
SNR = 44dB
SNR to sync at 8Mb = 35dB <--- Plan CANTV 8 Megas
SNR MARGIN = 44-35 = 9dB <---- Mientras mayor sea el número mejor es la conexión
¿Como sé si mi plan es adecuado según el ruido que tengo?
Por lo anteriormente expuesto, el SNR Margin aumenta cuando cambiamos de plan.
Puedes guiarte con los siguientes valores para saber si tienes un SNR Margin adecuado:
6dB O menos deriva en una muy mala navegación con muchos errores.
7dB-10dB Conexión con mala calidad
11dB-20dB Es un buen valor. Con pocos problemas sincronización
20dB-28dB Es excelente.
29dB o más: Es un sueño (El ruido ideal)
Atenuación:
Es la reducción de la "fuerza" de la señal en la linea. Está relacionado con la distancia al nodo, pero también hay otros factores como la calidad del cable, la frecuencia de transmisión, los empalmes, etc.
Generalmente se asume que hay una perdida de 13.81 db por cada km que separe el cliente del nodo (Por supuesto en la vida real nunca es exacto y depende del tipo de infraestructura de transmisión).
20dB o menos es ideal
20dB-30dB es excelente
30dB-40dB es muy bueno
40dB-50dB es aceptable
50dB-60dB es una conexión pobre y muy posiblemente tengas problemas
60dB o menos es muy mala atenuación. Tendrás problemas importantes en la navegación
Con un ruido ideal, estas son las siguientes velocidades de navegación máximas que se pueden lograr. Note la relación entre distancia y atenuación:
1km = 24Mbit
1.0km = 13.81dB = 23Mbit
1.5km = 20.7dB = 21Mbit
2.0km = 27.6dB = 18Mbit
2.5km = 34.5dB = 13Mbit
3.0km = 41.4dB = 8Mbit
3.5km = 48.3dB = 6Mbit
4.0km = 56dB = 4Mbit
4.5km = 62.1dB = 3Mbit
5.0km = 69dB = 2Mbit
En la siguiente table lo podemos ver mejor
Mi experiencia:
Mi ejemplo: Con el plan de 8 Megas en las mañanas el SNR Margin sube a 22.3 dB y puedo navegar con total normalidad a 8 Megas. En la tarde el SNR Margin baja y se sitúa en 13 por lo que la velocidad baja y no paso de 2 Megas.
Para ver estos valores entra en el panel de tu modem y busca las opciones DSL
sábado, 4 de febrero de 2017
Manejo de imágenes API con Laravel 5.3
Me surgió hacer un api en donde el cliente debía subir imágenes:
Para hacerlo es muy sencillo. Primero creas la ruta:
Route::post('/add', 'ApiAuthController@add');
Luego creas el controlador
public function add(Request $request) {
$v = Validator::make($request->all(), [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
if ($v->fails()){
return response()->json(["success"=>"False", "Error"=>$v], 422);
}
$image = $request->file('image');
$input['imagename'] = time().'.'.$image->getClientOriginalExtension();
$destinationPath = public_path('/images');
$image->move($destinationPath, $input['imagename']);
// $this->postImage->add($input);
return back()->with('success','Image Upload successful');
}
Luego lo pruebas con Postman
y Listo. Se guarda en public/images
Para hacerlo es muy sencillo. Primero creas la ruta:
Route::post('/add', 'ApiAuthController@add');
Luego creas el controlador
public function add(Request $request) {
$v = Validator::make($request->all(), [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
if ($v->fails()){
return response()->json(["success"=>"False", "Error"=>$v], 422);
}
$image = $request->file('image');
$input['imagename'] = time().'.'.$image->getClientOriginalExtension();
$destinationPath = public_path('/images');
$image->move($destinationPath, $input['imagename']);
// $this->postImage->add($input);
return back()->with('success','Image Upload successful');
}
Luego lo pruebas con Postman
y Listo. Se guarda en public/images
viernes, 3 de febrero de 2017
Create object and add attributes to it: Python
Creamos el objeto args y le agregamos los atributos recid y sigb64
args = SimpleNamespace()
setattr(args, 'recid', "receptor1")
setattr(args, 'sigb64', "AfGLmNB==")
Luego podemos hacer args.recid o args.sigb64
args = SimpleNamespace()
setattr(args, 'recid', "receptor1")
setattr(args, 'sigb64', "AfGLmNB==")
Luego podemos hacer args.recid o args.sigb64
jueves, 2 de febrero de 2017
Probar sockets
Este programa es lo máximo para probar sockets. Si estamos haciendo un monitor tcp, o un cliente esto va de maravillas :)
https://sourceforge.net/projects/sockettest/?source=typ_redirect
https://sourceforge.net/projects/sockettest/?source=typ_redirect
Instalar módulo de python en formato tar.gz
miércoles, 1 de febrero de 2017
Descargar todas los documentos de una vista en CouchDB
Suscribirse a:
Entradas (Atom)