Manera clásica
Utilizar el domonio Cron

Lista de tareas programadas a realizar:
sudo nano /etc/crontab

Tiene las variables de entorno SHELL y PATH
m: minutos
h: hora
dom: day of the month
mon: mes
dow: day of the week: 7 y 0 es domingo, 1 luenes, 2 martes
user: usuario que ejecutará esta tarea
command: tarea
*: cualquier valor: “a cualquier hora del minuto 17, de cualquier mes, etc”… es “a cada hora”. La primera linea es cada día a cada hora.
IMPORTANTE: Cuando se cambia este archivo, hay que reiniciar el demonio Cron!
Se pueden poner rangos con el guión:
18-34 * * * * root poweroff => a cualquier hora, a cada minuto desde el 18 a y 24, apaga el ordenador
18 15-20 * * * root poweroff => a cada hora entre las 15:18 a 20:18, se apaga
18 15,20 * * * root poweroff => apaga a las 15:18 y a las 20:18
18 */5 * * * root poweroff => intérvalo cada 5 minutos (*/5 lo expresa)


Tachan!!!!!!!

ls /etc/cr*



Si estos scripts se ejecutan cada día, podemos modificar estos archivos y ya lo hará cada día:

crontab -e para programar tareas programadas para usuarios normales (no root):





crontab -l: muestra crontab
contrab -e: edita crontab
Para ejecutar un comando sólo 1 vez en cierto tiempo: at
at +10 minutes touch tachan2.txt
“De aquí 10 minutos, crea el fichero tachan2.txt
Puede ser hours, days, months, days…
Requiere instalar el at.


atrm 2: borraría la tarea 2
Hay una manera más moderna: timers de systemd
Una de las cosas que se comerá el “systemd” será también esto (pero esto NO entra en el examen!!)

programa “anacron”: tareas que no se han hecho con el cron porque la máquina estaba apagada o bien no se han ejecutado. El anacron, ejecutará todas esas tareas que no se hayan ejecutado.
SQL

BASES DE DATOS NO RELACIONALES: mucho más rápidas que las relacionales. No tenemos la garantía al 100% de que los datos estén correctos o tengan consistencia.

SQLite: motor de base de datos embedded en tu propio ordenador. Por ejemplo, lo usa WhatsApp para almacenar las conversaciones en tu móvil.
Compilar SQLite:
podríamos hacer “sudo apt install sqlite”
Con sqlite -version te dice una version, pero no será lo ultimo de lo ultimo.
Gracias a descargar los fuentes y compilarlos, tendremos la última versión.
A demás, como lo compilamos en nuestra máquina, el compilador lo optimizará para la arquitectura de nuestra máquina.
Bajamos “sqlite-autoconf-3250200.tar.gz“

Procedemos a la compilación:

prefix indica donde irá a parar el ejecutable del programa que estamos compilando. recomendable para que vaya a parar a una ruta del PATH:
El mimso ya lo coloca el ejecutable en /local/bin, las librerias en /local/… etc…

Si hay algún error, saldrá aquí. Si falta algo, tendríamos que hacer apt install y lo que falte
Hay un comando más amigable que poner el gcc con todo su montonazo de parámetros. Es el make.
El make llama al gcc de una determinada manera, para que lo haga todo de manera correcta. Son unos comandos que están escritos por el propio programador y dicen cómo se ha de llamar el gcc para compilar este programa:
CURIOSIDAD: ¡Hay granjas de compilación! Programas gráficos 3D etc, tardan mucho… días!!!

Ahora sólo queda el paso de la INSTALACIÓN, que coloca todo donde toca (bin, etc). Requiere ROOT:

¡Ya tenemos el SQLite instalado!

Creamos una base de datos nueva:
sqlite3 lamevabd.db



Al final creamos la FOREN KEY (relaciona los campos AutorId con IdAutor de las 2 tables): clave “foreign”:




Mientras la tabla esté vacía, se puede borrar. Si hay datos, tenemos un problema! Porque ha de seguir el esquema!!
DROP TABLE Autors; => Borraria tabla Autors
INSERT INTO Autors VALUES (7,”Poe”,0);

No hace falta que pongamos manualmente el valor del PRIMAREY Key:


Si no especificamos un valor, lo pone como NULL

PAra activar el FOREIGN KEYS en el SQLite:
Y ahora si, si intentamos poner un libro de un autor que no está, da error:


Las consultas se hacen con SELECT:

Para que salgan los títulos de las tablas:






Puedo encontrar el libro mas caro o mas barato así:

Muestra libros más caros de 60:


Muestra todos los libros que empiezan por El (comodin *):

El comodin guión bajo _ seria para una sola letra.
Cambiamos un valor:

UPDATE Autors SET Nom=”Allan Poe” WHERE Nom LIKE “Poe”;
Es mejor poner LIKE que el igual.

Entorno gráfico, X Servers
servidor X se pone en marcha al principio del arranque y que cambia de modo texto a modo gráfico.
Pasa de “modo carácter” a “modo pixel”.
Es un programa más.
El escritorio se basa en el servidor X. Servidor X es la plataforma invisible sobre donde se montan los escritorio y demás programas gráficos.

Si matamos el Xorg, matamos el entorno gráfico: sudo kill -s 9 1320
Podemos tener un servidor X en una pantalla y otro en otra pantalla: ejecutamos Xorg
Si cambiamos de terminal (CTRL+ALT+Fx), y ejecutamos Xorg, arrancamos otro servidor X.
Xorg :0 (indica display 0)
Xorg :1 (otra pantalla diferente: la 1)
Xorg :1 & [& hace pasar en segundo plano la ejecucion esta y el terminal no se queda ocupado)

OJO! Solo activa el modo gráficoL: saldrá el cursor del ratón.
Ahora falta añadir el escritorio y todos los programas para tener el entorno montado.
Instalamos otro servidor X: xserver-xephyr:

Es un “juguete”, pero va bien para probar: pone el nuevo servidor X en una ventana.
Linux es un conjunto de programas!
Un escritorio es un conjunto de programas!

Si cambiamos esta variable de entorno, cambiamos el display por defecto al que enviamos todos los programas, y a partir de ahora, todos los programas que pongamos en marcha se irán al display 1:
export DISPLAY=:1
export DISPLAY=:1

Hemos de arrancar el “gestor de ventanas” (windows manager): permiten manejar las ventanas.
Instalamos un gestor de ventanas (muter, el de gnome, es exclusivo de gnome y solo se puede usar con genome).
twm: tiny window manager
wmaker: otro

jobs: saber qué comandos están en segundo plano
kill -s 9 %3 (ponemos %3 porque lo cogemos de la lista mostrada por jobs)

Poner todo un escritorio dentro de otro terminal:
gnome-session
Comandos que van hacia el servidor X:
Cambiar de resolucion (manera rápida):
xrandx
cambio de orientación: xrandr -0 left
xrandr -0 inverted
xrandx -0 normal
El servidor X tambien gestiona el nivel de colores:
xgamma -rgamma
1: valor normal – 10:valor maximo – 0.1: valor minimo
cambiamos RGB:
xgamma -rgamma 10 -ggamma 4 -bgamma 0.1
Lo dejamos todo normal:
xgamma -rgamma 1 -ggamma 1 -bgamma 1
Parece ser que al servidor X le queda poco tiempo… Otro tipo de programa lo va a sustituir: será el servidor gráfico llamado wayland:

Ahora, la mayoría de distros tienen las 2.
Display Manager: programa empleado para inciar sesion en el escritorio (login gráfico) – GNome viene con el GDM.
KDM (otro del escritorio KDE)
Archivo de configuración del GDM: sudo nano /etc/gdm3/daemon.conf

Es posible instalar varios escritorios.
El GDM decide en qué escritorio se entra.
sudo apt install openbox
openbox es un cutre escritorio ideal para máquinas con muy poca RAM
Usado también en máquinas modo “quiosco”, como los cajeros automáticos

CURSIODIDAD: ls /usr/share/xsessions/
Opciones de diferentes escritorios


.desktop son accesos directos!
Saber donde están todos los accesos directos que están en los menús de GNome: /usr/share/applications:

pero los de arranque, repito, están en /usr/share/xsessions

Mòdul del Kernel: básicament reconeix hardware. s’executa només sota demanda


Los módulos están asociados a la versión el Kernel

KO: Kernel Object (trozo de Kernel)

lista módulos que están en marcha: lsmod

kernel “tainted”, marcado, usa módulos que no están en él de serie.

Cargar y descargar módulos:
sudo modprobe mac80211_hwsim
Crea tarjetas wifi ficticias


Descargamos módulo: sudo modprobe -r mac80211_hwsim

Hacer lista negra de módulos que no quieres cargar:
cd /etc/modprobe.d
nano blacklist.conf

