Raspberry Pi backup veloce sd card

 

Raspberry Pi backup veloce sd card

Raspberry Pi backup veloce sd card

 

Guida su come ottenere un backup veloce e funzionante del proprio sistema. Per chi utilizza un Raspberry Pi, con tutto il sistema installato su sd card, è buona regola avere un backup completo, per poter ovviare velocemente ad una ipotetica perdita/rottura dei dati sulla sd card. A difesa delle sd card, io posso tetimoniare, essendo possessore di tanti Raspberry Pi, fin da  maggio 2012, che se si acquistano le migliori, difficilmente si rompono. Io per i vari utilizzi, ho speso di più per la sd card che per il Raspberry Pi. I metodi di backup a cui io mi riferisco utilizzano i comandi dd e rsync.  Il classico metodo più utilizzato e sicuro è il seguente:

 

Metodo 1)

Estrarre dal Raspberry Pi la sd card di origine e creare un file img

sudo dd bs=4M if=/dev/sdx of=PiOS.img

Ripristinare su sd card di backup:

sudo dd bs=4M if=PiOS.img of=/dev/sdx

Con il metodo sopra i tempi sono biblici, poichè dd, clona tutto, e si può tranquillamente arrivare a 15 ore. Esistono altri metodi simili, aggiungendo la compressione, ma a me non soddisfano.

 

Metodo 2)

Questo metodo è quello che utilizzo io, e può essere eseguito sia a caldo, sia estraendo la sd card clonandola. Per questo metodo si utilizza dd, solo per quanto riguarda le tabelle delle partizioni, e la partizione di boot, tutto il resto lo farà rsync copiando velocemente il contenuto della rootfs.

Inserire su pc la  sd card da cui effettuare il backup e raccogliere informazioni:

sudo fdisk -l

 

Raspberry Pi backup veloce sd card

 

 

esistono 2 partizioni, nel mio caso, /dev/sdc1 di boot ed /dev/sdc2 rootfs. Bisogna prendere nota delle 2 voci start, 8192 e 534528, cosicchè da creare una identica tabella delle partizioni, contenendo tutti i files di boot:

sudo dd bs=4k count=$((8192/8)) if=/dev/sdc | gzip >boot-img.gz
sudo dd bs=4k count=$((534528/8)) if=/dev/sdc | gzip >rootfs-img.gz

Adesso dobbiamo copiare in una cartella il contenuto di /dev/sdc2 utilizzando rsync:

sudo apt install rsync
sudo mkdir /mnt/{dati,rootfs}
sudo mount /dev/sdc2 /mnt/dati/
sudo rsync -aHAXSP /mnt/dati/ /mnt/rootfs/
sudo umount /dev/sdc2

Basta. Finito. Tempo totale meno di 3 minuti:

 

Raspberry Pi backup veloce sd card

 

Inserire la sd card di backup:

Azzerare tabella partizioni:

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

creazione della tabella delle partizione come da sd card origine:

sudo zcat boot-img.gz | sudo dd bs=4k iflag=fullblock of=/dev/sdc
sudo partprobe /dev/sdc
sudo zcat rootfs-img.gz | sudo dd bs=4k iflag=fullblock of=/dev/sdc
sudo partprobe /dev/sdc

formattare la seconda partizione in ext4:

sudo mkfs.ext4 -L rootfs /dev/sdc2

mount e copia :

sudo mount /dev/sdc2 /mnt/dati/
sudo rsync -aHAXSP /mnt/rootfs/ /mnt/dati/

umount ed attendere, può volerci qualche minuto:

sudo umount /dev/sdc2

 

Tempo totale 15 minuti circa. A questo punto se tutto è andato bene, abbiamo una copia perfetta della sd card di origine. Questo metodo funziona anche in presenza di database.

Raspberry Pi backup veloce sd card

 

enjoy 😉

 

OpenMediaVault 5 su Raspberry Pi 4

 

OpenMediaVault su Raspberry Pi 4

OpenMediaVault su Raspberry Pi 4

 

Guida su come installare OpenMediaVault su Raspberry Pi 4, con setup iniziale minimale. Io ho già un Nas in casa, più un cloud con Nextcloud accessibile da internet, sempre su Raspberry Pi 4, ma ho voluto unificare tutto sotto OMV. Il punto forte è quello di avere una unica interfaccia centralizzata, e da lì avviare tutti i servizi di cui un Nas ha bisogno. I servizi fondamentali riguardano la sicurezza, il failover e la ridondanza, e su OMV si possono avere con l’aggiunta anche di plugin esterni. Per questa guida ho usato Raspberry Pi OS Lite.

Aggiornamento OS:

sudo apt update
sudo apt upgrade -y
sudo reboot

Installazione:

wget -O - https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/installScript/master/install | sudo bash

per il completamento dell’installazione ci vorrà circa 20 minuti, dopodichè il sistema si riavvierà. A questo punto accedere al raspberry pi via WEB GUI, come user=admin e password=openmediavault:

http://Raspberry-ip-address

OpenMediaVault 5 su Raspberry Pi 4

Per prima cosa all’accesso bisognerà subito modificare un paio di cosette, ricordandosi che le modifiche fatte via WEB GUI hanno la priorità su quelle fatte manualmente, in virtù del fatto che OMV utilizza files di configurazione differenti.

System>General Settings

cambiare porta, Auto logout su disabled, e cambiare password di accesso alla WEB GUI:

OpenMediaVault 5 su Raspberry Pi 4

Services>SSH

cambiare porta ssh:

OpenMediaVault 5 su Raspberry Pi 4

 

System>OMV-Extra

abilitare repository addizionali:

System>Plugins

installare i plugins di cui si ha bisogno (quasi tutti)

 

successivamente pubblicherò altre guide entrando nel dettaglio su alcune configurazioni fondamentali.

OpenMediaVault 5 su Raspberry Pi 4

 

enjoy 😉

 

Creare una usb bootable con Windows 10 da terminale Linux

Creare una usb bootable con Windows 10 da terminale Linux

Creare una usb bootable con Windows 10 da terminale Linux

Questa guida spiega come creare una usb bootable di Windows 10 in Bios Mode, utilizzando il terminale Linux. La guida fatta in passato, con lo stesso metodo, non funziona più, poichè la dimensione di Windows 10 ha superato i 4G, quindi non si può più formattare in fat32. Per chi volesse invece una installazione in UEfI Mode, basta seguire questa guida appena aggiornata. Nella guida utilizzo parted da terminale, ma si può utilizzare gparted o altri, l’importante è avere una partizione NTFS.

Tools:

# 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ù partizione NTFS:

# parted /dev/sdc
(parted) mklabel msdos                                          
(parted) mkpart primary 0% 100%                                 
(parted) set 1 boot on                                                   
(parted) q
# mkfs.ntfs -L win10-bios -f /dev/sdc1
# mount /dev/sdc1 /mnt
# cd /mnt/
# 7z x /percorso_win_iso_scaricata/windows10.iso
# cd ..
# umount /dev/sdc1
Creare una usb bootable con Windows 10 da terminale Linux

 

enjoy 😉

 

Installare Wine 5 su Debian 10

How To Wine 5 su Debian 10

Installare Wine 5 su Debian 10

Guida su come installare Winehq 5.0 su Debian 10. Wine è in grado di far girare alcune applicazioni native per Windows, sotto Linux, BSD, OSX.

1) Abilitare architettura 32bit
$ sudo dpkg --add-architecture i386
2) Aggiungere repository ufficiali
$ sudo apt update
$ sudo apt -y install gnupg2 software-properties-common
$ wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
$ sudo apt-add-repository https://dl.winehq.org/wine-builds/debian/
$ wget -O- -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10/Release.key | sudo apt-key add - 
$ echo "deb http://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10 ./" | sudo tee /etc/apt/sources.list.d/wine-obs.list
3) Installazione wine 5.0
$ sudo apt update
$ sudo apt install --install-recommends winehq-stable
Installare Wine 5 su Debian 10

 

enjoy 😉

 

Creare usb Windows 10 UEFI con Debian 10 e WoeUSB-fronted-wxgtk

Creare una usb bootable Windows 10 da Gui Debian
Creare usb Windows 10 in UEFI con Debian 10 e WoeUSB-fronted-wxgtk

Guida su come creare una usb bootable con Windows 10 in UEFI mode, direttamente da Debian 10 utilizzando Woeusb-fronted-wxgtk come Gui. Precedentemente avevo già fatto una guida utilizzando Woeusb, ma ci sono state delle modifiche. Ancora prima un’altra guida, per lo stesso scopo, ma utilizzando solamente il terminale. Questo metodo è molto più semplice e veloce:

$ sudo apt install devscripts equivs git python3-pip
$ git clone https://github.com/WoeUSB/WoeUSB-frontend-wxgtk.git
$ cd WoeUSB-frontend-wxgtk/
$ ./setup-development-environment.bash
$ mk-build-deps
$ sudo dpkg -i woeusb-build-deps_*
$ sudo apt install -f
$ dpkg-buildpackage -uc -b
$ sudo dpkg -i ../woeusb*.deb
$ sudo apt install -f
Creare usb Windows 10 in UEFI con Debian 10 e WoeUSB-fronted-wxgtk

enjoy 😉

 

Trasferire files tra PC e telefono con codice QR

Trasferire files tra PC e telefono con codice QRTrasferire files tra PC e telefono con codice QR

Guida su come trasferire files facilmente e velocemente tra un pc ed un telefono, tramite un codice QR, ed entrambi collegati in rete. Per ottenere ciò, bisogna installare qrcp:

$ wget https://github.com/claudiodangelis/qrcp/releases/download/0.7.0/qrcp_0.7.0_linux_x86_64.tar.gz
$ tar xf qrcp_*
$ sudo mv qrcp /usr/local/bin
$ sudo chmod +x /usr/local/bin/qrcp

Inviare file col comando:

$ qrcp file.jpg
$ qrcp file1.jpg file2.jpg

Ricevere da telefono:

$ qrcp receive

Trasferire files tra PC e telefono con codice QR

Trasferire files tra PC e telefono con codice QR

 

enjoy 😉

 

Nextcloud Letsencrypt su Raspberry Pi 4

Nextcloud Letsencrypt su Raspberry Pi 4

Nextcloud Letsencrypt su Raspberry Pi 4

Guida su come installare Nextcloud con Letsencrypt su Raspberry Pi 4, utilizzando Raspberry Pi OS Buster. A differenza della guida precedente, dove utilizzavo Owncloud ed apache2 come web server, adesso utilizzerò Nextcloud ed nginx.

Prerequisiti ed info
  • Raspberry Pi 4/3
  • Raspberry Pi OS Buster già installato ed accesso ssh
  • Il raspberry dovrà avere come dominio/hostname 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 la porte 80  verso il proprio server, altrimenti non si potranno ottenere i certificati. Successivamente bisognerà aprire la 8443.
  • La guida è stata testata su una installazione pulita di Raspberry Pi OS Lite.
1) Accedere al Raspberry via ssh ed Installazione Nginx web server:
$ sudo su
$ su -
# apt install nginx -y
# systemctl start nginx
# systemctl enable nginx

verifica nginx:

# systemctl status nginx
2) Installazione php7.3
# apt install -y 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 php7.3-fpm php7.3-mysql php7.3-bz2 php7.3-bcmath php7.3-gmp

modifica di 2 php.ini

# nano /etc/php/7.3/fpm/php.ini
# nano /etc/php/7.3/cli/php.ini

in entrambi i files andiamo a decommentare e ad aggiornare:

date.timezone = Europe/Rome

salavare ed uscire e passare alla modifica di www.cond

# nano /etc/php/7.3/fpm/pool.d/www.conf

e decommentare le righe come sotto:

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
# systemctl restart php7.3-fpm
# systemctl enable php7.3-fpm
3) Installazione e configurazione MariaDB Server
# apt install mariadb-server -y

settare password root MariaDB

# mysql_secure_installation
Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y 
Remove anonymous users? [Y/n] Y 
Disallow root login remotely? [Y/n] Y 
Remove test database and access to it? [Y/n] Y 
Reload privilege tables now? [Y/n] Y

creazione user e db per nextcloud:

# mysql -u root -p

inserire password e poi i 5 comandi sotto:

create database nextcloud_db;
create user nextclouduser@localhost identified by 'IN_PASSWORD';
grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by 'IN_PASSWORD';
flush privileges;
exit
4) Certificato SSL Letsencrypt
# apt install certbot -y
# systemctl stop nginx
# certbot certonly --standalone -d example.com

se è andato tutto bene si otterrà:

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2021-03-07. 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 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
5) Download Nextcloud
# apt install wget unzip zip -y
# cd /var/www/
# wget -q https://download.nextcloud.com/server/releases/latest.zip
# unzip latest.zip
# chown -R www-data:www-data /var/www/nextcloud
6) Configurazione Virtual Host
# nano /etc/nginx/sites-available/nextcloud

ed incollare dentro, con le rispettive modifiche:

upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php/php7.3-fpm.sock;
}

server {
listen 80;
listen [::]:80;
server_name example.com;
# enforce https
return 301 https://$server_name:8443$request_uri;
}

server {
listen 8443 ssl http2;
listen [::]:8443 ssl http2;
server_name example.com;

# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
# NOTE: some settings below might be redundant
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this
# topic first.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;

# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;

# Path to the root of your installation
root /var/www/nextcloud;

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

# The following rule is only needed for the Social app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/webfinger /public.php?service=webfinger last;

location = /.well-known/carddav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}

# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;

# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;

location / {
rewrite ^ /index.php;
}

location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
deny all;
}
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}

location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS on;
# Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
# Enable pretty urls
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}

location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}

# Adding the cache control header for js, css and map files
# Make sure it is BELOW the PHP block
location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
# Add headers to serve security related headers (It is intended to
# have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into
# this topic first.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;

# Optional: Don't log access to assets
access_log off;
}

location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
try_files $uri /index.php$request_uri;
# Optional: Don't log access to other assets
access_log off;
}
}

salvare ed uscire. Poi fare un paio di modifiche:

# ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
# nano /etc/nginx/nginx.conf

e decommentare la linea sotto:

server_names_hash_bucket_size 64;

fare un test di nginx:

# nginx -t

se non ci sono errori avremo un output come sotto:

root@example:/var/www# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# systemctl restart nginx
# systemctl restart php7.3-fpm
7) Nextcloud post installazione

Nextcloud Letsencrypt su Raspberry Pi 4 andare all’indirizzo del server:

# hostname -I

creare username e password per l’accesso via web, e poi inserire nextclouduser e nextcloud_db. Nel caso di porta diversa della 443, è meglio inserirla come in figura sopra. I dati di default saranno in /var/www/nextcloud/data. Ma conviene sempre tenerli all’esterno della sd-card. Esempio con usb esterna.

8) Creazione della cartella di storage e relativi permessi:
# mkdir /media/nextcloud-usb
# groupadd www-data
# usermod -a -G www-data www-data
# chown -R www-data:www-data /media/nextcloud-usb
# chmod -R 775 /media/nextcloud-usb

adesso abbiamo bisogno di conoscere UUID del disco usb e configurare /etc/fstab per il montaggio automatico:

# blkid
# nano /etc/fstab

ed aggiungere qualcosa del genere in /etc/fstab:

UUID=f9kjhg70-0784-4eaa-9cc5-4ctrewc62275 /media/nextcloud-usb ext4 defaults 0
# reboot

al riavvio verificare se la usb esterna è stata montata correttamente:

$ df -h

Questa guida consente di avere un server cloud personale, ma bisogna ricordarsi che bisognerà proteggerlo, e quindi integrare delle robuste policy di sicurezza, come fail2ban, iptables, ufw, ecc ecc.

Nextcloud Letsencrypt su Raspberry Pi 4

enjoy 😉

Systemback creazione iso superiore a 4 Giga

Systemback creazione iso superiore a 4 GigaSystemback creazione iso superiore a 4 Giga

Quando si usa systemback per la clonazione del proprio sistema in modalità live ed installabile, se la dimensione è inferiore ai 4 giga, il programma da la possibilità di convertirlo in .iso, mentre se è superiore c’è solo la possibilità di scriverlo direttamente su una pen drive. A questo proposito condividerò i comandi per potersi creare una immagine .iso bootable di dimensioni enormi da poter condividere. Tutto questo in attesa di un futuro aggiornamento ed alla risoluzione di alcuni bug. Quindi dopo aver utilizzato systemback abbiamo un file del tipo: systemback_live_2020-06-01.sblive

$ mkdir sblive/
$ sudo tar -xavf /home/systemback_live_2020-06-01.sblive -C sblive/
$ sudo chmod 777 -R sblive/
$ mv sblive/syslinux/syslinux.cfg sblive/syslinux/isolinux.cfg
$ mv sblive/syslinux/ sblive/isolinux/

creazione iso:

$ xorriso -as mkisofs -V sblive -J -l -b -isohybrid-mbr sblive/isolinux/ -c isolinux/boot.cat -b isolinux/isolinux.bin -iso-level 3 -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat -o sblive.iso sblive

per ultimo utilizzare isohybrid per il boot in uefi:

$ isohybrid -h 256 -s 63 --uefi sblive.iso

Systemback creazione iso superiore a 4 Giga

enjoy 😉

 

PacketTracer 7.3.0 su Debian 10

PacketTracer 7.3.0 su Debian 10PacketTracer 7.3.0 su Debian 10

L’ultima versione di Cisco PacketTracer è la 7.3.0, ma il pacchetto deb che si trova sul sito, non funziona su Debian 10, per il solito problema di librerie mancanti. Il metodo veloce per installarlo è uno script che si trova su github, che fa tutto in automatico.

Installazione:

$ git clone https://github.com/Retinazer/packettracer-installer.git
$ cd packettracer-installer/
$ wget https://archive.org/download/packettracer730mac_202002/PacketTracer_730_amd64.deb
$ sudo ./packet-tracer-7.3.0-install.sh

PacketTracer 7.3.0 su Debian 10

enjoy 😉

 

Onedrive su Debian 10 con rclone

Onedrive su Debian 10 con rcloneOnedrive su Debian 10 con rclone

Guida su come connettere il proprio account OneDrive, da linea di comando, utilizzando rclone.

Installazione di rclone:

$ sudo apt install rclone fuse

Configurazione:

$ rclone config

output:

edmond@edmondbox:~$ rclone config
2020/05/25 18:25:55 NOTICE: Config file "/home/edmond/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> myonedrive
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / A stackable unification remote, which can appear to merge the contents of several remotes
\ "union"
2 / Alias for a existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Dropbox
\ "dropbox"
9 / Encrypt/Decrypt a remote
\ "crypt"
10 / FTP Connection
\ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
12 / Google Drive
\ "drive"
13 / Hubic
\ "hubic"
14 / JottaCloud
\ "jottacloud"
15 / Local Disk
\ "local"
16 / Microsoft Azure Blob Storage
\ "azureblob"
17 / Microsoft OneDrive
\ "onedrive"
18 / OpenDrive
\ "opendrive"
19 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
20 / Pcloud
\ "pcloud"
21 / SSH/SFTP Connection
\ "sftp"
22 / Webdav
\ "webdav"
23 / Yandex Disk
\ "yandex"
24 / http Connection
\ "http"
Storage> 17
** See help for onedrive backend at: https://rclone.org/onedrive/ **

Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code

Autorizzare rclone come app sicura:

Onedrive su Debian 10 con rclone

Choose a number from below, or type in an existing value
1 / OneDrive Personal or Business
\ "onedrive"
2 / Root Sharepoint site
\ "sharepoint"
3 / Type in driveID
\ "driveid"
4 / Type in SiteID
\ "siteid"
5 / Search a Sharepoint site
\ "search"
Your choice> 1
Found 1 drives, please select the one you want to use:
0: (personal) id=72593143d3aac403
Chose drive to use:> 0
Found drive 'root' of type 'personal', URL: https://onedrive.live.com/?cid=72593143d3aac403
Is that okay?
y) Yes
n) No
y/n> y
--------------------
[myonedrive]
token = {"access_token":"EwBoA8l6BAAUO9chh8cJscQLmU+LSWpbnr0vmwwAAcTsM8GrYTxDxI5BKZdaB","expiry":"2020-05-25T19:26:56.661526715+02:00"}
drive_id = 72593143d3aac403
drive_type = personal
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:

Name Type
==== ====
myonedrive onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
edmond@edmondbox:~$

creazione punto di mount e montaggio utilizzando fuse:

$ mkdir ~/onedrive
$ rclone mount --daemon --vfs-cache-mode writes myonedrive: ~/onedrive

al posto di writes si può utilizzare full, per scaricare tutto in locale. La locazione del file di configurazione si trova col comando:

$ rclone config file

Come alternativa esiste il pacchetto deb di OneDrive che si trova in Debian Sid, ma che io non ho testato.

Onedrive su Debian 10 con rclone

enjoy 😉