Configurar backup des de Synology a servidor RSYNC

Synology té un assistent que facilita la configuració de la còpia de seguretat i després la possible programació d’aquesta si es que volem. Però té un parell de llimitacions (les que jo he trobat, igual hi ha més!):

  • No es pot posar l’usuari que es vulga si es vol habilitar la transferència xifrada (per SSH), en la documentació oficial ho diu, he intentat fer-ho de totes les formes però no he pogut (tenen raó!). Es necessita configurar un superusuari, i jo de normal sols en tinc un (root).
  • Accions pre-xfer post-xfer: Depén del que es vulga fer es podran utilitzar o no. Rsync utilitza aquestes opcions per a poder executar un script abans de la còpia i un altre després de la còpia, el que passa és que quan DSM llança la còpia no ho tracta com una sol ordre rsync, sino varies. No se a ciència certa de que depén però crec que dependrà del número de carpetes, és més, quan fa comprovació dels mòduls configurats també executa aquestos scripts. Així que si el que es vol es fer un punt de muntatge, copiar i després desmuntar… segurament hi haurà problemes.

Primer es configura les dades per a poder connectar-se al servidor rsync: direcció, usuari, contrasenya, port (si no és el de per defecte). I després ja es pot clicar al desplegable per a que es connecte al servidor i seleccionar el mòdul que volem utilitzar per a fer la còpia de seguretat, si no saps que és un mòdul o no saps configurar-lo i també eres administrador del servidor de backup pots revisar aquesta entrada on ho explique.
01

02

03

04
En la següent pantalla es selecciona les dades a copiar, recordeu seleccionar sols les necessaries.

05

En la següent es pot seleccionar les configuracions d’algunes de les aplicacions instal·lades al Synology.

07

Finalment es configura les opcions de còpia i la possibilitat de programar-ho. En aquesta pantalla si l’usuari no es root l’opció de transferència per SSH estarà deshabilitada.

08

Una vegada creada la tasca, Synpology crea uns arxius a la ruta del mòdul al servidor. Aquestos arxius són importants i s’han de mantindre,sinó les còpies no es realitzaran (cada tasca té els seus arxius de configuració).

Després de creada es pot modificar, si s’ha utilitzat un usuari diferent de root es pot veure que l’opció de transferència per SSH ja està habilitada i es pot seleccionar, però si es selecciona i s’intenta executar la còpia, aquesta ens retornarà un error en la connexió.
09

10

Es poden configurar vàries còpies de seguretat a diferents servidors, mòduls… o tots al mateix servidor i mòdul ja que cada tasca es crea la seva pròpia carpeta per a guardar el backup.

Personalment per al que jo vull fer se’m queda curt aquest asistent, així que voré com es fa per script que no pareix tant difícil i interactuaré directament jo amb el rsync. El problema es que no podré guardar la configuració de les aplicacions i del propi dispositiu.

Augmentar la potència dels USB’s de la Raspberry B+

Una vegada ja instal·lat tot a la raspberry tire a connectar el meu disc USB i no té prou alimentació per a funcionar. Pel que he llegit els ports sols donen una potència de 600mA per port, és a dir que amb un cable amb doble connexió (com els que hi havia abans) si que em funcionaria. Però no és el cas perquè no tinc cable així. Aixina que he continuat navegant i he trobat diverses webs on expliquen com poder augmentar l’amperatge fins a 1200mA.

Aquesta configuració pot ser perillosa per a la placa ja que li donem massa canya i pot ser no acabe be la cosa, així que ho feu baix la vostra responsabilitat encara que si sols li connectes un disc dur i res més pels ports USB no tindràs cap problema. Ja vos diré més endavant jeje.

També dir que per a que funcione be la configuració l’alimentador que tinga deu ser d’una potència d’uns 2A (2000mA).

Per a habilitar aquesta funcionalitat cal editar el fitxer /boot/config.txt com a root i afegir la línia
safe_mode_gpio=4
Aquesta vegada no vos puc explicar qué vol dir, sols se que funciona. A la web on ho he vist també comenta que estaria be també afegir la línia
max_usb_current=1
No ens explica per a que és però supose que serà per a llimitar el número de dispositius alimentats per USB

Finalment cal reiniciar el dispositiu per a que faça efecte la nova configuració

http://www.element14.com/community/community/raspberry-pi/raspberry-pi-bplus/blog/2014/07/19/home-network-with-just-the-raspberry-pi-b-and-a-usb-external-hdd

 

Edite(2015/09/14):

Val la pena comprar un HUB alimentat externament per a alimentar els periferics que no aguante la raspberry. Després d’uns mesos sense para “l’aparatet” comença a funcionar mal (en el meu cas, clar). El que m’ha passat és que s’ha fotut el xip que controla els USB’s i que també controla la interfície de xarxa, fallant aleatòriament. Per tant ja no la puc utilitzar per al que jo vull i me’n he tingut que comprar una altra i configurar des de 0.

Instal·lació bàsica del Raspbian a Raspberry Pi B+ (i A+)

Al final m’he fet amb una Raspberry Pi B+, ja que per al tema de les còpies de seguretat de RSYNC que he anat comentant necessitava un pc amb USB i el servidor que tinc no em fa eixa funció. I com en la feina m’ho comentaven el tema de la Raspberry, he pensat que estaria be fer-se amb un aparell d’aquestos a veure que fa.

L’he comprat de PC Componentes i te l’envien amb una caixeta. Realment és menut, més o menys com un disc de 2’5″ i no porta cap accesori (ni carregador, ni res de res). Així que he tirat ma de telèfons retirats per a aconseguir alimentador (utilitza el mateix tipus d’USB que els telèfons d’ara, si si ixe que és xafadet!) i també per a aconseguir una microSD per a instal·lar el sistema, encara que si després vas a connectar-li un disc dur per USB i deixar-ho sempre així no és necessari perquè pots particionar el disc dur i aprofitar un trocet per al sistema.

He estat mirant per la web de la Raspberry quins sistemes se li pot instal·lar, i com jo estic acostumat al Debian i totes les seves versions he vist que la que millor m’anava a mi es la de Raspbian.

Revisant els mètodes d’instal·lació he vist que per regla general existix una imatge, que la “cremes” al disc i arreando! Clar com el hardware és sempre el mateix… en tenir una imatge creada ja no fa falta res mes. Aquestes imatges, al menys la del raspbian, ocupen uns 8Gb descompreses i ve un sistema complet amb el seu entorn gràfic i tot.

Aquest era per a mi el problema, que porta massa coses instal·lades. Jo ho vull per a utilitzar-ho com a ‘miniservidoret’ i no necessite tants programes corrent. He vist també que la gent es desinstal·la l’entorn gràfic però vulgues o no sempre es queden paquets instal·lats ocupant espai i/o memòria RAM. He revisat una mica més per la web oficial de Raspbian, allí explica com fer la instal·lació, també hi ha gent que ha fet el seu “unattended installation” i m’ha agradat un que sols fa una instal·lació bàsica i ademés instal·la un servidor SSH per a poder connectar-te. Altre punt a favor es que en compte d’ocupar 8Gb, aquesta cap en 512Mb

Aquesta instal·lació és ben senzilla: Es copia els fitxes que s’indiquen a la targeta microSD, es posa la targeta a la Raspberry i es connecta aquesta a la xarxa elèctrica i a la ethernet. També es pot connectar per HDMI a la televisió i connectar també un teclat però no és necessari, al iniciar buscarà un servidor DHCP per a que li done IP i es connectarà al servidor dels repositoris per a baixar-se el sistema.

Per a copiar els fitxers primer es formata la targeta en FAT32, després d’ací es baixa l’arxiu, que descomprimim el contingut a la targeta. I ja està tot! Ara posar la targeta a la Raspberry, enxufar-la i esperar més o menys 30 minuts. Realment no recorde el que m’ha tardat a mi però en 30 minuts ja està, és més, en la web diu que en 15 minuts ja pots tenir accés SSH (depenent de la teva connexió a internet).

Una vegada acabada la instal·lació es podrà accedir per SSH al ‘aparatet’, la direcció IP la podem averiguar connectant-nos al nostre servidor DHCP (casi sempre el router) i veure la nova concessió.

En la web ens recomana que el primer a fer després de connecar-se per SSH és deshabilitar l’usuari “pi” i canviar la contrasenya de root (per defecte “raspbian”), després configurar el locale (pel tema de configuració regional, teclat,…) i finalment el fús horari. I tot açò es fa d’aquesta manera:
passwd root (per a canviar la contrasenya de root)
dpkg-reconfigure locales (per a reconfigurar el locale)
En aquesta triarem es-ES UTF8
dpkg-reconfigure tzdata (per a configurar el fús horari)
Per a millorar l’administració de la memòra recomanen també instal·lar el següent paquet:
apt-get install raspi-copies-and-fills

Customitzar la instal·lació

També podem definir paràmetres com la IP (per si no tenim servidor DHCP o per si volem assignar-la manualment des d’un principi), la contrasenya de root, fús horari, mirror del repositori…. A la web ho expliquen, simplement és crear un fitxer a l’arrel de la targeta amb el nom de installer-config.txt i després incloure el que volem modificar. A continuació mostre tots els paràmetres que es poden modificar i els seus valors per defecte

preset=server
packages= # comma separated list of extra packages
mirror=http://mirrordirector.raspbian.org/raspbian/
release=wheezy
hostname=pi
domainname=
rootpw=raspbian
cdebootstrap_cmdline=
bootsize=+50M # /boot partition size in megabytes, provide it in the form '+M' (without quotes)
rootsize= # / partition size in megabytes, provide it in the form '+M' (without quotes), leave empty to use all free space
timeserver=time.nist.gov
ip_addr=dhcp
ip_netmask=0.0.0.0
ip_broadcast=0.0.0.0
ip_gateway=0.0.0.0
ip_nameservers=
online_config= # URL to extra config that will be executed after installer-config.txt
usbroot= # set to 1 to install to first USB disk
cmdline="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 elevator=deadline"
rootfstype=ext4
rootfs_mkfs_options=
rootfs_install_mount_options='noatime,data=writeback,nobarrier,noinit_itable'
rootfs_mount_options='errors=remount-ro,noatime'

I això és tot! vos deixe les URL’s d’interés

Pàgina oficial de la Raspberry Pi
Pàgina oficial de Raspbian
Pàgina oficial de la instal·lació

Configurar RSYNC II

En aquesta segona entrada anem a fer segura la connexió entre client i servidor. Ara que ja hem aconseguit fer connexió ‘a pèl’ i comprovar que funciona be, ens toca configurar la seguretat. Per a encriptar la informació que enviem s’utilitza SSH ja que rsync no té encara opció de fer-ho (però si opció d’ajudar-se amb ssh).

El que fa rsync amb ssh és connectar les dues màquines pel protocol segur (amb usuari/password) i una vegada establida la connexió és quan s’executa l’odre del rsync, que demanarà el password de l’usuari del rsync. Ací ja venen diversos errors com confondre usuaris o passwords, que l’usuari que s’utilitza al ssh tinga accés a la carpeta del rsync al servidor,…..que si seguim aquesta configuració desapareixeran.

Com acabem de veure, realment posem en marxa dues aplicacions i les dues necessiten usuari/password, que no tenen perque coincidir els usuaris a les dues connexions (ni els passwords tampoc, clar).

Aleshores, per a començar tenim dos usuaris diferents: Un per a la connexió ssh, que serà un usuari del servidor, i l’altre l’usuari per a la connexió rsync, que estarà configurat a rsync (i no té perquè existir al sistema del servidor). Però recordem que el que volem és copiar els arxius i preservar els seus atributs, owners,… (el que significa executar rsync com a super usuari ja que el uid l’hem posat com a root). La forma més ràpida (i perillosa) és connectar-se per ssh com a root, amb el perill que comporta ‘deixar’ el password de root d’una màquina a un usuari d’una altra. L’altra forma és fer-ho ben fet: al servidor habilitar que el nostre usuari que utilitzarem per a ssh puga executar rsync amb drets de super usuari i sense que ens demane password (aquest últim requisit no és per gust sino perquè rsync no admet interacció amb sudo, l’apicació que utilitzarem).

Per supost anem a fer la segona opció! Primer anem a instal·lar l’aplicació sudo, que al debian no està i s’instal·la fent un #apt-get install sudo i després anem a configurar per a que l’usuari que anem a utilitzar a ssh puga executar rsync com a super usuari sense que ens demane password. Exactament anem a indicar el que acabe d’escriure, solament podrà executar aquest programa com a super usuari sense que demane password, eixe i solament eixe. És més, si no es configura com a usuari sudoer (que no anem a fer-ho) no podrà executar ninguna aplicació més com a super usuari encara que siga demanant password. Insistixc molt per a que es veja que és molt més segur la segona opció que la primera. Ale va! a configurar:

#nano /etc/sudoers

i afegim al final aquesta línia:

user_ssh ALL= NOPASSWD:/usr/bin/rsync

    Explicació

  • user_ssh: És l’usuari que utilitzarem per a fer login a ssh.
  • ALL: indiquem que des de qualsevol màquina.
  • NOPASSWD: indiquem que no fa falta introduïr password.
  • /usr/bin/rsync: És la ruta on està l’executable rsync ( si és una altra ruta, es posa l’altra ruta).

Ara com ja ho tenim configurat anem a fer la còpia utilitzant ssh:

$rsync -avz --rsh 'ssh -l user_ssh' --rsync-path="sudo rsync" /ruta/oritge backup_user@servidor_destí::BACKUP

    En aquesta ordre hem introduït nous elements que explique ara mateix:

  • –rsh ‘ssh -l user_ssh’: Indica que la remote shell serà ssh i que l’usuari per a ssh serà user_ssh.
  • –rsync-path=”sudo rsync” aquesta opció s’utilitza per a indicar on està rsync si no està al seu lloc per defecte però es pot utilitzar per a fer el que nosaltres volem, indicant-li que el path és “sudo rsync”. Aleshores quan es faça la connexió ssh, rsync executarà l’odre sudo rsync com al usuari user_ssh (que ja hem indicat que no necessita password per a executar rsync), aconseguint dret de super usuari per a l’aplicació i poder mantindre els seus atributs, owners,…

Si ara el que volem és fer una connexió però a un port ssh diferent (podem observar que ara no utilitzem el port del rsync sino el del ssh), ho executem de la següent forma:

$rsync -avz --rsh 'ssh -p port -l user_ssh' --rsync-path="sudo rsync" /ruta/oritge backup_user@servidor_destí::BACKUP

El :: és correcte i també es pot canviar –rsh per -e, és la mateixa opció però amb el mètode abreviat

Per a finalitzar dir que al executar aquesta ordre primer demana el password del usuari ssh i després el del usuari rsync, si es passa la primera autenticació però no s’arriba a la segona es que hi ha un error amb l’usuari ssh, una vegada ja s’ha posat el password de l’usuari de rsync… ja el problema està a la teulada del rsync.

I ja està acabat el segon post sobre el tema, prompte el tercer! on vorem com fer que no ens demane passwords el rsync i poder posar al cron per a que s’execute automàticament

Configurar RSYNC I

Bon dia!

Hui vaig a explicar com configurar un servidor rsync per a que des d’un client rsync es puguen fer còpies de seguretat. Primer vaig a fer-ho senzill, després aniré complicant un poc més la coseta fins que se’ns quede ‘una cosa be’. Vaig a escriure-ho perquè m’he vist en la necessitat de fer-ho i pensant-me que hi hauria molta informació al respecte m’he equivocat: al principi costa bastant arrancar, si busques a la xarxa veus molts problemes diferents que donen els mateixos errors i exemples de configuració que a mi no m’han funcionat. Així que jo explique el meu cas, pot ser que a vosaltres tampoc vos vaja be (qui sap!) però espere que al menys vos ‘despeje’ dubtes.

Primer vaig a aclarir unes definicions que diuen per ahí per la xarxa: PULL i PUSH, que si ho traduïm és com les etiquetes de les portes de les tendes “ESTIRAR” i “EMPUJAR”, és adir que en la primera “estires” la informació i en la segona “espentes” la informació:

PULL és quan el directori oritge és extern (una altra màquina) i el directori destí és local. Exemple: Tens un servidor on es configuren totes les tasques de còpies de seguretat dels demés servidors i va copiant de les demés màquines a local

PUSH és quan el directori orige és local i el directori destí és extern (una altra màquina). Exemple: En aquest cas cada servidor tindria la seua tasca de còpia de seguretat apuntant al servidor de còpies.

Depén de situacions serà millor un sistema o un altre, depen de l’accés que es tinga a les màquines, accés de xarxa, enrutament,… Per exemple si eres administrador de totes les màquines i estan connectades a la mateixa xarxa igual és millor centralitzar les còpies i utilitzar PULL, per contra si sols eres administrador de la teua màquina i t’han passat els paràmetres per a connectar-te al servdor de còpies o no estan les màquines en una mateixa xarxa privada (accés per internet) o moltes altres possibilitats, es possible que vulgues utilitzar PUSH. Jo vaig a utilitzar PUSH, però si vols utilitzar PULL tan sols has de canviar les rutes. De totes formes a veure si tinc un ratet i faig també una entrada utilitzant configuració PULL. Ara anem al lio!

La instal·lació a debian és molt senzilla: apt-get install rsync, i ja està!

Ara falta crear el fitxer de configuració, de passwords i habilitar el servei per a que arranque automàticament. El fitxer de configuració és ben senzill, es diferèncien dues parts: la part global i la part dels mòduls, cada mòdul és una configuració per a fer còpies (on es còpia, permisos, comentaris, accions a realitzar, canviar paràmetres globals per a aquest mòdul en concret,…). Ací deixe un petit exemple:


#nano /etc/rsyncd.conf
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid

[BACKUP]
uid = backup_user
gid = backup_user
path = /mnt/backup
comment = Copia de backup
auth users = backup_user
read only = no
list = yes
secrets file = /etc/rsyncd.pass

La part global és la inicial, i la part de cada mòdul começa amb els comentaris entre [], en aquest cas hi ha un sol mòdul, el [BACKUP]. Els primers tres paràmetres són importants però no necessaris per al funcionament (si els lleves funcionen igual, jeje). El lock i el pid és per a controlar les execucions de l’aplicació i el log per a tenir un registre general del programa. També va be posar el llímit d’usuaris per a no saturar el servidor, aquest paràmetre és el max connections. Com ja he comentat, qualsevol paràmetre pot estar en global o al mòdul (al menys els que jo he provat).

Ara passem al mòdul d’aquest exemple:
– Primer indiquem el usuari:grup (uid i gid respectivament) que serà el owner (l’amo) de les dades que van a copiar-se al servidor, si al orige és un altre… al copiar-se al destí es canviarà per l’indicat ací.
– Es definix la ruta destí al servidor (path). Important que l’usuari definit abans tinga accés rw a aquesta ruta, sino dona error i no funciona. Feu-me cas que ja he estat ‘peleant’ pensant que havia donat permisos i resulta que no ho havia fet 🙁
Comment: un xicotet comentari per a saber de que va
– Indiquem que no és soles lectura (per a poder escriure també) amb el read only
– El següent paràmetre si no està no passa res, és per a que aquest mòdul siga visible a l’hora de llistar els mòduls disponibles al servidor, crec que per defecte està habilitat encara que no es configure.
– I finalment una part important (i crec que sense ella no funcionaria el rsyncd): El fitxer on es guarda la relació user:pass, aquest fitxer és un fitxer pla (es pot llegir perfectament per una persona, no està encriptat) i he vist que si no se li fa un chmod 600 com a root a aquest fitxer, no es pot llençar backups com a un usuari normal des del client. Al log ix un error com aquest:

[4834] secrets file must not be other-accessible (see strict modes option)
[4834] continuing without secrets file
[4834] auth failed on module NAS from nom_ip_que_he_ocultat (ip_que_he_ocultat): missing secret for user "backup_user"

Recordem: l’usuari que indiquem com a owner dels fitxers que van a copiar-se té que tindre accés de rw a la ruta que es posa en path. Ademés s’ha d’especificar un screts file i com a root fer-li un chmod 600. Important perquè sino donarà bastants errors. Ah! i no va mal definir un fitxer de log per a revisar els possibles errors que apareguen a la part del server.

Tot seguit passem a crear el fitxer de passwords, la configuració d’aquest fitxer és senzilla: en cada línia una parella de usuari:password. Aleshores fem un

#nano /etc/rsyncd.pass

I posem a la primera línia: backup_user:pass_back

Amb aquesta línia estem definint l’usuari backup_user amb password pass_back (que és el que hem indicat que té accés al mòdul BACKUP al fitxer de configuració del rsyncd.

Finalment anem a habilitar el servidor de rsync:

#nano /etc/default/rsync

i la línia que diu: RSYNC_ENABLE=false, la canviem per RSYNC_ENABLE=true

Amb aquesta configuració ja es pot fer una còpia de backup des del client amb el següent comandament:

$ rsync -avz /ruta/oritge rsync://backup_user@servidor_destí/BACKUP

Amb aquesta ordre es fa una còpia amb els paràmetres avz, que ho explicaré més endavant, de la ruta actual al servidor amb nom servidor_destí i al mòdul BACKUP, utilitzant l’usuari backup_user que hem definit al /etc/rsyncd.pass. El port per defecte del servici rsyncd és el 873, si pel que siga l’hem canviat al servidor l’ordre a executar seria:

$ rsync -avz /ruta/oritge rsync://backup_user@servidor_destí:port/BACKUP

Cal recordar que amb aquesta ordre el que fem és sustituïr el owner original dels fitxers copiats (els de backup) pel que hem indicat a la configuració. Modificant els paràmetres del uid i el gid a root ens solucionarà aquest problema.

Passem a explicar les opcions que hem posat al rsync:

  • -a: equival a -rlptgoD, que vol dir: recursiu, còpia enllàços simbòlics, preserva els permisos, guarda el temps, preserva el grup, preserva el owner i preserva els device files. Com hem vist, el tema de preservar permisos, temps, usuari i companyia sols ho fa si hem definit com a root el uid.
  • -v: verbose, necesari per al log
  • -z: transmitir la informació comprimint-la.

Hi ha més opcions però podem dir que ‘aquestes són les normals’. Respecte a l’opció -z he fet proves i he tingut els següents resultats:

  • Sense compresió: sent 27368118 bytes received 4818 bytes 71376.63 bytes/sec total size is 27839822 speedup is 1.02
  • Amb compresió: sent 24222524 bytes received 5007 bytes 72429.09 bytes/sec total size is 27839822 speedup is 1.15

Es pot veure que si que millora amb compresió.

Fins ara no han aparegut nous possibles errors que no haja comentat ja. Però si volem fer una còpia a través de internet a un altre servidor d’un amic (per exemple) tindrém en compte que:

  • Tenim resposta Ok del ping.
  • Té el port disponible (el que és per defecte o un altre que ens dirà per a configurar-lo). Ací entra que al router que tinga en casa estiga ben configurat la redirecció (fordwarding) del router a la IP del servidor rsyncd.
  • Primer heu provat a la seua xarxa (que no té cap intermediari) i ha funcionat OK.

Cal tenir en compte que la velocitat de còpia no serà la mateixa, els exemples que he posat jo corresponen a còpies petites a traves de la Internet. Si vos fixeu, he fet una còpia de 26Mb i pico a una velocitat de 70’73kb/s en el cas més ràpid tardant 6 minuts 18 segons. Ara fem càlculs i 1Gb tarda 4.20h, 500Gb ja són 87 dies (o el que és el mateix… casi 3 mesos!). Hem de tenir en compte el tema de volum, estic parlant d’un ADSL de 10mb, no res de fibra i coses d’ixes rares que no arriben al meu poble. En aquestos cas jo crec que és millor portar el client on estiga el server i fer la còpia en xarxa local, i després ja la incremental fer-la a distància.

I fins ací arriba el primer post parlant sobre la configuració del RSYNC

Enviar e-mail des de la consola (gmail, hotmail,…)

Bona vesprada!

Per al projecte que vull fer aquest mes necessite tenir un client de correu per a enviar correus, no m’apetix configurar el meu propi server amb el que comporta tota aquesta configuració tenint ja servidors de correus. I m’he ‘topat’ amb l’aplicació mutt per a linux clar.

Aquesta aplicació és fàcil de configurar i pot enviar correus amb una ordre o accedir a llegir els correus del teu compte. Primer que res és instal·lar el programa:

apt-get install mutt

He vist ‘per ahí’ que recomanen instal·lar els complements mailutils, libnet-ssleay-perl i libio-socket-ssl-perl, així que per si a cas….

apt-get install mailutils libnet-ssleay-perl libio-socket-ssl-perl

I ara a configurar el fitxer de configuració! Amb nano mateixa fem un nano ~/.muttrc i peguem aquestes línies:

set send_charset=”utf-8″
set from = "user@gmail.com"
set realname = "El teu nom"
set imap_user = "user@gmail.com"
set imap_pass = "password"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"
set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set smtp_url = "smtp://user@smtp.gmail.com:587/"
set smtp_pass = "password"

Canviar user pel vostre nom d’usuari i password pel vostre password. Per si no ho sabeu, aquest fitxer es crearà/modificarà amb l’usuari que es vol utilitzar per a enviar els correus.

Ara toca dir-li a GMail que confie amb mutt, s’accedix a https://www.google.com/settings/security i habilitar Accés per a aplicacions menys segures, sino el GMail ens bloquetjarà l’accés i ens enviarà un correu indicant-nos que ha bloquetjat un intent d’inici de sessió.

Finalment ja si executem mutt tindrem un client d’e-mail en consola i si volem enviar correus per consola tenim les següents possibilitats:

Correu amb el cos a un arxiu:
mutt -s "Assumpte" destinatari@correu.com < axiu de text de l'email

Correu amb el cos escrit a la mateixa ordre:
mutt -s "Assumpte" destinatari@correu.com <<< "Missatge"

Correu amb el cos a un arxiu i amb un arxiu adjunt:
mutt -s "Assumpte" destinatari@correu.com < axiu de text de l'email -a /ruta_arxiu_adjunt/arxiu.extensio

Tota la info l'he trobat a:
http://www.taringa.net/posts/linux/7446631/Enviar-correos-de-cuentas-gmail-desde-la-consola.html
http://rsppi.blogspot.com.es/2013/01/envio-de-emails-desde-consola-y-con.html
http://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/