- Publicado en
sshfs user@userdomain.net:/home/user/httpdocs-blog/ /home/user/Web/blog.tinux.net
sshfs user@userdomain.net:/home/user/httpdocs-blog/ /home/user/Web/blog.tinux.net
file: database.mysql.php
<?php
$host = "localhost";
$port = 3306;
$database = "Database";
$user_database = "UserDatabase";
$password_database = "PassDatabase";
// Si tenemos que hacerlo a traves de un tunel
shell_exec("ssh -fNg -L 3310:$host:3306 user_ssh@domain.dom");
Para comprobar que el túnel funciona:
ssh -N -L 3310:127.0.0.1:3306 user_ssh@domain.dom
y si estas en un shell:
mariadb -D database -u user_database -ppassword -h 127.0.0.1 -P 3310
$link = new mysqli($host, $user_database, $password_database, $database, $port);
if ($link->connect_error) {
die("Error: No se pudo conectar a MySQL." .
PHP_EOL); }
echo "Connected successfully";
?>
En cada script para poder operar con la base de datos tenemos que llamar al archivo de configuracion:
Para obtener un solo registro y visualizarlo: Y para utilizarlo:
<?php echo $origen_suministro ?>
Trabajar con ventanas Estos atajos te permiten realizar todo tipo de operaciones con ventanas, ya sea abrirlas, cerrarlas, moverlas o cambiar entre ellas.
Iniciar y detener aplicaciones Estos atajos facilitan el inicio y la detención de programas.
Atajo Descripción Meta Abrir el lanzador de aplicaciones
Alt+Espacio / Alt+F2 Ejecutar interfaz de comandos
Ctrl+Esc Actividad del sistema
Alt+F4 Cerrar
Ctrl+Q Salir
Ctrl+Alt+Esc Forzar salida
Desplazarse
Estos atajos le permiten navegar entre ventanas, actividades y escritorios de manera eficiente.
Atajo Descripción
Ctrl+F10 Mostrar ventanas
Ctrl+F9 Mostrar ventanas en el escritorio actual
Ctrl+F7 Mostrar solo las ventanas de la aplicación actual
Ctrl+F12 Mostrar escritorio
Ctrl+Alt+A Activar ventana que requiere atención
Alt+Tab Recorrer ventanas
Alt+Mayús+Tab Recorrer ventanas (inverso)
Alt+F3 Abrir el menú Operaciones de ventana
Meta+Alt+Arriba Cambiar a la ventana superior
Meta+Alt+Abajo Cambiar a la ventana inferior
Meta+Alt+Izquierda Cambiar a la ventana de la izquierda
Meta+Alt+Derecha Cambiar a la ventana de la derecha
Desplazamiento y zoom ¿Necesita ver algo más de cerca? Los espacios de trabajo KDE Plasma™ le permiten acercar y alejar la imagen y mover todo el escritorio, de modo que puede ampliar la imagen incluso cuando la aplicación que está utilizando no lo admite.
Atajo Descripción
Meta+= Acercar
**Meta+- Alejar
**Meta+0 Zoom normal
**Meta+Arriba Desplazarse hacia arriba
Meta+Abajo ** Desplazarse hacia abajo
Meta+Izquierda Desplazamiento hacia la izquierda, mover la ventana al monitor de la izquierda[a]
Meta+Derecha Desplazamiento hacia la derecha, mover la ventana al monitor de la derecha[a]
Meta+RePág Maximizar/Restaurar ventana
Meta+AvPág Minimizar ventana
[a] En un entorno con varios monitores
Trabajar con actividades y escritorios virtuales
Estos atajos le permiten cambiar entre actividades y escritorios virtuales y gestionarlos.
Atajo Descripción
Meta+Q / Alt+D,Alt+A Gestionar actividades
Meta+Tab Actividad siguiente
Meta+Mayús+Tab Actividad anterior
Ctrl+F1 Cambiar al escritorio 1
Ctrl+F2 Cambiar al escritorio 2
Ctrl+F3 Cambiar al escritorio 3
Ctrl+F4 Cambiar al escritorio 4
Trabajar con el escritorio
Estos atajos le permiten trabajar con el escritorio KDE Plasma™ y los paneles.
Atajo Descripción
Alt+D A Añadir widgets
Alt+D R Eliminar este widget
Alt+D L Bloquear/desbloquear widgets
Alt+D S Configuración de widgets
Ctrl+F12 Mostrar escritorio
Alt+D T Ejecutar la aplicación asociada
Alt+D,Alt+S Configuración del escritorio
Atajo Descripción
F1 Ayuda
**Mayús+F1 ¿Qué es esto?
Trabajar con documentos
Ya se trate de un documento de texto, una hoja de cálculo o un sitio web, estos atajos facilitan la realización de muchos tipos de tareas con ellos.
Atajo Descripción
F5 Actualizar
Ctrl+A Seleccionar todo
Ctrl+Z Deshacer
Ctrl+Mayús +Z Rehacer
Ctrl+X Cortar
Ctrl+C Copiar
Ctrl+V Pegar
Ctrl+N Nuevo
Ctrl+P Imprimir
Ctrl+S Guardar
Ctrl+F Buscar
Ctrl+W Cerrar documento/pestaña
Trabajar con archivos
Tanto si se encuentra en un cuadro de diálogo Abrir/Guardar como en el gestor de archivos Dolphin, estos atajos le permitirán ahorrar tiempo al realizar operaciones con archivos. Tenga en cuenta que algunos de los conceptos utilizados con los archivos son los mismos que con los documentos, por lo que varios de los atajos son idénticos a los mencionados anteriormente.
Atajo Descripción
Ctrl+Z Deshacer
Ctrl+X Cortar
Ctrl+C Copiar
Ctrl+V Pegar
Ctrl+A Seleccionar todo
Ctrl+L Reemplazar ubicación
Ctrl+Mayús+A Invertir selección
Alt+Izquierda Atrás
Alt+Derecha Adelante
Alt+Arriba Arriba (a la carpeta que contiene esta)
Alt+Inicio Carpeta de inicio
Suprimir Mover a la papelera
Mayús+Suprimir Eliminar permanentemente
Cambiar el volumen y el brillo
Además de las teclas estándar, muchos teclados de ordenador y portátiles actuales tienen teclas o botones especiales para cambiar el volumen de los altavoces, así como el brillo del monitor, si procede. Si están presentes, puede utilizar estas teclas en KDE Plasma Workspaces™ para realizar esas tareas.
Si no dispone de dichas teclas, consulte la sección titulada «Modificar atajos» para obtener información sobre cómo asignar teclas para estas tareas.
Abandonar el ordenador
¿Ha terminado? Utilice estos atajos y guarde su ordenador.
Atajo Descripción
Ctrl+Alt+LBloquear pantalla
Ctrl+Alt+Supr Abandonar
En un principio indican que son muy rapido en la apewrtura del GUi, y de los keystokes.
Importante: Hay muchos cambios en la estructura y en la forma de ejecutar los scripts para la renderizacion del css
Mucho mas facil de realizar. Pero tambien exige un minimo de organizacion para le desarrollador
npm install tailwindcss @tailwindcss/cli
El oficial que se sugiere es ~/src/input.css aunque personalmente lo configuro en mi estructura, ~/assets/src/tailwind.css
@import "tailwindcss";
Los ficheros de entrada y salida son los de mis estructuras habituales de assets
El oficial:
npx @tailwindcss/cli -i ./src/input.css -o ./src/output.css --watch
El de mi infraestructura:
npx @tailwindcss/cli -i ./assets/src/tailwind.css -o ./assets/css/styles.css --watch
El --watch es el que renderiza y y evalua en tiempo real si se ha producido cualquie modigicacion en las paginas o archivos dependientes de los css.
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="./assets/css/styles.css" rel="stylesheet">
</head>
<body>
<h1 class="text-3xl font-bold underline">
Hello world!
</h1>
</body>
</html>
Sí, en Tailwind CSS puedes reducir el tamaño de la fuente de un elemento dentro de un contenedor div utilizando las clases de utilidad para el tamaño de la fuente (text-*). Tailwind ofrece una amplia gama de tamaños de fuente predefinidos, pero también puedes personalizar el tamaño de la fuente en unidades específicas (como px, rem, em, etc.) utilizando valores arbitrarios.
Tailwind incluye clases como text-sm, text-base, text-lg, etc., que representan tamaños de fuente predefinidos. Por ejemplo:
<div class="container mx-auto p-4">
<p class="text-lg">Este es un texto con tamaño de fuente grande.</p>
<p class="text-sm">Este es un texto con tamaño de fuente pequeño.</p>
</div>
text-lg: Tamaño de fuente grande (1.125rem).text-sm: Tamaño de fuente pequeño (0.875rem).Si necesitas un tamaño de fuente específico que no está predefinido en Tailwind, puedes usar la notación de valores arbitrarios con corchetes ([]). Por ejemplo, para reducir la fuente en 2px:
<div class="container mx-auto p-4">
<p class="text-[14px]">Este texto tiene un tamaño de fuente de 14px.</p>
</div>
text-[14px]: Define un tamaño de fuente personalizado de 14px.Si deseas reducir la fuente en relación con el tamaño base de Tailwind (1rem o 16px), puedes usar unidades relativas como rem o em. Por ejemplo:
<div class="container mx-auto p-4">
<p class="text-[0.875rem]">Este texto tiene un tamaño de fuente de 0.875rem (14px).</p>
</div>
text-[0.875rem]: Define un tamaño de fuente personalizado de 0.875rem (equivalente a 14px).Puedes combinar las clases de tamaño de fuente con las clases responsivas de Tailwind para ajustar el tamaño de la fuente en diferentes dispositivos. Por ejemplo:
<div class="container mx-auto p-4">
<p class="text-base md:text-sm lg:text-[12px]">
Este texto cambia de tamaño en diferentes dispositivos.
</p>
</div>
text-base: Tamaño de fuente base en móviles (1rem o 16px).md:text-sm: Tamaño de fuente pequeño en tablets (0.875rem o 14px).lg:text-[12px]: Tamaño de fuente personalizado en pantallas grandes (12px).em o %Si prefieres usar unidades relativas como em o %, también puedes hacerlo con valores arbitrarios:
<div class="container mx-auto p-4">
<p class="text-[0.8em]">Este texto tiene un tamaño de fuente de 0.8em.</p>
<p class="text-[80%]">Este texto tiene un tamaño de fuente del 80%.</p>
</div>
text-[0.8em]: Reduce la fuente al 80% del tamaño base.text-[80%]: Reduce la fuente al 80% del tamaño base.Aquí tienes un ejemplo completo que combina todo lo anterior:
<div class="container mx-auto p-4">
<p class="text-lg md:text-base lg:text-[14px]">
Este texto es responsive y se reduce en dispositivos más pequeños.
</p>
<p class="text-[12px]">
Este texto tiene un tamaño fijo de 12px.
</p>
</div>
text-sm, text-base, etc., para tamaños de fuente comunes.text-[14px], text-[0.875rem], etc.) para tamaños personalizados.md:text-sm, lg:text-[12px], etc.) para ajustar el tamaño en diferentes dispositivos.Este enfoque te permite controlar el tamaño de la fuente de manera precisa y flexible en Tailwind CSS. ¡Espero que te sea útil! 😊
Para crear una imagen responsive con Tailwind CSS, el método más adecuado es utilizar las utilidades de Tailwind para ajustar el tamaño, la posición y el comportamiento de la imagen en diferentes dispositivos. Aquí te explico el enfoque más eficiente y moderno:
Usar w-full para el ancho:
Usar h-auto para la altura:
Usar object-cover o object-contain:
object-cover: La imagen cubre todo el espacio disponible, recortándose si es necesario.object-contain: La imagen se ajusta completamente dentro del contenedor, sin recortarse.Ajustar el tamaño máximo con max-w-*:
Usar clases responsivas:
md:w-1/2 para tablets).<img
src="ruta/a/tu/imagen.jpg"
alt="Descripción de la imagen"
class="w-full h-auto max-w-full md:max-w-3/4 lg:max-w-1/2 object-cover"
>
w-full: La imagen ocupa el 100% del ancho de su contenedor.h-auto: La altura se ajusta automáticamente para mantener la proporción de la imagen.max-w-full: Limita el ancho máximo al 100% del contenedor.md:max-w-3/4: En tablets (≥ 768px), el ancho máximo es el 75% del contenedor.lg:max-w-1/2: En pantallas grandes (≥ 1024px), el ancho máximo es el 50% del contenedor.object-cover: La imagen cubre todo el espacio disponible, recortándose si es necesario.Si quieres que la imagen esté dentro de un contenedor y se comporte de manera responsive, puedes hacer lo siguiente:
<div class="container mx-auto px-4">
<img
src="ruta/a/tu/imagen.jpg"
alt="Descripción de la imagen"
class="w-full h-auto max-w-full md:max-w-3/4 lg:max-w-1/2 object-cover rounded-lg shadow-lg"
>
</div>
container: Limita el ancho máximo del contenedor y lo centra.mx-auto: Centra el contenedor horizontalmente.px-4: Añade un padding horizontal para evitar que la imagen toque los bordes en móviles.rounded-lg: Añade bordes redondeados.shadow-lg: Añade una sombra para mejorar el diseño.srcset para imágenes responsive (HTML nativo)Si quieres optimizar el rendimiento cargando diferentes versiones de la imagen según el tamaño de la pantalla, puedes usar el atributo srcset junto con Tailwind:
<img
src="ruta/a/tu/imagen-small.jpg"
srcset="
ruta/a/tu/imagen-small.jpg 480w,
ruta/a/tu/imagen-medium.jpg 800w,
ruta/a/tu/imagen-large.jpg 1200w
"
sizes="(max-width: 640px) 100vw, (max-width: 1024px) 75vw, 50vw"
alt="Descripción de la imagen"
class="w-full h-auto object-cover rounded-lg shadow-lg"
>
srcset: Define diferentes versiones de la imagen para diferentes tamaños de pantalla.sizes: Indica cómo se debe escalar la imagen en diferentes breakpoints.w-full y h-auto para que la imagen sea responsive.max-w-*.object-cover o object-contain para controlar cómo se ajusta la imagen.md:, lg:) para ajustar el comportamiento en diferentes dispositivos.Este método garantiza que tu imagen se vea bien en todos los dispositivos sin distorsionarse ni perder calidad. ¡Espero que te sea útil! 😊
Sí, existen varias herramientas en Linux que permiten hacer copias de seguridad al estilo de Git, donde se realiza una copia completa inicial y luego se gestionan cambios incrementales (diferenciales). Aquí te presento algunas opciones populares:
bash
sudo apt-get install borgbackup # En Debian/Ubuntu
sudo dnf install borgbackup # En Fedorabash
borg init /ruta/al/repositorio
borg create /ruta/al/repositorio::nombre_de_la_copia /ruta/a/respaldarbash
sudo apt-get install restic # En Debian/Ubuntu
sudo dnf install restic # En Fedorabash
restic init --repo /ruta/al/repositorio
restic backup --repo /ruta/al/repositorio /ruta/a/respaldarbash
sudo apt-get install rsnapshot # En Debian/Ubuntu
sudo dnf install rsnapshot # En Fedorabash
rsnapshot configtest # Verificar la configuración
rsnapshot hourly # Realizar una copia de seguridadbash
sudo apt-get install timeshift # En Debian/Ubuntu
sudo dnf install timeshift # En Fedorabash
timeshift --create --comments "Copia inicial" --tags Dbash
sudo apt-get install duplicati # En Debian/Ubuntu
sudo dnf install duplicati # En Fedorabash
duplicati-cli backup /ruta/a/respaldarbash
sudo apt-get install zbackup # En Debian/Ubuntu
sudo dnf install zbackup # En Fedorabash
zbackup init /ruta/al/repositorio
zbackup backup /ruta/al/repositorio /ruta/a/respaldarCada una de estas herramientas tiene sus propias ventajas y características, por lo que la elección dependerá de tus necesidades específicas. Si buscas algo simple y eficiente, BorgBackup o Restic son excelentes opciones. Si prefieres algo más enfocado en el sistema, Timeshift es una buena alternativa. Para una solución más gráfica, Duplicati puede ser la mejor opción.
Las copias de seguridad incrementales y diferenciales son dos enfoques comunes para realizar respaldos de datos de manera eficiente, especialmente cuando se quiere ahorrar espacio y tiempo. Aquí te explico las diferencias clave entre ambas:
Cómo funciona:
Ventajas:
Desventajas:
Ejemplo:
Cómo funciona:
Ventajas:
Desventajas:
Ejemplo:
| Característica | Copia incremental | Copia diferencial |
|---|---|---|
| Base de referencia | Cambios desde la última copia (completa o incremental). | Cambios desde la última copia completa. |
| Tamaño de copia | Más pequeño (solo cambios recientes). | Más grande (cambios acumulados). |
| Restauración | Requiere copia completa + todas las incrementales. | Requiere copia completa + última diferencial. |
| Velocidad de copia | Más rápida (solo cambios recientes). | Más lenta (cambios acumulados). |
| Robustez | Más frágil (depende de todas las copias). | Menos frágil (depende de la última). |
Ambas estrategias son útiles, y la elección depende de tus necesidades específicas, como la frecuencia de las copias, el espacio disponible y la importancia de la facilidad de restauración.
echo "Base64Text' | base64 --decode
Util para el fichero de sitemanager.xml de Filezilla
grep -E 'Host|User|Pass' sitemanager.xml
Y pasar una macro en neovim para formatearla y un subshell para su decodificacion.
Primero, instala Git en tu sistema openSUSE Tumbleweed. Ejecuta los siguientes comandos como usuario root:
Es posibele que no haga falta instalar el repositorio, si ya se ha configurado previamente el servidor con OpenSUSE.
zypper addrepo https://download.opensuse.org/repositories/devel:tools:scm/openSUSE_Tumbleweed/devel:tools:scm.repo
zypper refresh
zypper install git
sudo adduser git
su git
cd
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
Crea un directorio para almacenar los repositorios:
sudo mkdir /opt/git
sudo chown git:git /opt/git
cd /opt/git
mkdir proyecto.git
cd proyecto.git
git init --bare
Para permitir que los desarrolladores accedan al repositorio, hay que agregar sus claves públicas SSH al archivo authorized_keys del usuario git:
cat /tmp/id_rsa.desarrollador1.pub >> ~/.ssh/authorized_keys
cat /tmp/id_rsa.desarrollador2.pub >> ~/.ssh/authorized_keys
Para mayor seguridad, puedes limitar el acceso del usuario git solo a operaciones de Git: Verificar si git-shell está disponible:
cat /etc/shells
Si no está listado, agrégarlo:
which git-shell
sudo vim /etc/shells
Añadir la ruta completa de git-shell al final del archivo. Cambia el shell del usuario git:
sudo chsh git
Ingresar la ruta de git-shell (generalmente /usr/bin/git-shell). Uso del servidor Los desarrolladores pueden ahora clonar el repositorio usando:
git clone git@tu_servidor:/opt/git/proyecto.git
Y pueden enviar cambios al repositorio:
git push origin master