Creare una usb bootable Win10 da Debian 9

 

Creare una usb bootable Win10 da Debian 9

Creare una usb bootable Win10 da Debian 9

Per creare una usb bootable di Windows 10 non bisogna necessariamente ricorrere a programmi Windows, come Rufus o lo strumento che mette a disposizione Microsoft, ma bensì direttamente da ogni distibuzione Gnu-Linux. Gli strumenti che io utilizzo sono: dd, parted, p7zip-full. Ad ogni modo la chiavetta usb si può preparare in modo grafico utilizzando gparted.

# apt install parted p7zip-full

Identificare la chiavetta usb:

# fdisk -l

nel mio caso /dev/sdc di 16G

Formattazione:

# dd count=1 bs=512 if=/dev/zero of=/dev/sdc

 
Creazione tabella delle partizioni più 1 partizione in fat32:

# parted /dev/sdc
(parted) mklabel msdos                                          
(parted) mkpart primary fat32 1 16G                                 
(parted) set 1 boot on                                                   
(parted) q
# mkfs.fat -n win10 /dev/sdc1
# mount /dev/sdc1 /mnt
# cd /mnt/
# 7z x /percorso_win_iso_scaricata/windows10.iso
# cd ..
# umount /dev/sdc1

Creare una usb bootable Win10 da Debian 9

adesso la nostra usb con windows 10 è pronta per essere testata.

enjoy 😉

 

Trasformare un Libro da pdf in AudioLibro

 

Trasformare un Libro da pdf in AudioLibro

Trasformare un Libro da pdf in AudioLibro

A volte può risultare utile trasformare un file pdf in un audiolibro. Per ottenere questo risultato bisogna utilizzare pdf2mp3, che è uno script che si appoggia a pdftotext, pico2wave e lame. Il processo non farà altro che convertire il pdf in tanti files txt, pico2wave li trasformerà in files wav, e per ultimo lame li convertirà in mp3. A conclusione di questo processo si utlizzerà cat per unire tutti i files.

Installazione:

# apt install python poppler-utils lame libttspico-utils coreutils mawk gawk git -y
# git clone https://github.com/jccall80/pdf2mp3
# cd pdf2mp3; chmod +x pdf2mp3
# cp pdf2mp3 /usr/bin/

prima di utilizzare lo script, bisognerà cambiare il linguaggio che di default è settato su ES:

# nano /usr/bin/pdf2mp3

e sostituire es=ES in it=IT come nella stringa sotto:

pico2wave -l=it-IT -w="$WAVE" "`cat $FIRST_FILE.lock`"

Utilizzo:

# pdf2mp3 /path/to/pdf

il comando sopra creerà nella cartella /tmp/pdf2mp3 diversi files mp3 che dovranno essere uniti con il comando:

# cd /tmp/pdf2mp3/
# cat *.mp3 > audiolibro.mp3

adesso con qualunque player si potrà ascoltare il libro

Trasformare un Libro da pdf in AudioLibro

enjoy 😉

Sincronizzare cartella in locale e remoto con Lsyncd su Debian Stretch

 

Sincronizzare cartella in locale e remoto con Lsyncd su Debian Stretch

Sincronizzare cartella in locale e remoto con Lsyncd su Debian Stretch

Guida su come sincronizzare automaticamente una cartella sia in locale che in remoto utilizzando lsyncd su Debian Stretch. Questo è un metodo molto utile per sincronizzare la stessa cartella su più server contemporaneamente.

Installazione:

sudo apt install lsyncd

lysncd non crea files di configurazione, ma si trovano degli esempi in:

ls /usr/share/doc/lsyncd/examples/

output:

edmond@debianbox:~$ ls /usr/share/doc/lsyncd/examples/
lalarm.lua lecho.lua lgforce.lua lpostcmd.lua lrsyncssh.lua
lbash.lua lftp.lua limagemagic.lua lrsync.lua lsayirc.lua

un esempio di file di configurazione da cui partire è quello sotto:

cat /usr/share/doc/lsyncd/examples/lrsync.lua

output:

edmond@debianbox:~$ cat /usr/share/doc/lsyncd/examples/lrsync.lua
----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync.
--
settings = {
    statusFile = "/tmp/lsyncd.stat",
    statusInterval = 1,
}

sync{
    default.rsync,
    source="src",
    target="trg",
}

Sincronizzare cartella in locale

sudo mkdir dir_sorgente
sudo mkdir dir_destinazione

creare dei files di prova:

sudo touch dir_sorgente/file{1..10}
ls source_dir/

Creare dei files di log utili per capire cosa succede durante la sincronizzazione:

sudo mkdir /var/log/lsyncd 
sudo touch /var/log/lsyncd/lsyncd.{log,status}

Creazione del file di configurazione:

sudo mkdir /etc/lsyncd
sudo nano /etc/lsyncd/lsyncd.conf.lua
settings {
        logfile = "/var/log/lsyncd/lsyncd.log",
        statusFile = "/var/log/lsyncd/lsyncd.status"
}

sync {
        default.rsync,
        source = "/home/edmond/dir_sorgente",
        target = "/home/edmond/dir_destinazione",
}

modificare quanto sopra con il proprio user/path

Avviare lsyncd:

sudo systemctl enable lsyncd
sudo systemctl restart lsyncd

e controllare la directory di destinazione che dovrebbe essersi popolata con i files di esempio:

ls dir_destinazione/

output:

file1 file10 file2 file3 file4 file5 file6 file7 file8 file9

consultare il log e lo status:

tail -10 /var/log/lsyncd/lsyncd.log
more /var/log/lsyncd/lsyncd.status

Sincronizzare cartella in remoto

la prima cosa da fare è quella di avere un accesso ssh senza password:

sudo su
ssh-keygen -t rsa

premere sempre enter

copiare la chiave sul server remoto:

ssh-copy-id USER@192.168.10.100

a questo punto se tutto è andato bene si avrà l'accesso senza password:

ssh USER@192.168.10.100

creare una directory da sincronizzare sul server:

mkdir dir_remote
exit

a questo punto bisogna editare il file di configurazione con le nuove modifiche. Di default lsyncd si collega via ssh con la porta standard 22, ma per chi usa una porta diversa bisogna specificarlo nel file di configurazione:

sudo nano /etc/lsyncd/lsyncd.conf.lua

settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd-status.log",
    statusInterval = 1
}

sync {
    default.rsyncssh,
    source="/home/edmond/dir_sorgente",
    host="USER@192.168.10.100",
    targetdir="/path/dir_remote",
    delay = 1,
    rsync = {
        archive = true,
        compress = true,
        whole_file = false
    },
    ssh = {
        port = 2233
    }
}

accedendo al server si potrà vedere se la sincronizzazione è avvenuta con successo.

sudo systemctl restart lsyncd
ssh user@192.168.10.100
ls dir_remote/

output:

server1@raspberrypi:~ $ ls dir_remote/
test_files1 test_files2 test_files4 test_files6 test_files8
test_files10 test_files3 test_files5 test_files7 test_files9

Sincronizzare cartella in locale e remoto con Lsyncd su Debian Stretch

enjoy 😉

 

Come visualizzare default gateway da terminale in Linux

 

Come visualizzare default gateway da terminale in Linux

Come visualizzare default gateway da terminale Linux

I classici comandi come ifconfig o ip non visualizzano il default gateway, quindi per poterlo visualizzare si possono usare i tre comandi seguenti:

# netstat -nr
# ip route show
# route -n

Come visualizzare default gateway da terminale in Linux

enjoy 😉

 

Utilizzo di Rsync su DD-WRT

 

Utilizzo di Rsync su DD-WRT

Utilizzo di Rsync su DD-WRT

Dopo avere installato rsync sul mio router Asus RT-AC68U, utilizzando Entware. ho iniziato con il backup incrementale dei miei 3 Raspberry pi. L'utilizzo di rsync è quello standard, ma nella versione per ARM, ci sono delle piccole mancanze/differenze. Per ottenere un backup incrementale del mio centralino asterisk su Raspberry pi, ho usato:

# rsync -zzahlrvp -e 'ssh -p 2233' --progress --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/lost+found"} / ddwrt@192.168.1.1:/mnt/sdaX/cartella_backup

Utilizzo di Rsync su DD-WRT

enjoy 😉

 

Trasferire cartelle tra due hosts locale-remoto in Linux con SCP

 

Trasferire cartelle tra due hosts locale-remoto in Linux con SCP

Il comando SCP in Linux è usato per trasferire files o cartelle in maniera sicura usando ssh, tra server locali e/o remoti.

Trasferire cartelle tra due hosts locale-remoto in Linux con SCP

 

Copiare file da locale a remoto:

# scp -v /path/local/file.txt remoteuser@remotehost:/remote/path/

se si utilizza una porta differente:

# scp -v -P 2200 /path/local/file.txt remoteuser@remotehost:/remote/path/

Copiare file da remoto a locale

# scp -v remoteuser@remotehost:/path/file.txt /path/local

Copiare cartella in maniera ricorsiva e compressa da locale a remoto:

# scp -vrC -P 2200 /path/local/folder remoteuser@remotehost:/remote/path/

Copiare cartella in maniera ricorsiva e compressa da remoto a locale:

# scp -vrC -P 2200 remoteuser@remotehost:/remote/folder/ /path/local/

Limitare la banda:

# scp -vrC -l 500 -P 2200 /path/folder remoteuser@remotehost:/remote/path/

Copiare file/cartella tra 2 hosts remoti:

# scp -v remoteuser1@remotehost1:/path/file.txt remoteuser2@remotehost2::/path/directory/

 

enjpy 😉

Backup del Sistema con Rsync

Backup del Sistema con Rsync

Backup del Sistema con Rsync. Rsync è un leggero e potente strumento per il backup. Permette di eseguire backup incrementali, salvando i soli file modificati o aggiunti rispetto all’ultima operazione di backup, sia in locale che in remoto. Si può utilizzare per un backup dell’intero sistema o di cartelle specifiche.

Installazione:

# apt install rsync -y

Rsync locale:

# rsync -zav /percorso/origine /percorso/backup

per cancellare nella cartella di destinazione i file non più presenti nella cartella di origine basta aggiungere l’opzione –delete:

# rsync --delete -zav /percorso/origine /percorso/backup

Backup del Sistema:

per escludere dal backup files o cartelle si utilizza l’opzione –exclude:

# rsync -zaAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /percorso/backup

Rsync da locale a remoto con ssh:

$ rsync -zavh -e ssh /cartella/origine_file/ remoteuser@remotehost:/cartella/backup

se si utilizza una porta diversa per ssh:

$ rsync -zavh -e 'ssh -p 2200' /cartella/origine_file/ remoteuser@remotehost:/cartella/backup

per visualizzare il progresso del backup:

$ rsync -zavh -e 'ssh -p 2200' --progress /cartella/origine_file/ remoteuser@remotehost:/cartella/backup

Rsync da remoto a locale con ssh:

$ rsync -zvah -e 'ssh -p 2200' remoteuser@remotehost:/percorso/del/file /cartella/destinazione

Rsync senza password ssh:

# ssh-keygen

alle domande successive premere sempre invio e copiare la chiave sul server:

# ssh-copy-id -i $HOME/.ssh/id_rsa.pub remoteuser@remotehost

a questo punto se tutto è andato bene non verrà più richiesta la password e si può accedere direttamente:

# ssh remoteuser@remotehost

Backup automatico:

a questo punto si può decidere che tipo di backup effettuare:

ogni giorno alle 23:00

00 23 * * *

ogni sabato alle 23:00

00 23 * * 6

oppure al 1° di ogni mese alle 23:00:

00 23 1 * *

$ crontab -e

ed inserire l’opzione desiderata:

00 23 * * * rsync -zav /percorso/origine /percorso/backup

Backup del Sistema con Rsync

enjoy 😉

 

Speedtest da teminale in Linux con Testspeed

 

Speedtest da teminale in Linux con Testspeed

Speedtest da teminale in Linux con Testspeed

Qualche tempo fa avevo scritto un post su come effettuare uno speedtest da terminale, utilizzando speedtest-cli. Adesso utilizzo anche un'altro programmino in python, che si chiama Testspeed. Anche questo si appoggia a speedtest.net.

Installazione:

$ sudo apt-get install git python-lxml python-argparse
$ git clone git://github.com/Janhouse/tespeed.git
$ cd tespeed
$ git submodule init
$ git submodule update

Utilizzo:

$ cd tespeed/
$ ./tespeed.py

per una lista di server disponibili utilizzare:

$ ./tespeed.py -ls
edmond@debianbox:~/tespeed$ ./tespeed.py -ls
Getting ready
Printing CSV formated results to STDOUT.
Loading speedtest configuration...
IP: 151.66.XXX.XXX; Lat: 45.626800; Lon: 9.053600; ISP: WIND
Loading server list...
1. https://speedtest.siportal.it/speedtest/ (SIPORTAL SRL, Milano, Italy) [23.02 km]
2. https://speedtest.cheapnet.it/speedtest/ (CWNET, Milan, Italy) [23.54 km]
3. https://speedtestmi1.telecomitalia.it/speedtest/ (Telecom Italia S.p.A., Milan, Italy) [23.54 km]
4.  (H3G, Milan, Italy) [23.54 km]
5.  (Fastweb SpA, Milan, Italy) [23.54 km]
6. https://speedtest.vodafone.it/speedtest/speedtest/ (Vodafone IT, Milan, Italy) [23.54 km]
7.  (Join srl, Milan, Italy) [23.54 km]
8.  (ItaliaOnline, Milan, Italy) [23.54 km]
9. https://79.171.160.66/speedtest/speedtest/ (Linkem SPA, Milan, Italy) [23.54 km]
10.  (CDLAN S.R.L., Milan, Italy) [23.54 km]

per utilizzare il server vodafone:

$ ./tespeed.py https://speedtest.vodafone.it/speedtest/speedtest/

Speedtest da teminale in Linux con Testspeed

enjoy 😉

 

Creare una Debian Jessie Live persistente con firmware non-free

 

Creare una Debian Jessie Live persistente con firmware non-free

 

Guida su come creare una Debian Jessie Live persistente con firmware non-free, alla Debian way. Possedere una chiavetta usb con la propria distribuzione preferita può ritornare utile, sia come OS di riserva, live o installabile, sia come strumento di lavoro. Per avere un buon strumento di lavoro, bisogna però avere tutti i propri programmi preferiti, e per ottenere ciò bisogna creare una Debian Live in modalità persistente. Con la modalità persistente, si può installare tutto quello che serve e portarsi dietro i documenti preferiti,  ed addirittura la distribuzione può essere aggiornata, senza paura che al riavvio le modifiche vadano perse. Quello che serve come prima cosa è scaricare la Debian Live iso-hybrid, scegliendo anche il proprio Desktop Environment, ed alcuni pacchetti:

 

# apt-get install mbr syslinux p7zip

 

la mia chiavetta di 8G viene identificata come /dev/sdb, quindi la guida utilizzerà questa sintassi:

Inserire la chiavetta usb e verificare come viene identificata, la mia come /dev/sdb con 2 partizioni:

# fdisk -l
# umount /dev/sdb1
# umount /dev/sdb2

 

Formattazione:

# dd count=1 bs=512 if=/dev/zero of=/dev/sdb

 

Creazione tabella delle partizioni e di 2 partizioni, una in fat32 l'altra in ext4:

# parted /dev/sdb
(parted) mklabel msdos                                          
(parted) mkpart primary fat32 1 1536M                                  
(parted) mkpart primary ext4 1536 8G
(parted) set 1 boot on                                                   
(parted) q

 

Creazione filesystem:

# /sbin/mkdosfs -n live /dev/sdb1
# /sbin/mkfs.ext4 -L persistence /dev/sdb2
# mkdir /mnt/live
# mkdir /mnt/persistence
# mount /dev/sdb1 /mnt/live
# mount /dev/sdb2 /mnt/persistence
# cd /mnt/live
# 7z x /percorso_iso_scariicata/debian-live-8.2.0-amd64-mate-desktop+nonfree.iso

 

Modificare il file live.cfg inserendo le opzioni persistence e noeject:

# nano isolinux/live.cfg

dove la prima parte deve essere come sotto:

label live-amd64
        menu label ^Live (amd64)
        menu default
        linux /live/vmlinuz
        initrd /live/initrd.img
        append boot=live components persistence noeject quiet splash

 

Creazione del dispositivo usb bootable e della seconda partizione persistente:

# /sbin/install-mbr /dev/sdb
# syslinux -i /dev/sdb1
# mv isolinux syslinux
# mv syslinux/isolinux.cfg syslinux/syslinux.cfg
# mv syslinux/isolinux.bin syslinux/syslinux.bin
# cd /mnt/persistence
# echo / union > persistence.conf
# cd ..
# umount /mnt/live
# umount /mnt/persistence

A questo punto si può riavviare e provare la Debian Jessie Live persistente con firmware non-free. La prima cosa da fare volendo è quella di aggiornare il sistema per poi installare i propri programmi preferiti:

# apt-get update && apt-get upgrade -y

Utente e password di default sono: username=user password=live

 

enjoy 😉