Raspberry con Owncloud Raspbian Buster Letsencrypt Apache

Raspberry con Owncloud Raspbian Buster Letsencrypt ApacheRaspberry con Owncloud Raspbian Buster Letsencrypt Apache

Guida su come realizzare un proprio server cloud, utilizzando owncloud, su raspberry pi 3/4, con Raspbian Buster, ma in alternativa si puo utilizzare un’altro modello di single board o Pc, con OS Debian based. Avevo gia fatto una guida precedentemente, utilizzando Raspbian Stretch. Inoltre utilizzando Let’s Encrypt si avranno certificati SSL gratuiti tramite un processo completamente automatizzato, progettato per eliminare la creazione manuale di certificati, per la convalida, l’installazione e il rinnovo. I certificati rilasciati da Let’s Encrypt sono validi per 90 giorni dalla data di emissione e sono oggi considerati affidabili da tutti i principali browser.

Prerequisiti ed info

  • Negli esempi sotto utilizzerò come nome di dominio example.com ed i comandi verranno eseguiti da root
  • Il raspberry dovrà avere quindi come dominio l’equivalente di example.com. Questo può essere modificato in /etc/hostname e poi riavviare.
  • Il vostro ip pubblico dovrà puntare quindi al dominio, nel caso non si avesse un ip pubblico, utilizzare un servizio di DNS.
  • Assicurarsi prima di aprire le porte 80/443 verso il proprio server, altrimenti non si potranno ottenere i certificati. Successivamente rimarrà aperta solo la 443.
  • La guida è stata testata su una installazione pulita di Raspbian Buster

Raspberry con Owncloud Raspbian Buster Letsencrypt Apache

Step 1) Installare i pacchetti necessari:

$ sudo su
# apt update; apt upgrade
# apt install apache2 mariadb-server libapache2-mod-php7.3 php7.3-gd php7.3-json php7.3-mysql php7.3-curl php7.3-intl php-imagick php7.3-zip php7.3-xml php7.3-mbstring ntfs-3g fail2ban certbot

Step 2) Configurazione Apache e Virtual Host basic

# rm -rf /var/www/html/
# mkdir -p /var/www/example.com/public_html
# nano /var/www/example.com/public_html/index.html

ed incollare dentro:

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html
# nano /etc/apache2/sites-available/example.com.conf

ed incollare dentro:

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/example.com/public_html

<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>

ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>

poi:

# chown -R www-data: /var/www/example.com/
# mv /etc/apache2/sites-available/000-default.conf 000-default.conf.bak
# mv /etc/apache2/sites-enabled/000-default.conf 000-default.conf.bak
# a2ensite example.com
# systemctl restart apache2
# systemctl enable apache2

a questo punto collegandosi al server dovremmo vedere che funziona:

Raspberry con Owncloud Letsencrypt ApacheStep 3) Chiave e Letsencrypt

Creare una chiave robusta Dh (Diffie-Hellman) a 1024 oppure a 2048 bit, ci vorrà circa 20 minuti.

# openssl dhparam -out /etc/ssl/certs/dhparam.pem 1024

Per ottenere i certificati utilizzeremo certbot, installato precedentemente, che si occuperà dell’acquisizione e del rinnovo degli stessi. Utilizzeremo il plug-in Webroot che funziona creando un file temporaneo nella ${webroot-path}/.well-known/acme-challenge a cui si collegherà Letsencrypt per risolvere il DNS:

# mkdir -p /var/lib/letsencrypt/.well-known
# chgrp www-data /var/lib/letsencrypt
# chmod g+s /var/lib/letsencrypt

creare primo file di configurazione:

# nano /etc/apache2/conf-available/letsencrypt.conf

ed incollare dentro:

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
AllowOverride None
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>

creare secondo file raccomandato:

# nano /etc/apache2/conf-available/ssl-params.conf

ed incollare dentro:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off

abilitare moduli e files di configurazione:

# a2enmod ssl
# a2enmod headers
# a2enmod http2
# a2enconf letsencrypt
# a2enconf ssl-params
# systemctl reload apache2

a questo punto siamo pronti ad ottenere i certificati SSL utilizzando certbot:

# certbot certonly --agree-tos --email admin@example.com --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

se tutto è andato bene visualizzeremo questo:

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem.
Your cert will expire on 2019-02-28. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you lose your account credentials, you can recover through
e-mails sent to xxxxxxx@gmail.com.
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

adesso andiamo a riconfigurare il file Virtual Host come sotto:

# nano /etc/apache2/sites-available/example.com.conf
ed incollare dentro:
<VirtualHost *:80> 
ServerName example.com
ServerAlias www.example.com

Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com

Protocols h2 http:/1.1

<If "%{HTTP_HOST} == 'www.example.com'">
Redirect permanent / https://example.com/
</If>

DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined

SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem


</VirtualHost>
ricaricare la nuova configurazione:
# systemctl reload apache2

adesso si può fare un TEST SSL

Rinnovo automatico dei certificati: Come dicevo all’inizio, i certificati di Let’s Encrypt hanno una durata di 90 giorni, dopodichè dovrebbero autorinnovarsi traminte un cronjob, altrimenti aggiornare manualmente con il comando:
# certbot renew --dry-run

Step 4) Installazione Owncloud

# cd /tmp
# wget https://download.owncloud.org/download/community/owncloud-latest.tar.bz2
# tar -xvf owncloud-latest.tar.bz2
# chown -R www-data:www-data owncloud
# mv owncloud /var/www/example.com/public_html/
# rm /var/www/example.com/public_html/index.html
# nano /etc/apache2/sites-available/example.com.conf

e fare puntare la DocumentRoot ad owncloud:

DocumentRoot /var/www/example.com/public_html/owncloud

Creazione database ed user mysql:

# mysql -u root -p

inserire password di root, e poi i 5 comandi sotto, e settare la password per l’utente owncloud

1) create database owncloud;
2) create user owncloud@localhost identified by ‘password‘;
3) grant all privileges on owncloud.* to owncloud@localhost identified by ‘password‘;
4) flush privileges;
5) exit;
fare una modifica al file php.ini, nella sezione File Uploads, portando upload_max_filesize = 5000M.
# nano /etc/php/7.3/apache2/php.ini

come ultimo ritocco, aumentare la capacità di upload, andando a modificare il file .user.ini

# nano /var/www/example.com/public_html/owncloud/.user.ini

portando: upload_max_filesize, e post_max_size a 5000M

# systemctl restart apache2

a questo punto il server owncloud è installato, ed è raggiungibile all’indirizzo https://example.com. Se si volesse utilizzare come storage un disco esterno, la guida continua:

Step 5) Creazione della cartella di storage e relativi permessi:

# mkdir /media/owncloud-usb
# groupadd www-data
# usermod -a -G www-data www-data
# chown -R www-data:www-data /media/owncloud-usb
# chmod -R 775 /media/owncloud-usb

adesso abbiamo bisogno di conoscere UUID del disco usb ed user e group di www-data, che serviranno per configurare /etc/fstab per il montaggio automatico:

# id -u www-data; id -g www-data
# blkid
# nano /etc/fstab

ed aggiungere in una sola riga qualcosa del genere in /etc/fstab:

UUID=32E49E5027A4F8A7 /media/owncloud-usb auto nofail,uid=33,gid=33,umask=0027$,dmask=0027,noatime 0 0
# reboot

Se tutto è andato bene andare all’indirizzo https://ip_dominio_del_server ed apparirà la pagina iniziale, dove si dovrà inserire nome utente e password per l’accesso al server owncloud, nome del database, user e password dell’utente owncloud, ed infine il punto di mount. Username: owncloud Password: password Database: owncloud Server: localhost

Raspberry con Owncloud Letsencrypt Apache

Raspberry con Owncloud Raspbian Buster Letsencrypt Apache

enjoy 😉

Pen drive con Debian Buster Live Custom Persistente Criptata

Pen drive con Debian Buster Live Custom Persistente CriptataPen drive con Debian Buster Live Custom Persistente Criptata

Guida su come creare una chiavetta usb, equipaggiata con Debian Buster, in  modalità Live, con partizione persistente, e boot in  UEFI mode. L’obiettivo è quello di avere una usb bootable con i propri tools preferiti, e che ci permette di navigare in internet in piena sicurezza senza rinunciare ad una partizione dove poter stipare tutti i dati sensibili. Per cifrare la partizione persistente userò LUKS. Tutti i comandi verranno eseguiti come root, con il comando ” su  – ” per non avere errori simili a questo:

Pacchetti da installare:

# su -
# apt install fuse libfuse-dev libicu-dev bzip2 libbz2-dev cmake clang git libattr1-dev zlib1g-dev libfuse3-dev debootstrap squashfs-tools rsync

Creazione Environment:

# mkdir $HOME/debian_live
# debootstrap --arch=amd64 --variant=minbase buster $HOME/debian_live/chroot http://ftp.it.debian.org/debian/
# chroot $HOME/debian_live/chroot
# echo "debian-live" > /etc/hostname
# echo 'deb http://ftp.it.debian.org/debian/ buster main contrib non-free' > /etc/apt/sources.list
# apt update

Installazione kernel:

# apt-cache search linux-image
# apt install -y linux-image-4.19.0-6-amd64 linux-headers-4.19.0-6-amd64

Installazione dei pacchetti personalizzati (nel mio caso quelli sotto)

# apt install -y mate-desktop-environment-extra task-laptop xorg xinit xserver-xorg-input-evdev xserver-xorg-input-libinput xserver-xorg-input-kbd live-boot systemd-sysv network-manager net-tools wireless-tools nano gparted x11-xserver-utils x11-utils pciutils usbutils ntfs-3g rsync dosfstools syslinux firefox-esr chromium xserver-xorg-input-synaptics vpnc network-manager-gnome network-manager-vpnc-gnome network-manager-openvpn-gnome gtkterm vsftpd putty openssh-client firmware-linux-nonfree firmware-iwlwifi firmware-linux-free vlc terminator synaptic p7zip-full rar unrar zip ssh wget curl mesa-utils dnsmasq grub2-common grub-efi-amd64 grub-pc-bin xkb-data keyboard-configuration tzdata locales encfs wireshark-gtk aircrack-ng nmap zenmap

a questo punto abbiamo bisogno di installare la versione di cryptsetup 2:2.2.1-1  presente nei repo testing, per evitare il problema di cui sotto:

cryptsetup: WARNING: The initramfs image may not contain cryptsetup binaries
nor crypto modules. If that's on purpose, you may want to uninstall the
'cryptsetup-initramfs' package in order to disable the cryptsetup initramfs

Aggiungere i repo testing ed installare cryptsetup:

# echo 'deb http://ftp.it.debian.org/debian/ testing main contrib non-free' > /etc/apt/sources.list
# apt update
# apt install -t testing cryptsetup
# apt clean

Reinserire i repo stable:

# echo 'deb http://ftp.it.debian.org/debian/ buster main contrib non-free' > /etc/apt/sources.list
# apt update

Aggiungere utenti e password:

# passwd root
# adduser nome_utente
# exit

Comprimere il tutto in uno squash filesystem:

# mkdir -p $HOME/debian_live/image/
# mksquashfs $HOME/debian_live/chroot $HOME/debian_live/image/filesystem.squashfs -noappend -e boot

Copiare kernel e initramfs fuori chroot:

# cp $HOME/debian_live/chroot/boot/vmlinuz-4.19.0-6-amd64 $HOME/debian_live/image/vmlinuz-4.19.0-6-amd64
# cp $HOME/debian_live/chroot/boot/initrd.img-4.19.0-6-amd64 $HOME/debian_live/image/initrd.img-4.19.0-6-amd64

Preparazione chiavetta usb: (nel mio caso /dev/sdb di 16G). Negli steps successivi verranno create 3 partizioni:

  1. partizione in fat32 EFI
  2. partizione in fat32 che contiene il sistema Linux
  3. partizione in ext4 persistente criptata con LUKS
# fdisk -l
# umount /dev/sdb*
# dd count=1 bs=512 if=/dev/zero of=/dev/sdb
# parted -s -- /dev/sdb mktable gpt mkpart efi 1 100M set 1 boot on
# parted -s -- /dev/sdb mkpart system 100 2G
# parted -s -- /dev/sdb mkpart persistence 2G 16G
# mkdir -p /mnt/{usb,efi,persistence}
# mkfs.fat -F32 -n EFI /dev/sdb1
# mkfs.fat -F32 -n SYSTEM /dev/sdb2
# mkfs.ext4 -L persistence /dev/sdb3

Montaggio delle partizioni EFI e di Sistema:

# mount /dev/sdb1 /mnt/efi/
# mount /dev/sdb2 /mnt/usb/

Installazione di Grub-EFI:

# grub-install --target=x86_64-efi --efi-directory=/mnt/efi --boot-directory=/mnt/usb/boot --removable --recheck

Copiare il sistema nella seconda partizione:

# rsync -rv $HOME/debian_live/image/ /mnt/usb/live/

Creare il file grub.cfg:

# nano /mnt/usb/boot/grub/grub.cfg

ed incollare dentro:

set default="0"
set timeout=3
menuentry "Debian Custom Live" {
linux /live/vmlinuz-4.19.0-6-amd64 boot=live persistence persistence-encryption=luks
initrd /live/initrd.img-4.19.0-6-amd64
}

Creazione della partizione persistente criptata con LUKS:

# cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3

rispondere YES e creare la password:

# cryptsetup luksOpen /dev/sdb3 live
# mkfs.ext4 -L persistence /dev/mapper/live
# mount /dev/mapper/live /mnt/usb
# echo "/ union" > /mnt/usb/persistence.conf
# umount /mnt/usb/
# cryptsetup luksClose live
# umount /dev/sdb*
# exit

sopra non abbiamo fatto altro che creare una cartella live che verrà montata in /dev/mapper/, ed aprire e chiudere la partizione persistente. Per accedere alla partizione da adesso in poi bisognerà digitare una password al boot, dopodichè si potranno mettere i files importanti da portarsi dietro. Al primo avvio dare i comandi:

# apt update
# apt upgrade
# apt install -f

Pen drive con Debian Buster Live Custom Persistente Criptata

enjoy 😉

 

Broadcom BCM94352Z su Debian 10

Broadcom BCM94352Z su Debian 10Broadcom BCM94352Z su Debian 10

Guida su come installare la scheda wireless Broadcom BCM94352Z/BCM4352 su Debian 10:

$ lspci -vvnn | grep 14e4

output:

edmond@debianbox:~$ lspci -vvnn | grep 14e4
08:00.0 Network controller [0280]: Broadcom Limited BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)

 

Aggiungere i repository backport:

# printf "deb http://deb.debian.org/debian buster-backports main contrib" > /etc/apt/sources.list.d/buster-backports.list
# apt update

Installazione:

# apt-get install linux-image-$(uname -r|sed 's,[^-][I]-[^-][/I]-,,') linux-headers-$(uname -r|sed 's,[^-][I]-[^-][/I]-,,') broadcom-sta-dkms -y
# modprobe -r b44 b43 b43legacy ssb brcmsmac bcma
# modprobe wl
# reboot

Broadcom BCM94352Z su Debian 10

enjoy 😉

 

TorBrowser su Debian 10

TorBrowser su Debian 10TorBrowser su Debian 10

Tor (acronimo di The Onion Router) è un sistema di comunicazione anonima per Internet basato sulla seconda generazione del protocollo di rete di onion routing. Tramite l’utilizzo di Tor è molto più difficile tracciare l’attività Internet dell’utente; difatti l’uso di Tor è finalizzato a proteggere la privacy degli utenti, la loro libertà e la possibilità di condurre delle comunicazioni confidenziali senza che vengano monitorate.  Per installare TorBrowser su Debian 10 Buster:

Aggiungere i repository backport:

# printf "deb http://deb.debian.org/debian buster-backports main contrib" > /etc/apt/sources.list.d/buster-backports.list
# apt update

Installazione:

# apt -t buster-backports install torbrowser-launcher tor tor-geoipdb torsocks

Workaround errore black screen all’avvio:

# nano /etc/apparmor.d/local/torbrowser.Browser.firefox

ed aggiungere:

owner /{dev,run}/shm/org.mozilla.*.* rw,
# reboot

poi lanciare tor:

$ torbrowser-launcher

TorBrowser su Debian 10

enjoy 😉

 

Nvidia Optimus con Bumblebee su Debian 10

Nvidia Optimus con Bumblebee su Debian 10Nvidia Optimus con Bumblebee su Debian 10

Tanti laptop hanno la doppia scheda video Intel e Nvidia, e quindi si può installare Bumblebee che supporta i laptop con tecnologia NVIDIA Optimus Praticamente si fa il rendering con Nvidia che sarà visalizzata con la scheda Intel.

Per identificare le schede:

$ su -
# apt install inxi
# inxi -G

output:

Graphics:
Device-1: Intel 4th Gen Core Processor Integrated Graphics driver: i915
v: kernel
Device-2: NVIDIA GM107M [GeForce GTX 860M] driver: N/A
Display: server: X.Org 1.20.4 driver: modesetting unloaded: fbdev,vesa
resolution: 1920x1080~60Hz
OpenGL: renderer: Mesa DRI Intel Haswell Mobile v: 4.5 Mesa 18.3.6

Installazione:

# dpkg --add-architecture i386
# apt-get update
# apt-get install bumblebee-nvidia primus primus-libs:i386 libgl1-nvidia-glx:i386 mesa-utils libgl1-nvidia-glx

aggiungere il proprio nome utente al gruppo bumbeblee:

$ sudo adduser $USER bumblebee
$ sudo reboot

per testare scheda intel:

$ glxgears -info

per testare scheda nvidia:

$ optirun glxgears -info

Nvidia Optimus con Bumblebee su Debian 10

enjoy 😉

 

(Solved) Fdisk command not found Debian 10

(Solved) Fdisk command not found Debian 10

In Debian Buster si presenta un errore quando si danno alcuni comandi con privilegi root, uno di questi è il comando fdisk-l, che risponde con: command not found. Questo problema si risolve in 2 modi:

1) eseguire il comando con:

# /sbin/fdisk -l

2) con un link simbolico:

# ln -s /sbin/fdisk /bin/fdisk

(Solved) Fdisk command not found Debian 10

enjoy 😉

Trovare informazioni sensibili su Facebook con FBI

Trovare informazioni sensibili su Facebook con FBI

Trovare informazioni sensibili su Facebook con FBI

Questa guida, testata su Debian 10, fa vedere come dopo avere installato un interessante tool di Information gathering, FBI (Facebook Information)) si possono ottenere velocemente dati sensibili sui propri amici di Facebook.

$ sudo apt update; apt upgrade -y
$ sudo apt install git python2
$ git clone https://github.com/xHak9x/fbi.git
$ cd fbi/
$ sudo pip2 install -r requirements.txt

Avviare con:

$ python2 fbi.py

loggarsi con il proprio id facebook e dare il comando:

token

scaricare le info di tutti gli amici:

get_data
get_info

ottenere i numeri di telefono:

dump_phone

Trovare informazioni sensibili su Facebook con FBI

scoprire tutte le mail:

dump_mail

Trovare informazioni sensibili su Facebook con FBI

Trovare informazioni sensibili su Facebook con FBI

ecc. ecc. ecc.

enjoy 😉

Sostituire Vodafone Station con ASUS DSL-AC68U

Sostituire Vodafone Station con ASUS DSL-AC68U

Sostituire Vodafone Station con ASUS DSL-AC68U

Dopo la delibera AGCOM 348/18/CONS, per il modem libero anche l’Italia  si uniforma alla direttiva europea n. 2015/2120. Praticamente quasi tutti gli operatori si sono adeguati gradualmente dall’inizio dell’anno, e quindi si può decidere di sostituire il modem rilasciato dai provider, magari comprandone uno più performante. Ultima ad adeguarsi in ordine di tempo è stata Vodafone, che era in ritardo con la parte voce. Da qualche settimana Vodafone rilascia anche le credenziali Voip relative alla propria linea. Quindi adesso si può utilizzare un modem alternativo sia per la parte dati che per quella voce. Io ho utilizzato il mio fedele Asus DSL-AC68U, come modem router, anche se a differenza dei FRITZ!Box, non ha le analogiche, ma questo per me non è un problema, e sarà argomento di una prossima guida. Sul sito Vodafone vi sono elencati i Requisiti tecnici minimi, ed i Parametri di configurazione. Per quanto riguarda Asus DSL-AC68U, eseguire un factory reset e poi configurarlo con i parametri Vodafone. Di seguito i mei screen:

Sostituire Vodafone Station con ASUS DSL-AC68U Sostituire Vodafone Station con ASUS DSL-AC68U Sostituire Vodafone Station con ASUS DSL-AC68U Sostituire Vodafone Station con ASUS DSL-AC68U

Sostituire Vodafone Station con ASUS DSL-AC68U

sopra lato wan ho lasciato il DNS in modo automatico, che mi servirà per la parte voce., argomento delle prossime due guide.

enjoy 😉

Backup incrementale con Tar

 

Backup incrementale con Tar

 

Backup incrementale con Tar è il titolo di questa guida, ma il sottotitolo potrebbe essere: come dormire sonni tranquilli facendo un backup incrementale, sicuro e veloce. Ci sono diversi strumenti con cui fare un backup dei propri dati, sia con programmi grafici, come luckyBackup, deja-dup o systemback-1.9.3, sia con strumenti da linea di comando, già presenti di default in Gnu-Linux. Tempo fa avevo gia fatto una guida sull’utilizzo di rsync come strumento di backup, invece questa guida mostrerà come ottenere un backup incrementale usando Tar.

Creazione di cartelle, sotto cartelle e files per testare il backup:

$ mkdir -p big-data/{backup,restore}
$ cd big-data/backup/
$ mkdir {1..4}
$ man ls > file1
$ man wc > file2
$ man tar > file3
$ man mv > file4
$ ls

output ls:

edmond@debianbox:~/Desktop/big-data/backup$ ls
1 2 3 4 file1 file2 file3 file4
$ cd ..
$ ls

output ls:

edmond@debianbox:~/Desktop/big-data$ ls
backup restore

Backup generale:

$ tar -czvg snapshot-file -f backup.tar.gz backup

output:

edmond@debianbox:~/Desktop/big-data$ tar -czvg snapshot-file -f backup.tar.gz backup
tar: backup: Directory is new
tar: backup/1: Directory is new
tar: backup/2: Directory is new
tar: backup/3: Directory is new
tar: backup/4: Directory is new
backup/
backup/1/
backup/2/
backup/3/
backup/4/
backup/file1
backup/file2
backup/file3
backup/file4

output ls:

edmond@debianbox:~/Desktop/big-data$ ls
backup backup.tar.gz restore snapshot-file

come si può vedere tutte le cartelle ed i files sono stati clonati nell’ archivio backup.tar.gz, mentre il file chiamato snapshot-file, si occuperà di tenere traccia dei cambiamenti. A questo punto il passo successivo sarà quello di andare ad inserire nella cartella di backup originale, altre cartelle e files così da testare il backup incrementale.

$ mkdir backup/{5..8} 
$ man sed > backup/file5 
$ ls backup/

output:

edmond@debianbox:~/Desktop/big-data$ ls backup/
1 2 3 4 5 6 7 8 file1 file2 file3 file4 file5

per ottenere un backup incrementale il comando da eseguire è come quello sopra, l’unica differenza sarà quella di personalizzare il nome del backup, in base alla data oppure con dei numeri:

$ tar -czvg snapshot-file -f 1-backup.tar.gz backup

output:

edmond@debianbox:~/Desktop/big-data$ tar -czvg snapshot-file -f 1-backup.tar.gz backup
tar: backup/5: Directory is new
tar: backup/6: Directory is new
tar: backup/7: Directory is new
tar: backup/8: Directory is new
backup/
backup/1/
backup/2/
backup/3/
backup/4/
backup/5/
backup/6/
backup/7/
backup/8/
backup/file5

per vedere le differenze dei due backup:

$ tar -tvf backup.tar.gz
$ tar -tvf 1-backup.tar.gz

output:

edmond@debianbox:~/Desktop/big-data$ tar -tvf backup.tar.gz
drwxr-xr-x edmond/edmond 41 2019-02-28 20:31 backup/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/1/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/2/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/3/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/4/
-rw-r--r-- edmond/edmond 7823 2019-02-28 20:30 backup/file1
-rw-r--r-- edmond/edmond 2026 2019-02-28 20:31 backup/file2
-rw-r--r-- edmond/edmond 45323 2019-02-28 20:31 backup/file3
-rw-r--r-- edmond/edmond 2989 2019-02-28 20:31 backup/file4
edmond@debianbox:~/Desktop/big-data$ tar -tvf 1-backup.tar.gz
drwxr-xr-x edmond/edmond 60 2019-02-28 20:51 backup/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/1/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/2/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/3/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/4/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:50 backup/5/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:50 backup/6/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:50 backup/7/
drwxr-xr-x edmond/edmond 1 2019-02-28 20:50 backup/8/
-rw-r--r-- edmond/edmond 11183 2019-02-28 20:51 backup/file5

Ripristino Backup nella cartella restore:

$ tar -xvf 1-backup.tar.gz -C restore/

enjoy 😉

 

Muovere files diversi simultaneamente da terminale

Muovere files diversi simultaneamente da terminale

Guida su come muovere files con estensione diversa da una directory ad un’altra. Può capitare di avere all’interno di una directory centinaia di files, ma se si necessita di muoverne solo alcuni. Il comando mv sotto può venerci incontro:

$ mv dir1/*.{doc,pdf,jpg} dir2/

enjoy 😉