It’s actually pretty simple and here are the steps:
Archivo del Autor:
Clonar todo un disco duro consola linux
Listas las unidades conectadas al sistema
df -h
El método anterior nos servirá para clonar una partición. Si lo que queremos es clonar todo un disco duro, el disco de salida tiene que ser del mismo tamaño o más grande que el disco de entrada. Clonaremos el disco /sdb en /sdc con este comando:
dd if=/dev/sdb of=/dev/sdc
Si queremos comprobar el estado de los discos tras la clonación, usaremos este otro comando:
fdisk -l /dev/sdb /dev/sdc
Cambiar fecha y hora en Ubuntu
Visualizar la fecha y hora:
Comando:
date
Si queremos cambiar la fecha y hora de nuestro sistema usaremos el mismo comando pero con el parámetro “–set” de la siguiente forma, no olvides los “”.
Comando:
date --set "2017-10-17 01:16"
Donde en primer lugar especificamos el año, seguido del numero del mes, el día del mes la hora y los minutos que queremos establecer.
Visualizar zona horaria:
Si deseamos ver en que zona horaria tenemos configurado nuestro servidor ejecutaremos el siguiente comando:
Comando:
cat /etc/timezone
La salida obtenida corresponde a la franja horaria de “Madrid”.
Cambiar zona horaria:
Si queremos cambiar la zona horaria ejecutamos el comando y seleccionamos el continente y la ciudad a la franja horaria a la que corresponda nuestra ubicación.
dpkg-reconfigure tzdata
How To Format USB Drive in Linux Command Line
Formatting a USB drive in Ubuntu using Terminal commands is much easier as formatting it in Windows systems. Some of the Ubuntu users are not familiar with terminal commands. This tutorial will help Ubuntu (Linux) users with the simple steps of USB flash drive formatting via command line.
Solucionar error NO_PUBKEY Ubuntu
Cuando se ejecuta una actualización apt update, o cuando se intenta actualizar las fuentes de software, apt se quejará de no poder descargar todos los índices del repositorio, mostrando errores como este:
Las firmas siguientes no se pudieron verificar porque su clave pública no está disponible: NO_PUBKEY 3F01618A51312F3F
Solución: Importar por lotes todas las claves GPG que faltan
Cuando faltan varias claves OpenPGP públicas, puedes usar una simple línea para importarlas todas de una sola vez:
sudo apt update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' | while read key; do if ! [[ ${keys[*]} =~ "$key" ]]; then sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys "$key"; keys+=("$key"); fi; done
Ejemplo Cursor MySQL
Ejemplo Cursor MySQL
DELIMITER $$
CREATE PROCEDURE createEmailList (
INOUT emailList varchar(4000)
)
BEGIN
DECLARE finished INTEGER DEFAULT 0;
DECLARE emailAddress varchar(100) DEFAULT "";
-- declare cursor for employee email
DEClARE curEmail
CURSOR FOR
SELECT email FROM employees;
-- declare NOT FOUND handler
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET finished = 1;
OPEN curEmail;
getEmail: LOOP
FETCH curEmail INTO emailAddress;
IF finished = 1 THEN
LEAVE getEmail;
END IF;
-- build email list
SET emailList = CONCAT(emailAddress,";",emailList);
END LOOP getEmail;
CLOSE curEmail;
END$$
DELIMITER ;
MySQL Server – Ajustar la autenticación y los privilegios del usuario
Para las instalaciones recientes, querrá ejecutar el script de seguridad que viene incluido. Esto cambia algunas de las opciones predeterminadas menos seguras para cosas como inicios de sesión root remotos y usuarios de ejemplo. Para las versiones antiguas de MySQL, también deberá inicializar el directorio de datos manualmente, pero ahora esto se hace automáticamente.
Mac Os: Eliminar los archivos ._ en las unidades montadas
Ya sea en unidades de red o unidades externas que hayamos montado (pendrives, discos externos, unidades NAS, etc) es común que se generen estos archivos ._nombre_archivo de “respaldo” ( no tengo certeza cual es su función ). Estos archivos son ocultos en sistemas unix, pero sí los vemos, por ejemplo desde Windows, pueden ser un tanto molestos si son demasiados. Para borrarlos sólo basta correr el siguiente script desde una terminal.
12 | cd [lugar donde esta montado la unidad] find . -name "._*" -exec rm '{}' \; -print |
Si se trata de un disco duro su punto de montaje es normalmente /Volumes, pero si no está ahí no y tienes idea donde está montada la unidad (como me pasó con las unidades que monta ntfsMounter) puedes preguntarle a la Utilidad de Discos:
Cómo conectarse en perl a una base de datos mysql
Supongamos que tenemos una base de datos mysql llamada ‘personas’ a la que podemos acceder con usuario ‘usudb’ y contraseña ‘clave’.
La base de datos contiene una tabla llamada ‘tabla’ con los siguientes campos:
- nombre varchar(32)
- edad integer
- fecha_alta date
Podemos conectarnos a la base de datos, leer y escribir registros con el siguiente código en perl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
my $dbname = 'personas';
my $dbhost = '127.0.0.1';
my $dbuser = 'usudb';
my $dbpwd = 'clave';
my $dbh;
my $stmt;
my $sth;
my $row;
## Conectarse a la base de datos
##
$dbh = DBI->connect("DBI:mysql:$dbname;host=$dbhost", $dbuser, $dbpwd)
or die "Error de conexion: $DBI::errstr";
## Preparar la sentencia de insercion en la base de datos
$sth = $dbh->prepare(
"insert into tabla ( nombre, edad, fecha) values ( ? , ? , ? )"
);
## Insertar un registro en la tabla
##
$sth->execute( "pedro ramirez", 36, '2012-04-14' );
## Leer los registros de la tabla
##
$sth = $dbh->prepare("select nombre, edad, fecha from tabla");
$sth->execute();
while ($row = $sth->fetchrow_hashref) {
print "nombre: " . $row->{nombre} . "\n";
print "edad: " . $row->{edad} . "\n";
print "fecha de alta: " . $row->{fecha_alta} . "\n";
}
## Desconectarse de la base de datos
##
if (! $dbh->disconnect) {
warn "Error al desconectarse de la base de datos: $DBI::errstr";
}
#####################################################################
|
Como vemos, la librería DBI es la encargada de implementar la conectividad a mysql desde perl.
Cómo enviar un email desde un script perl
En ocasiones es interesante poder enviar un email desde nuestra aplicación. Un ejemplo puede ser el caso de un proceso que se ejecuta periódicamente en un servidor (quizá mediante una entrada en cron), y que avisa mediante un email cuando se produce alguna incidencia durante su ejecución.
En Perl, la manera más sencilla de enviar un email es llamando a una aplicación externa de envío de correos por línea de comandos que esté disponible en el sistema, como pueden ser ‘mailx’, ‘mutt’ o el propio ‘sendmail’ en sistemas Linux:
Envío de email mediante a una llamada a sendmail
Para ello, podemos definir una función ‘send_email’ como sigue:
1
2
3
4
5
6
7
8
9
10
11
|
sub send_email {
my ($remitente, $destinatario, $asunto, $mensaje) = @_;
open(MAIL, "|/usr/lib/sendmail -oi -t");
print MAIL "From: $remitente\n";
print MAIL "To: $destinatario\n";
print MAIL "Subject: $asunto\n\n";
print MAIL "$mensaje\n";
close(MAIL);
}
|
De este modo, podemos enviar un email mediante la llamada:
1
2
3
4
5
6
|
send_email('soporte@openalfa.com',
'usuario@gmail.com',
'Mensaje de prueba',
'Estimado usuario, este es un mensaje de prueba');
|
En la rutina send_email, el segundo argumento de la llamada a open(MAIL …) comienza con el caracter “|” (pipe). Así se dispara la ejecución del comando sendmail, y se asocia su standard input a la variable “MAIL”. De este modo, las siguientes llamadas “print MAIL …” envían el texto al programa sendmail.
El texto que se envía a sendmail consta de una cabecera de tres líneas con el remitente, el destinatario y el asunto del mensaje, seguida del cuerpo del mensaje. La cabecera debe estar separada del cuerpo por una línea en blanco, y por eso la tercera línea que se envía (con el asunto del mensaje) finaliza en “nn”.
Envío de emails con ficheros adjuntos
El mecanismo de llamar a un comando del sistema mediante una canalización (pipe) se puede aplicar a cualquier otro comando que queramos ejecutar. En concreto, si tenemos necesidad de enviar mensajes más elaborados (por ejemplo, mensajes HTML, o mensajes que incluyen ficheros adjuntos) podemos llamar a otro cliente de correo en lugar de a sendmail. mutt es un ejemplo de cliente de correo disponible en sistemas linux que puede ser usado para añadir adjuntos a los mensajes que enviamos.
En funcion de las características de nuestro sistema, podemos también utilizar los comandos ‘mail’, ‘mailx’ o cualquier otro cliente de correo que ofrezca un interfaz de línea de comandos.
Otras posibilidades para enviar emails desde Perl
La biblioteca CPAN de módulos perl también dispone de numerosos módulos para el envío de correo, entre los que se encuentran Net::SMTP, Email::Sender, Email::MIME, MIME::Lite, etc.
Por ejemplo, podemos enviar un mensaje HTML utilizando MIME::Lite con el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#!/usr/bin/perl -w
use strict;
use MIME::Lite;
# Destinatario
my $email = 'usuario@gmail.com';
my $mensaje = MIME::Lite->new (
Subject => "Prueba de mensaje HTML",
From => 'dev@openalfa.com',
To => $email,
Type => 'text/html',
Data => '<H1>Mensaje de prueba</H1><br>Este es un mensaje de prueba<br/>
Por cortesía de <a href="http://blog.openalfa.com/">Blog Openalfa</a><hr>'
);
$mensaje->send();
|