LinuxParty
Pongamos que por alguna razón, necesitamos tener un contador de días en Shell Script. Bueno, yo no he conseguido hacerlo todo en shell script, aprovechando que también tengo PHP, voy a utilizar los dos lenguajes para llevar ésta tarea a cabo.
Este es script en PHP:
<?php date_default_timezone_set('Europe/Madrid'); // ################################################################## // En el crontab: // */58 * * * * /usr/bin/php /root/contador.php > /root/.contador.dat // */59 * * * * /root/contador.sh // ################################################################## // $cuando = mktime(0,0,0,mes,día,año); $cuando = mktime(0,0,0,06,01,2016); $hoy = time(); $resta = $hoy - $cuando; $total = round($resta/86400); echo "$total"; echo "\n"; ?>
Bueno, hace todo lo que queremos:Le especificamos la fecha desde cuando tiene que empezar a contar hasta hoy.
A lo largo de la vida del desarrollo de un software es muy habitual que se vayan produciendo cambios en el código, realizados por todos los miembros que trabajan en el proyecto. Para un buen funcionamiento y que todos tengan en todo momento las modificaciones que se han llevado a cabo, es necesario contar con una buena herramienta que permita la gestión del control de versiones. En el mercado hay muchas herramientas que ayudan a conseguir este objetivo pero a lo largo de este White Paper nos centraremos en la combinación de Git y GitHub, que ofrecen todo lo necesario para poder desarrollar software de calidad.
¿Qué es el control de versiones?
Uno de los sueños de todo el mundo es poder volver al pasado para solucionar algún tipo de problema que tengamos en el presente. Por desgracia, estos viajes temporales no son posibles en la vida real, pero al menos sí que es posible hacerlo en el desarrollo de software gracias al control de versiones.
Un sistema de control de versiones es una herramienta capaz de registrar todos los cambios que se realizan en uno o más proyectos, guardando a su vez versiones anteriores del proyecto, versiones a las que podemos acudir en caso de haber metido la pata o al no funcionar de la forma correcta.
¿Que es MVC?: Es un patrón de arquitectura de software que busca desacoplar la lógica en 3 capas:
-
El controlador se encarga de recibir las peticiones que manda la vista.
-
El modelo es el que define las reglas de negocio en nuestro caso las consultas a MySQL.
-
La vista es lo que va a ver el usuario que en nuestro caso la maquetación en HTML.
PDO es una capa abstracta para PHP que nos permite realizar consultas a la base de datos y entre sus motores soporta mysql, sqlserver, oracle etc.
http://php.net/manual/en/pdo.drivers.php
Para nuestro ejemplo vamos a dar mantenimiento a la tabla Alumnos
Primero vamos a crear la entidad Alumno, ya que es la data a mapear ya sea para listar o realizar una acción contra la base de datos (registrar/eliminar/actualizar). Por regla esta clase contiene como atributos las columnas de la tabla.
class Alumno { private $id; private $Nombre; private $Apellido; private $Sexo; private $FechaNacimiento; public function __GET($k){ return $this->$k; } public function __SET($k, $v){ return $this->$k = $v; } }
"En el tractor que tira del carro con granos no hay conductor. Está controlado por un piloto automático de software libre que puede operar autónomamente todo el día en el campo sin un conductor. No puedo adjudicarme crédito por cada bit de hardware y software usado pero yo lo he montado todo.
Gracias a todos los que pusieron su tiempo y esfuerzos en Pixhawk, Mavproxy, Mavlink, DroneAPI, MissionPlanner, APM Rover, y toda la gran documentación que va con ello. ¡No podría haberlo hecho sin vosotros! Disculpas si he olvidado a algo o alguien."
Así agradecía Matt Reimer a la gran comunidad que hay detrás de los desarrollos de software libre al colgar su vídeo en YouTube. Este granjero, que vive en Killarney, Canadá, puede llamar a su tractor para que acuda a su encuentro a través de la pantalla de su ordenador.
Publican en Ars Technica un editorial de Annette Hurst, abogada que representa a Oracle en el juicio contra Google por el uso de Java en Android.
Se puede leer que:Resulta difícil que la GPL pueda sobrevivir a este resultado. De hecho, es difícil que la propiedad de una copia de ningún software protegido por copyright pueda sobrevivir con este resultado. Los negocios del software tendrán que acelerar su movimiento a la nube donde todo puede ser controlado como servicio más que como software. Los consumidores encontrarán menos opciones para poseerlo por si mismos, menos opciones de controlar sus datos, menos opciones para proteger su privacidad. Google es una empresa de publicidad.
El módulo limit establece un temporizador con la frecuencia que permite la regla de iptables comprobar un paquete.
El parámetro limit-burst especifica cuantos paquetes tienen permitido comprobarse. El tiempo límite que establece la frecuencia de comprobación.
Los paquetes no comprobados, no entran, pudiendo o no crear una pila.
Para reducirlo, supongamos primero que el bit de "burst" (que significa ráfaga) no existe (o está establecido en 1, que equivale a lo mismo). El parámetro de límite real se especifica simplemente estableciendo el tiempo, tanto para la regla como para limit-burst. Así ajustarlo a 5/second haría que el contador de tiempo 1 / quinto de segundo, y se establece a 4/hour haría que el temporizador contase 15 minutos. Ningún paquete coincidirá con la regla, mientras que el temporizador está en marcha (por lo que si se trata de una regla de destino ACCEPT, ningún paquete sería aceptado por 1/5º de segundo o 15 minutos, dependiendo).
AutoMySQLBackup es un shell script que le permite realizar copias de seguridad diarias, semanales y mensuales de sus bases de datos MySQL con mysqldump. Puede hacer copias de seguridad de múltiples bases de datos, comprimir las copias de seguridad, copias de las bases de datos remotas, y enviar por correo electrónico los registros. Este artículo le explica cómo instalarlo y usarlo.
Podemos borrar la regla de dos maneras. Primero, como sabemos que es la única regla en la cadena, podemos usar un borrado por número:
# iptables -D INPUT 1
Para borrar la regla número uno de la cadena INPUT.
Por favor, revise éste último artículo actualizado,: Quitar o desbloquear una IP del Firewall iptables en Linux con una mayor explicación. Si le ha parecido bien. vótelo.
La segunda manera es repetir la orden -A, pero cambiando -A por -D. Es útil cuando se tiene una compleja cadena de reglas y no queremo estar contándolas para averiguar que es la regla 37 la que queremos eliminar. En este caso, usaríamos:
# iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP
La sintaxis de -D debe tener exactamente las mismas opciones que la orden -A (o -I, o -R). Si hay varias reglas idénticas en la misma cadena, sólo se borrará la primera.
Los drones se están extendiendo como la espuma, son relativamente baratos y en muchos lugares los organismos reguladores no son muy duros o no ponen muy claras las cosas, así que es fácil encontrarnos con situaciones de vuelo prohibidas. Los organismos de seguridad de algunos países ya trabajan en formas de echar abajo a estos gadgets voladores.
Ni sistemas militares para derribar drones, ni redes que se lanzan desde otros drones, en Holanda quieren capturarlos con águilas, mediante cetrería. Es la policía del lugar la que nos enseña en vídeo cómo están entrenando este tipo de aves para cazar a vehículos voladores no identificados, y la verdad es que le tienen cogido el punto a las formas de los DJI más famosos.