SessionStoreBackup: salvare la propria sessione Firefox ogni volta che si vuole

Gioxx  —  11/07/2011 — 5 Comments

E’ dai tempi di Firefox 2 che Mozilla ha introdotto una funzionalità in grado di salvare le proprie tab aperte all’atto della chiusura del browser, dando poi la possibilità di riprendere il lavoro lasciato a metà in un secondo momento. Amata e odiata allo stesso tempo, questa funzione è ancora oggi presente (grazie a Panorama), fondamentale per chi ne ha sempre fatto uso, come “se non ci fosse” per chi è abituato a tenere qualche sito aperto ed è in grado di terminare il proprio lavoro prima di chiudere il browser.

Io ricado nel primo gruppo, e come promesso sul forum di Mozilla Italia nella discussione dedicata alla accidentale perdita di tab lasciate aperte, voglio scrivere qualche riga che vi permetta di aiutarvi nell’impresa del non perdere mai il proprio lavoro.

Fondamentali

Firefox (anche le versioni Aurora, Nightly e Beta, ndr) salvano le schede (e gruppi di) in uno specifico file all’interno del proprio profilo: sessionstore.js (kb.mozillazine.org/Session_Restore). Se ancora non sapete come accedere alla cartella contenente il profilo, vi rimando alla documentazione in italiano, localizzata dalla nostra associazione: support.mozilla.com/it/kb/Profili. Come ulteriore facilitazione, dalla versione 4, Firefox permette di arrivare facilmente a destinazione semplicemente selezionando il menu Aiuto / Risoluzione dei problemi / Apri Cartella (bottone in alto nella pagina proposta).

La frequenza di backup del file sessionstore.js può essere variata manualmente dall’about:config, operazione che mi sento di sconsigliare a chi non ha particolare confidenza con questo tipo di cose e –soprattutto– non vuole rischiare di far dei danni all’interno del proprio profilo principale. Suggerisco invece l’utilizzo di uno script esterno che vada semplicemente a creare una copia sempre nuova del file sessionstore.js, che magari cancelli i file più vecchi di una determinata quantità di giorni (perché non più utili), esattamente ciò che ho fatto per me e che vi propongo oggi.

Lo script

Basato sull’originale di ‘random‘, ho voluto completarlo e permettervi di:

  • creare una cartella che tenga i backup del file sessionstore.js all’interno della cartella del proprio profilo senza la necessità di chiudere Firefox;
  • verificare e cancellare file più vecchi di 30 giorni rispetto al lancio dello script in modo del tutto automatico, così da tenere in ordine la cartella e non conservare file ormai inutili;

Sono sicuro della bontà del mio script, ma prima è forse meglio specificare sempre che:

ATTENZIONE: Prima di eseguire qualsiasi modifica ai vostri file e/o dispositivi siete pregati di effettuare un backup di questi. Solo così sarete capaci di tornare indietro riparando ad eventuali errori di distrazione. L’articolo e l’autore non possono essere ritenuti responsabili di alcun danno subito dalla vostra strumentazione. Buon lavoro.

Il codice è semplice per gli addetti ai lavori (diversamente potete saltare al successivo paragrafo ;-)), ve lo propongo:

REM Inserire il nome della cartella del profilo qui di seguito
REM Se non sai cosa fare, leggi http://wp.me/pdQ5q-1BY

set NOMEPROFILO=vn3wv4n7.default

REM NON TOCCARE NIENTE DA QUI IN POI!

@echo off

cls
echo SessionStoreBackup 0.5
echo Gioxx - gf.solone@mozillaitalia.org
echo Info: http://wp.me/pdQ5q-1BY
echo;

:Preparazione
echo;
echo Lettura directory e file di salvataggio sessione ...
echo;

set sessionFileDir=%appdata%\Mozilla\Firefox\Profiles\%NOMEPROFILO%\
set sessionFileName=sessionstore
set sessionFileSuffix=.js

if not exist %sessionFileDir%SessionStoreBackup mkdir %sessionFileDir%SessionStoreBackup

set stampH=%time:~0,2%
if %stampH% lss 10 (set stampH=0%time:~1,1%)
set stampM=%time:~3,2%
set stampS=%time:~6,2%
set stampU=%time:~9,2%
set sessionVer=%stampH%%stampM%%stampS%%stampU%

echo Fatto.
echo;

:Start
IF NOT EXIST "%sessionFileDir%%sessionFileName%%sessionFileSuffix%" (GOTO :End)
IF NOT EXIST "%sessionFileDir%%sessionFileName%-%sessionVer%%sessionFileSuffix%" (
echo Creo il file di backup ...
echo;
copy "%sessionFileDir%%sessionFileName%%sessionFileSuffix%" "%sessionFileDir%%sessionFileName%-%sessionVer%%sessionFileSuffix%"
echo;
echo Sposto il file nella cartella di backup ...
echo;
move "%sessionFileDir%%sessionFileName%-%sessionVer%%sessionFileSuffix%" "%sessionFileDir%SessionStoreBackup\"
echo;
echo Backup completato in
echo %sessionFileDir%SessionStoreBackup\%sessionFileName%-%sessionVer%%sessionFileSuffix%
echo;
)

:PuliziaFile
echo Pulizia file obsoleti ...
echo;
if not exist %windir%\..\temp\OldSessions mkdir %windir%\..\temp\OldSessions
robocopy %sessionFileDir%SessionStoreBackup %windir%\..\temp\OldSessions /E /MOV /MINAGE:3 /R:10
rd %windir%\..\temp\OldSessions /s /q
echo Fatto.

:End

L’unico dettaglio da andare a modificare è il nome della cartella del vostro profilo. Dovrete andare a copiare l’esatto nome e inserirlo subito dopo “NOMEPROFILO=” nella prima riga dello script, sostituendo il nome d’esempio che ho lasciato io (vn8iu7x0.default). Non occorre toccare nient’altro.

Potete scaricare lo script già funzionante all’indirizzo: downloads.gxware.org/index.php?dir=apps/mozilla/&file=SessionStoreBackup.zip

Per farlo funzionare –una volta inserito il nome della cartella del vostro profilo– basterà un semplice doppio clic sul file batch. I file di backup verranno conservati nella cartella SessionStoreBackup all’interno della cartella del profilo e potranno facilmente essere sostituiti a quello danneggiato o –peggio ancora– perso. Semplicemente, una volta chiuso Firefox, basterà spostare il file desiderato dalla cartella di backup a quella principale del profilo, quindi rinominarlo in “sessionstore.js” (se dovesse già esistere il file, sovrascrivetelo o cancellatelo prima di spostare il file di backup).

Mi sembra non manchi nulla. Potrebbe essere sensato parlare di operazione schedulata ma sarà argomento di un prossimo articolo ;-) In caso di problemi l’area commenti è a vostra totale disposizione.

Buon lavoro.

AGGIORNAMENTO 24/04/2013
La versione 0.5 include un banale controllo che va a modificare la precedente 0.4 di ottobre 2011. Tutti gli aggiornamenti vengono rilasciati attraverso il Wiki pubblico gfsCom all’indirizzo public.gfsolone.com/wiki/doku.php?id=mozilla:sessionstorebackup
AGGIORNAMENTO 27/10/2011
In seguito ad alcune segnalazione di malfunzionamento dell’ultimo set di istruzioni (la pulizia dei vecchi file di sessione obsoleti), ho voluto modificare lo script per far si che utilizzi robocopy, quest’ultimo lancerà l’istruzione che si occupa in modo totalmente automatico di mettere da parte i file più vecchi di 7 giorni (minage:7, valore da voi modificabile) per poi essere eliminati tutti in seguito (rd %windir%..tempOldSessions /s /q). Il set di istruzioni è stato portato alla versione 0.4 sia in questo articolo che nel file ZIP su GxWare. Nel caso in cui vi manchi il robocopy sarà possibile scaricarlo cliccando qui, occorrerà inserirlo nella cartella System32 sotto C:Windows (dove C: identifica la lettera assegnata al disco fisso che contiene l’installazione del sistema operativo, ovviamente)
AGGIORNAMENTO 11/07/2011
Grazie alla segnalazione di Godai (vedi: forum.mozillaitalia.org/index.php?topic=51220.msg332626#msg332626) ho corretto un errore presente in riga 21 che tentava di andare a cercare la cartella Utente del sottoscritto. Nello script dedicato al pubblico non sarebbe dovuto comparire quell’indirizzo, utilizzato invece durante i test sulla mia macchina. Mi scuso per la svista, ho già provveduto a modificare lo script nell’articolo e nell’area download di GxWare. La versione è stata modificata, passando dalla 0.2 alla 0.3 attuale.
ATTENZIONE: Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :)

Condividi l'articolo con i tuoi contatti: