Sei sulla pagina 1di 28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

Radxa Rock Pro: Linaro Server


Manual casero de instalacin de un servidor Linaro en Radxa Rock Pro
PorDanielExpsitoMateo
.ltimaactualizacin:
10/06/201503:46:20

ndicedecontenido
0.Introduccin
1.InstalacindeUbuntuServerentarjetaMicroSD.
2.AccesoSSH
3.ConfigurarunadireccinIPestticaalaconexinethernet
4.HabilitarconexinWifi
5.Actualizarelsistemaoperativo
6.Cambiarlahoradelsistema
7.Establecercontraseadelusuarioroot
8.Crearunusuarionuevoyborrarelusuariopordefecto
8.1.Crearelnuevousuario
8.2.Borrarelusuariopordefecto
9.Hacerunbackupdelsistema(alobruto)
10.Verprogramasinstalados
11.InstalarMySQL
11.1.CambiarcontraseaderootdeMySQL
11.2.CrearusuariodeMySQL
11.3.HabilitarMySQLparausoremoto
11.4.CambiarelpuertodeMySQL
11.5.MySQLWorkbench:ClientedeMySQL
12.InstalarApache2
12.1.Deshabilitarellistadodedirectoriosweb
1de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

12.2.Permisosptimospara/var/www.
12.3ConfigurandoApache
13.InstalarSFTP
13.1.CrearusuarioSFTP
13.2.InstalarelservidorSFTP
13.3.EnjaularusuarioSFTP
13.4.EnjaularusuarioSFTPparaaccedera/var/www
14.InstalarPHP.
14.1.ConfigurandoPHP.
15.InstalarclientedeDNSdinmico(ddclient)
16.Usarmltiplesdominiosenelservidor
17.InstalarfirewallUFW
17.1.Usodelfirewall
18.RedimensionarparticindelatarjetaSD
19.Hacerbackupsdedatosusandocron
19.1.Usandocrontab

0. Introduccin
Este documento est basado en mi experienciainstalandoyconfigurandoen laRadxaPro.Me
considero un novato en Linux,ytodolo escritoaquha sidofrutodemuchashorasconsultando
en internet. Por tanto, seguramente la informacin contenida es muy mejorable, pero me sirve
como punto de partida yreferenciaparafuturasinstalacionesenlaRadxaPro.Porfavor,sives
errores o conoces un mtodo mejor para hacer algo contenido aqu, no dudes en contactar
conmigoyharloscambiosenbeneficiodetodoslosqueconsultemosestedocumento.

1. Instalacin de Ubuntu Server en tarjeta Micro SD.


Instalaremos el sistema operativo en una tarjeta Micro SD para conservar en NAND (memoria
interna de la tarjeta) el sistema Android que viene por defecto. Esto puedeserunabuenaidea
2de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

porque nos permite hacer copias de las tarjetas y usarlo como un sistemadebackupbastante
sencillo.
El primer paso consiste en descargar la imagen ms reciente del sistema operativo. Hay que
tener cuidado de elegir bien la imagen, teniendo presente eltipodetarjetaRadxaRockquese
posea (las imgenes no son iguales para Rock Lite y Rock Pro, por ejemplo), y que sea para
instalarenSDynoenNAND.Lasimgenesseencuentranenelsiguienteenlace:
http://radxa.com/Rock/prebuilt_images
En el momento de redactar este documento, est disponible la versin Ubuntu (Linaro) 14.04
Server(141030)comolamsreciente.
Ahora, necesitaremos una tarjeta Micro SD disponible, un lector de tarjetas para el PC y el
programa necesario para aadir la imagen a la tarjeta. El programa se llama
Win32 Disk
Imager
(paraWindows),ypuededescargarseaqu:
http://sourceforge.net/projects/win32diskimager/
La instalacinessencilla,enelcampo
ImageFileseleccionamoselarchivocon extensin
.img
delaimagenypulsamoselbotn
Write
.EstocopiarlaimagenenlatarjetaMicroSD.
Una vez terminado, insertamos la tarjeta en la Radxa Rock. Nos aseguramos de que tiene el
cableHDMIyelderedconectadosylaencendemos.
Nota: Si por un casual sigue cargando el sistema operativo desde NAND y nodesdelatarjeta
Micro SD, entonces habr queconfigurarlaRadxaRockparaello.Estosesaledeestemanual
enestemomento,ladocumentacinoficialestaqu:
http://radxa.com/Rock
.
Como es la versin Server del sistema operativo, slo obtendremos el prompt (lnea de
comandos)yestarlistoparausarse.
Recordemos que usuario/contrasea por defecto son
rock/rock respectivamente, aunque se
identificaautomticamentecomousuarioroot,quenotieneasignadaningunacontrasea.

2. Acceso SSH
Si nuestro router tiene habilitado el protocolo DHCP, al estar conectada la Radxa Rock con el
cable de red, conseguir automticamente una direccin IP que le asigna el router. Con ello,
conseguir acceso a nuestra red interna, y por tanto, a internet. Esto nos posibilita establecer
una conexin SSH con nuestra Radxa Rock, que no es otra cosa que podermanejarlaRadxa
Rock desde otro ordenador a travs de un terminal que nos muestra el prompt, como si
estuviramos trabajando directamente en ella. Esto es muy recomendable porque al contar
nicamente con la lnea decomandoenlaRadxaRock,esmscmodotrabajarconellacomo

3de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

si fuera una ventana en un entorno de trabajo con ratn, navegador web, etc, sobretodo para
seguirestemanualparacopiarypegartodaslasinstruccionesquevendrnacontinuacin.
En primer lugar, desde la Radxa Rock necesitaremos saber qu direccin IP le haasignadoel
router.Paraello,enlalneadecomandoescribiremoslosiguiente:

ifconfig
Esto nos mostrar las interfaces de redes configuradas en ese momento. Nos interesa la que
se llama
eth0
, que corresponde a la conexin por cable ethernet. Nos dar un parmetro
llamado
Link encap con cuatro nmeros separados entre puntos parecido a esto:

192.168.0.50
. Esa ser la direccin IP asignada a la Radxa Pro, que al ser obtenida
dinmicamente mediante DHCP, podra cambiar si reiniciamos la Radxa Pro, por ejemplo, as
quemstardeleasignaremosunaIPfijaquenovare.
Para establecerunaconexinDHCP,lomejorescontarconunaaplicacinclientepara nuestro
PC, siendo el ms conocido (en Windows) uno llamado
PuTTY
, que podemos descargarlo de
manera gratuita aqu:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
. Ni
siquiera hay que instalarlo, lo ejecutamos ylisto,aadimos ladireccinIPqueobtuvimosantes
(el puerto por defecto es 22) y pulsamos en
Open
. Se nos abrirunaventanay,sitodohaido
bien, nos pedir login y contrasea, que recordemos queenlaRadxaPro,pordefecto es
rock
para ambos. Ahora podemos trabajar con la Radxa Pro desde nuestro PC, incluso podramos
retirarelcableHDMIyeltecladoporquenolousaremosmucho.
Para acceder a travs de otro entorno linux, podemos usar el siguiente comando (asumiendo
quelaIPes,porejemplo,192.168.0.50):

ssh -p 22 192.168.0.150 -l rock

3. Configurar una direccin IP esttica a la conexin ethernet


Al usar la Radxa Pro como servidor, no nos conviene que utilizar una direccin IP dinmica,
porque si instalamos, por ejemplo, un servidorwebparaverdesdecualquierpartedelmundoy
se nos cambia la IP, dejar de tener acceso al exterior. Por lo tanto, es muy recomendable
asignarle a la Radxa Pro una IP esttica que no vara conloscortesdeluzoentreen conflicto
conotrosdispositivosqueobtenganporerrorlamismaIP.
Lo que haremos sereditarelarchivodeconfiguracindelaccesoainternetporcableconeste
comando:

sudo pico /etc/network/interfaces.d/eth0


Pordefecto,contendralgoas:

4de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

autoeth0
ifaceeth0inetdhcp
Y necesitamos que sea algo as(losdatossondeejemplo,habraquesustituirlosporlosdatos
queutilicenuestrared):
autoeth0
ifaceeth0inetstatic
address192.168.0.100
netmask255.255.255.0
gateway192.168.0.1
dnsnameservers8.8.8.88.8.4.4
El editor de texto
pico
quehemosusadoutiliza
Control+x parasalir,ycomohemosrealizado
cambios, nos pedir confirmar que deseamos guardarlos, y el nombre del archivo que lo
dejaremoscomoest.
En la teora, para queloscambiossurtanefecto,necesitamosreiniciarlainterfacedeconexin,
seraalgoas(nohacer):

sudo ifdown eth0


sudo ifup eth0
Esto ira bien trabajando directamentedesdelaRadxaPro,perocomoseguramenteestaremos
trabajando desde SSH, nos desconectara en el primer comando y no podramos ejecutar el
segundo. Para no estar cambiando a la Radxa Pro, podemos probar un comando para
reiniciarla:

sudo shutdown -r now


Si todo ha ido bien, la Radxa Pro se reiniciar, perorecordemos quelaIPlahemoscambiado,
asquedeberemosusarlanuevaIPparaaccederdesdeSSH.

4. Habilitar conexin Wifi


Confieso que le he dedicado muchas horas a esto ynoheconseguidomantenerunaconexin
Wifi que me funcione bien. Como voy a usar el servidor con una conexin ethernet, dejo este
punto para estudiarlo ms adelante. Mientras, remito a la documentacin oficial:
http://radxa.com/Rock/Wireless
.

5. Actualizar el sistema operativo


Para empezar bienatrabajar conlaRadxaRock,lomsrecomendableesactualizarelsistema
operativoparaasegurarnosdequeestalda.Elcomandoparaelloeselsiguiente:

5de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

sudo apt-get update


sudo apt-get upgrade

6. Cambiar la hora del sistema


La hora del sistema tiene tela, porque muestra la hora segn la franjahorariauniversal(UTC),
as que quizs tengamos la hora correcta, pero el sistema muestra una que no corresponde
(porque lafranjahorariaesdiferente).Unejemplo,sivivesenCanariasysonlas22:00horas,y
usamoselsiguientecomando:

date
Elresultadoquedaraeseste:
SatJul1921:00:00UTC2014
No sale correcto porque est dndonos la hora en otra franja horaria. Para cambiar la franja
horaria,elmtodomsfiableyrpidoesusarelsiguientecomando:

sudo dpkg-reconfigure tzdata


Aparecer un programa parecido alosdeMSDOSynosharelegirlaubicacinenlaquenos
encontramos.EnelejemplodeCanarias,habraqueelegir:
AtlanticOcean
Canary
Sivolviramosapedirlahora,saldraalgoas:
SatJul1922:00:00WEST2014
Quizs tengamos la zona horaria bien pero la hora sea incorrecta. Para cambiar la hora sera
as:

date --set "2015-04-29 1:24"


Lasfuentesquesegusonlassiguientes:

WebServidorDebian
.
Debianadministrator
.

7. Establecer contrasea del usuario root


El usuario
root
es el superusuario del servidor,elquepuedehacercualquiercosaenl.Ahora
mismo no tiene contrasea y eso es un fallo grave de seguridad, cualquier otro usuario del

6de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

servidor podra cambiar cosas en l, y no conviene.Asquevamosaasignarleunacontrasea


conelsiguientecomando:

sudo passwd root


Nos pedir que confirmemos la contrasea. Y para ser precavidos, lo mejor es apuntar la
contrasea en un papel y guardarlo. A lo largo del documento vamos a tener que establecer
diversas contraseas, y conviene por seguridad que sean diferentes, as que apuntarlas es lo
msaconsejabledecaraalfuturo.

8. Crear un usuario nuevo y borrar el usuario por defecto


Usar el usuario que viene por defecto tampoco es una buena idea de cara a la seguridad. Lo
normal es que cada uno utilice su propio usuario, y es recomendable eliminar el usuario por
defecto.

8.1. Crear el nuevo usuario


Como primer paso nos vamos a identificar como usuario
root
parahacerloscambiossin tener
problemasdepermisos.Sehacesimplementeescribiendo:

su
Ahora, podramos crear el usuario en un solo paso, pero es mejor hacerlo primero por partes
para entender lo que hacemos. Lo primero, creamos el usuario. Para este ejemplo usar mi
nombre,aunqueesmejorusaralgounpocomscomplejoodiferente:

useradd daniel
Luegoleasignamosunacontrasea:

passwd daniel
Todousuariotieneunacarpetaen/home,lacreamosas:

mkdir /home/daniel
Yaesacarpetaleasignamosdueoygrupo:

chown daniel:daniel -R /home/daniel


Luegoleasignamospermisos:

chmod 755 -R /home/daniel


Yasignamoslacarpetaalnuevousuario:

7de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

usermod -d /home/daniel daniel


El mtodo para hacerlo todo en un solo paso es el siguiente (el grupo debe existir
previamente):

useradd -g daniel -d /home/daniel -m -s /bin/bash daniel


Donde
gespecificaelgrupo,
dlacarpetahome,
mcrealacarpetahomesinoexiste,ycon
s
establecemos el shell del usuario, que suele ser
/bin/bash y bsicamente viene a decirquele
permitiremosusarlaconsola.
Ahora entraremos en el archivo
/etc/passwd para asegurarnos dequeelusuariosehacreado
terminandolalneaen/bin/bashenvezde/bin/sh:

pico /etc/passwd
Buscamoselusuarionuevo,ysiterminacon/bin/sh,losustituimos.
Por ltimo, aadiremos el usuario en todos los grupos al que pertenece elusuariorock.Para
ello,abrimoselarchivo
/etc/group
:

pico /etc/group
Buscaremos las siguientes lneasyaadiremoselusuario.Sielusuariorockestenlalnea,lo
separamosconunacoma.Sonlassiguientes:
dialout:x:20:rock,daniel
cdrom:x:1000:rock,daniel
sudo:x:27:daniel
audio:x:29:rock,daniel
dip:x:1000:rock,daniel
video:x:44:rock,daniel
plugdev:x:1000:rock,daniel
GuardamosconControl+x.
Fuenteseguida:

Habilitarroot
.
Administracindeusuariosygrupos
.
Crearunusuarionuevoytodoloqueelloimplica
.

8.2. Borrar el usuario por defecto


Si todo ha ido bien, podremos hacer login con el nuevo usuario y eliminar el usuario
rock
.
Seguramente, si lo hacemos a continuacin de crear nuestro usuario, nos dar problemas al

8de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

borrar
rock porque lo hemos estado usando y tiene procesos abiertos, as quelomssencillo
esreiniciarlaRadxaRock:

sudo shutdown -r now


Una vez reinicie la Radxa Rock, nos identificamos con el usuario nuevo. Si nos deja, es que
todohaidobien.Ahoraquedaborrarelusuario
rock
deestamanera:

sudo userdel -r rock


Fuentequeheseguido:
EliminarusuarioysuhomeenDebian/Ubuntu
.

9. Hacer un backup del sistema (a lo bruto)


Llegados a este punto, no estara de ms hacer un backup delservidorenelestadoactual,ya
que empezaremos a instalar programas y si falla algo, puede que resulte complicado
solucionarlo y tengamos que empezar de cero. Hay varios mtodos para hacer backups, pero
para hacerlo fcil nos aprovecharemos de que tenemos elsistemaenunatarjetaMicroSD.En
unpuntoposteriorveremoscmohacerbackupsdelosdatosdeunmodomssofisticado.
Primero,apagaremoselservidorparapodersacarlaMicroSD:

sudo shutdown -h now


Insertaremos la Micro SD en el lector del PC y volveremos a abrir el programa
Win32 Disk
Imager
. Esta vez, en
Image File pondremos larutayelnombrequele daremos alarchivo,por
ejemploeste:
C:\radxa.img
Y para guardar la imagen usaremos el botn
Read
. Tardar un poco, y el archivo ocupar el
tamaoquetengalatarjetaMicroSD.

10. Ver programas instalados


Ahora estaramos listos para instalar programas, como el servidor de Apache, Php, etc. Pero
puede que la distribucin de Linux que tenemos ya traigan esos programas instalados. Para
comprobarlalistadeprogramasinstaladosusaremosestecomando:

dpkg --get-selections
Tambin podemos ver los paquetes conocidos por el sistema, que suelen coincidir con los
programas instalados, adems da una corta descripcin de los mismos para hacernos una
idea.Seconsiguedeestamanera:

dpkg -l
9de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

El comando anterior lo podemos usar para buscar un programa especfico y saber si est
instalado.Porejemplo,siqueremossabersiApache2estinstaladoseraas:

dpkg -l | grep apache2


Sidevuelvealgoesquesestinstalado.
Lafuentequeheseguido:

Cmosabersiunpaqueteseencuentrainstaladoonodemanerafcilyrpida
.

11. Instalar MySQL


MySQLesunservidordebasededatosmuyconocidoyextendido.
La imagendeLinuxqueinstal enlaRadxaRockyatieneinstaladoelMySQL,detodasformas
novienemalsabercmoseinstalamanualmente.Seraas:

sudo apt-get install mysql-server mysql-client


A mitad de la instalacin nos pedir una contrasea para el usuario root de MySQL (no
confundir con el usuario root del sistema). Conviene no poner siempre la misma contrasea
paratodo,porseguridad.
Paraprobarquefuncionacorrectamente,usaremosestecomando:

mysql -u root -p
Nos pedir la contrasea de root, y si consigue identificarse, el prompt habitual cambiar a

mysql>
y podremos escribir comandos de MySQL. Por ejemplo, para mostrar las bases de
datosexistentes,hayqueescribiresto:

show databases;
ParasalirdeMySQLyvolveralpromptdelsistema,escribimosesto:

exit;

11.1. Cambiar contrasea de root de MySQL


Si MySQL viene instalado en el sistema, el usuario root no tendr contrasea, o es probable
que con el paso del tiempo, si no la hemos apuntado, se nos haya olvidado. La forma ms
sencilladerestablecerlaesescribiendolosiguiente:

sudo dpkg-reconfigure mysql-server-5.5

10de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

Hay que tener en cuenta que sirve para la versin 5.5 de MySQL, si queremos saber qu
versindeMySQLtenemosinstalado,podemosusarelcomandodelpuntoanterior:

dpkg -l | grep mysql


Yluego,enelcomandodearriba,cambiarelnmerodeversin.

11.2. Crear usuario de MySQL


Como no es recomendable usar el usuario root para trabajar (desde fuera de la Radxa Rock
nisenos permitir),crearemosunusuarionuevoquepodamosusar.Comoejemplo,crearemos
un usuario
lola
con la contrasea
flores
. Dentro de mysql debemos ejecutar
por separado
lassiguientestreslneas:

CREATE USER 'lola'@'%' IDENTIFIED BY 'flores';


GRANT ALL PRIVILEGES ON *.* TO 'lola'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Para comprobar que se ha creado bien, saldremos de mysql (
exit
) y volveremos a entrar
usandoelnuevousuario.

mysql -u lola -p

11.3. Habilitar MySQL para uso remoto


Es posible que podamos trabajar localmente, pero no se nos permita acceder desde otra
mquina. Eso lo arreglamos editando el archivo
/etc/mysql/my.cnf y comentando algunas
lneas.Paraeditarelarchivousamosestalnea:

sudo pico /etc/mysql/my.cnf


Laslneasquehayquecomentarsonlassiguientes(siestuvieran):
skipexternallocking
skipnetworking(avecesnosale)
bindaddress=127.0.0.1
Recordemosqueparacomentarhayqueponerunaalmohadilla
#
alprincipiodelalnea.
Para que surta efecto, hay que parar el MySQL y volverainiciarlo.Estos doscomandosharn
eso:

sudo /etc/init.d/mysql stop


sudo /etc/init.d/mysql start
Osimplementeusar:

11de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

sudo /etc/init.d/mysql restart


Por ltimo, es conveniente terminarprobandolaconexindesdeotramquinaparaasegurarse
dequequedafuncionando.

11.4. Cambiar el puerto de MySQL


Las peticiones al servidor MySQL se hacen, por defecto, a travsdelpuerto3306.Paraaadir
un poco de seguridad al servidor vamos a cambiar el puerto de las peticiones. Primero
debemos asegurarnos del puerto actual y elegir uno que no se est usando. Esto podemos
averiguarloconestalnea:

sudo netstat -napt


Vamos a usar como ejemplo el puerto
3307
, aunque sea demasiado obvio. Tendremos que
acceder al archivo de configuracin de MySQL y hacer los cambios. Podemos acceder al
archivoas:

sudo pico /etc/mysql/my.cnf


Debemosbuscarycambiarlaslneasquecontenganlosiguiente:
port=3350
Sueleestarunpardeveces,enlaseccin
[client]
y
[mysqld]
.
Parafinalizartendremosquereiniciarelservidor:

sudo /etc/init.d/mysql restart


A partir de ahora, no debera dejar acceder a travs del puerto 3306, sino a travs del puerto
3307.

11.5. MySQL Workbench: Cliente de MySQL


Como nota adicional, recomiendo usar el programa MySQL Workbench para trabajar
remotamente con MySQL, no slo porque nos facilitar la gestin y es gratuito, sino tambin
porque es de la misma compaa de MySQL. Se puede descargar aqu:
http://www.mysql.com/products/workbench/
.

12. Instalar Apache2


ApacheesunodelosservidoreswebHTTPmsutilizados.
Tambin viene instalada en la imagen de Linux que eleg para la Radxa Rock, pero si
tuviramosqueinstalarladenuevo,seraas:
12de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

sudo apt-get install apache2


Y listo, para probarlo, nicamente tendremos que ir a un navegador web y copiar la IP que le
hayamosasignadoalaRadxaPro.Porejemplo
http://192.168.0.100/
Sinodaerroryapareceunapginaconeltexto
Itworks!
,esquelainstalacinhaidobien.
Las pginas se guardan en
/var/www por defecto. El archivo de configuracin lo podemos
encontrar en
/etc/apache2/apache2.conf y
/etc/apache2/conf.d para configuracin adicional.
Haymsarchivosdeconfiguracinextra(paramdulosydems)enlamismacarpeta.

12.1. Deshabilitar el listado de directorios web


Si aadimos en
/var/www unas cuantas pginas y carpetas, nos daremos cuenta enseguida
que, desde el navegador web, podemos ver el listado de subcarpetas y archivos que contiene
una carpeta. Esto nos supone un problema serio de seguridad, as que lo mejor es
deshabilitarlo para que no se vea el contenido de las carpetas. Lo ms rpido es hacer lo
siguiente:

sudo a2dismod autoindex


YreiniciarelApache.Podemosusarestalnea:

sudo /etc/init.d/apache2 restart

12.2. Permisos ptimos para /var/www.


Cuando se instala Apache 2, se crea la carpeta
/var/www
, que posiblemente pertenezca y
forme parte delgrupode
root
. Normalmente trabajaremosenesacarpetaconunusuarioFTP
y habr que asegurarse de que pertenezca al mismo grupo para que no haya problemas de
permisos.
Tendremos que cambiar el grupodelacarpeta
/var/www paraquesea
wwwdata
,sinoloes
ya:

sudo chgrp www-data -R /var/www


Luego,daremoslospermisoscorrectosalacarpeta
/var/www
:

sudo chmod 664 -R /var/www/*


Entramosenlacarpeta:

cd /var/www

13de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

Yterminamosdeestablecerpermisos:

sudo find ./ -type d -exec chmod 775 {} \;


sudo find ./ -type d -exec chmod g+s {} \;
Bsicamente, lo que hemos conseguido es que el propietario de los archivos, y los que
pertenezcan al mismo grupoquelosarchivos, puedanleer,escribiry ejecutarloque haydentro
de
/var/www
,yelrestoslopuedamirarperonotocar.
Meheguiadodeestafuente:
PermisosptimosparaarchivosdeapacheenDebian
.

12.3 Configurando Apache


Es probable que tengamos que cambiar la configuracin de Apache en algn momento. Los
ficheros de configuracin los podemos encontrar en
/etc/apache2/
. El archivo principal puede
variar, normalmente est en
/etc/apache2/apache2.conf
, si no, lo mejor es mirar si hay un
archivoreadmequeespecifiquedndeseconfigurarelservidor.
Una de las modificaciones frecuentes, es habilitar el uso de archivos
.htaccess
, que permite
realizar configuraciones especiales para cada directorio, sin necesidad de modificar la
configuracinestablecidadeApache.Paraellotenemosqueusarestalnea:

sudo pico /etc/apache2/apache2.conf


Buscaremosuntrozodetextoquepongalosiguiente:
<Directory/var/www/>
OptionsIndexesFollowSymLinks
AllowOverrideNone
Requireallgranted
</Directory>
Puede que no tenga la lnea
Options Indexes FollowSymLinks
, esa lnea es lo que evita
queseveanlosarchivosdelosdirectorios,vistoenelpuntoanterior.
Cambiaremoslaopcin
AllowOverride
porlosiguiente:
AllowOverrideAll
Luego,bastaconreiniciarApache2,estavezusaremosunmtodomsdirecto:

sudo /etc/init.d/apache2 restart


Es posible que tambin queramos activar el mdulo
mod_rewrite de Apache2, que dos da
accesoamodificarmscosasdentrodel
.htacess
.Activarloestanfcilcomoesto:

sudo a2enmod rewrite


14de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

Ydenuevo,reiniciarelApache2:

sudo /etc/init.d/apache2 restart

13. Instalar SFTP


El programa SFTP es un servidor FTP para intercambio de archivos de forma segura, ya que
usaelprotocoloSSH.

13.1. Crear usuario SFTP


Antes de instalar el programa, vamos a crear el usuario que usaremos para conectarnos por
SFTP.Tendrestascaractersticas:

Por seguridad, no le dejaremos acceder al sistema mediante consola, sloservirpara


elintercambiodearchivos.

Sersucarpetaen/homelaqueusaremosparacompartirporSFTP.

Sabiendo de antemano que vamos a necesitar permisos de administrador y es una lata poner
lacontraseacadavez,nosponemosenmodosudoparaelrestodecomandos:

sudo -i
El primer paso es crear el usuario, usaremos como ejemplo lola. El parmetro s /bin/bash
eselqueharquepuedaaccedervaSSH:

useradd -d /home/lola -s /bin/bash lola


Ahora lo asignaremosalgrupowwwdata,puesluegoaadiremos
/var/wwwaesegrupopara
queelusuarioSFTPpuedamanipulararchivosycarpetas:

adduser lola www-data


Tambinhacefaltaqueelusuariotengaunacontrasea:

passwd lola
Antesmencionamosqueelusuariocompartirasucarpetaen/homepor FTP,perorealmentelo
que nos interesa es que comparta
/var/www/html
, que portemasde permisosyseguridad,no
es posible. Lo solucionamos creando unenlacesimblico(
symlink
)comosucarpetaen/home,
queyaespecificamosalcrearelusuarioquelallamaramoslola:

ln -s /var/www /home/lola
Cuidado
, si ya existe una carpeta con ese nombre, lo que har este comando es crear un
enlace simblico llamado www dentro, y no nos vale. Hay que asegurarse de que la carpeta
15de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

no existe antes de usar el comando. Sabremos que lola es un enlace simblico, si al listar
ejecutar
lsl/home
salelacarpetaas:
lola>/var/www
Siesas,lohemoshechobien.

13.2. Instalar el servidor SFTP


En primer lugar, es bueno asegurarse de que no est ya instalado el programa. En la imagen
que eleg, ya viene instalado. El paquete del programa se llama
opensshserver
, para
comprobarsiestinstaladorecordemosestecomando:

dpkg -l | grep openssh-server


Si nos lista el paquete, es que ya est instalado. Si no, la instalacin es sencilla usando el
siguientecomando:

sudo aptitude install openssh-server


AhoratocaconfigurarunpocoelSFTP:

sudo pico /etc/ssh/sshd_config


Aqubuscaremoslasiguientelnea:
UsePrivilegeSeparationyes
Ydebajoescribiremoslosiguiente:
AllowUsersdaniellola
Donde
lola
es el usuario que creamos anteriormente para SFTP. Es importante comentar que
aadimos el usuario que estamos usando paraconectarvaSSH(daniel)odejardefuncionar
ynopodremosaccederalservidorremotamente.
Por ltimo, podemos cambiar el puerto que usar el SFTP, que por defecto es 22. Ms tarde
vendr bien para aadir seguridad cuando instalemos el firewall. Para cambiarlo buscamos la
siguientelneaylecambiamoselnmero:
Port22
Recordemos que para asegurarmos de no elegir un puerto ya usado, podemos listar los que
estnenusoas:

sudo netstat -napt


Porltimo,tendremosquereiniciarelservidor:
16de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

sudo /etc/init.d/ssh restart


Esposible quenosdesconectelaconexinSSHytengamosquecambiarelpuertoenelcliente
SSH para volver a conectar, o quizs pase como me ha pasado a m y an podamosacceder
por el puerto 22. No soy un experto en linux y desconozcoporqu,quizsporquedetectaque
hay una conexin SSH abierta (la nuestra), as que lo ms fcil es usar el mtodo Windows:
reiniciarelservidor.Recordemos:

sudo shutdown -r now


Hay que tener en cuenta que habr que usar un cliente SFTP en vez de FTP para la
transferenciadearchivos.Porejemplo,elDreamweavertienelaopcindeconexionesSFTP.
Lafuentequeheseguido:

InstalarunservidorSFTPenDebianGNU/Linux
.

13.3. Enjaular usuario SFTP


Si nos conectamos al servidor a travs de algn programa de transferencia de archivos SFTP
nos daremos cuenta de que podemos ver todas las carpetas del servidor, y esto puede ser
peligroso si creamos un usuario SFTP para terceras personas. Lo que debe hacerse es
enjaular al usuario en una carpeta (su carpetahome,porejemplo),paraquenopuedasalirse
de ah y as limitamos su acceso. Vamos a intentar enjaular al usuario
lola que ya hemos
creado.
Antes de nada,loqueharemosserborrarlacarpeta
/home/lola
,porquecuando lacreamoslo
hicimoscomounenlacesimblicoynonossirve.Vamosacrearlacomounacarpetanormal:

rm -r /home/lola
mkdir /home/lola
Vamos a hacer que el usuario
lola no pueda salir de su carpeta home que es
/home/lola
. Es
esencial que quede claro que todaslascarpetasqueseincluyenenlarutadeldirectorio jaula
tienen que tener como propietario al usuario
root
,si no,nofuncionar.Enlacarpeta
/homees
msqueprobablequeseaassinolahemostocado,comprobemoslacarpeta
/lola
:

ls -l /home
Si el propietario de
/lola no esrootlocambiamos(recordemosqueelusuariololapertenecaal
grupo
wwwdata
:

chown root:www-data /home/lola


El segundo punto a tener en cuenta, es que los permisos tienen que ser los correctos o no
funcionar,enestecaso:
17de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

chmod 755 /home/lola


Con esos permisos, el usuario lola tiene una carpeta home que puede consultar, pero sin
permisos para aadir o borrar archivos. Dentro de la carpeta, vamos a crear otra que pueda
manipular:

mkdir /home/lola/archivos
chown lola:www-data /home/lola/archivos
AhoratocamodificarlaconfiguracindelSSH:

pico /etc/ssh/sshd_config
Tenemos que buscar la lnea que ponga
Subsystem sftp /usr/lib/openssh/sftpserver
y
cambiarloporesto:
#Subsystemsftp/usr/lib/openssh/sftpserver
Subsystemsftpinternalsftp
Yalfinaldeldocumento,aadimoslosiguiente:
Matchgroupwwwdata
ChrootDirectory/home/%u
X11Forwardingno
AllowTcpForwardingno
ForceCommandinternalsftp
Con esto le decimos al SSH que a todo usuario que sea del grupo
wwwdata
lo enjaule en la
carpetaconsunombredeusuarioqueestdentrodelacarpeta
/home
.
Finalmente,bastaraconreiniciarelservicioSSH:

/etc/init.d/ssh restart
Pero como, sin razn aparente, a veces no me ha funcionado y me lo puedo permitir, prefiero
reiniciartodoelservidor:

shutdown -r now
Si todo ha ido bien, deberamos poder acceder a travs de SSH y manipular archivos en la
carpeta
/home/lola/archivos
. Ojo con qu programa lo probamos, por alguna razn, en
Dreamweavermefueperfecto,peroenAptanamedabaerrores.
Por cierto, recordemos que el usuario
lola
tena acceso a consola, si con un usuario solo
vamosausarprogramasdetransferenciadearchivosynonecesitamoslaconsola,esmejorno
permitirqueseuse.Podemoshacerlosimodificamoselarchivo
/etc/passwd
oas:

18de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

chsh -s /bin/false lola


Fuenteseguida:
EnjauladoSFTP
.

13.4. Enjaular usuario SFTP para acceder a /var/www


Cuando encerramos a un usuario en una carpeta de esta manera, hay quetenerencuentaun
par de cosas: la primera es que no podr salirse de ella, no podremos acceder a nada ms a
menos que lo configuremos la segunda es que debido a ello los enlaces simblicos no
funcionarn,poresoloborramosantes.
La solucin ms simple para permitir al usuario acceder a
/var/www es usar la propia carpeta
/var/www para enjaular al usuario, y que tenga acceso a
/var/www/html
, o enjaularlo en
/var/www/html y que tenga su propia de acceso en
/var/www/html/lola
. Como ejemplo,
hagamos lo primero, simplemente tendramos quevolvera configurarloltimoqueaadimosa
laconfiguracindelSSHdeestamanera:
Matchgroupwwwdata
ChrootDirectory/var/www
X11Forwardingno
AllowTcpForwardingno
ForceCommandinternalsftp
As le decimos que todos los usuarios del grupo wwwdata pueden acceder a
/var/www
. Para
el segundo ejemplo, crearamos la carpeta
/var/www/html/lola con propietario
lola:wwwdata
yconfiguraramosSSHdeestamanera:
Matchuserlola
ChrootDirectory/var/www/html
X11Forwardingno
AllowTcpForwardingno
ForceCommandinternalsftp
Con esto le decimos que el usuario lola puede accedera
/var/www/html
.Ojo,podraverotras
carpetasdentrode
/var/www/html
, apartedelasuyapropia, anoserquecontrolemosbienlos
permisos.
ReiniciamoselservidorSSHotodoelservidorydeberafuncionar.
Fuenteseguida:
EnjauladoSFTP
.

19de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

14. Instalar PHP.


PHP es un mdulo de Apache2 que nos permite mostrar y trabajar con el lenguaje de
programacin PHP. Conviene asegurarse de que si ya est instalado el paquete
libapache2modphp5
,sino,slonecesitamosejecutarestalneadecomando:

sudo apt-get install php5 libapache2-mod-php5


Traseso,sloquedareiniciarelApache2:

sudo /etc/init.d/apache2 restart


Adems, PHP tambin tiene otros mdulos tiles, podemos ver una lista de los disponibles
tecleandolosiguiente:

apt-cache search php5


Comprobamos si tenemos ya instalado los que nos interesa. Para instalar mdulos nuevos,
seraalgoas(encasodequererinstalarlosmdulosparamysqlyGD):

apt-get install php5-mysql php5-gd


YvolvemosareiniciarelApache2:

/etc/init.d/apache2 restart

14.1. Configurando PHP.


Para configurar PHP hay que localizar el archivo php.ini que est en
/etc/php5/apache2/php.ini
, aunque no viene mal asegurarse, ya que no es difcil terminar
modificando el archivo errneo (am mehapasado).Parasaberlaubicacinexacta,bastacon
crear un archivo php con la instruccin
<?php phpinfo() ?>
y verla desde el navegador
saldr una tablaconunmontndeinformacinsobreelservidor,yenelprimerbloquenos sale
laubicacinenelparmetro
LoadedConfigurationFile
.
Paramodificarelarchivopondremos:

sudo pico /etc/php5/apache2/php.ini


Un cambio til podra ser habilitar las etiquetas cortas de cdigo PHP,esdecir,poderusar<?
?> en vez de <?php ?>. Lo conseguimos buscando el parmetro
short_open_tag y
modificandosuvalora
On
:
short_open_tag=On
Otro de los cambios tiles consiste en modificar el parmetro
display_errors para permitir
mostrar los errores que surjan en PHP, nos ayudar mucho si estamos programando en PHP
20de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

(ojo, no es recomendable tenerlo activo en pginas ya visibles al pblico, mostrar los errores
puedeserungranagujerodeseguridad).Lavariabledeberaquedaras:
display_errors=On
Recordemos que tambin se pueden ver los errores (muy recomendable) mirando el log de
errores,queesten
/var/log/apache2/error.log
:

sudo pico /var/log/apache2/error.log


Tambin podemos echarle un vistazo,por ejemplo,conestecomando,mostrandolasltima20
lneas:

sudo tail -20 /var/log/apache2/error.log


Lasfuentesqueheseguido:

InstallingPHP5
.
Configuracindelphp.ini
.

15. Instalar cliente de DNS dinmico (ddclient)


Cuando contratamos un ADSL, lo normal esquenossuministrenunaIPdinmicaparanuestro
hogar, es decir, esta IP puede variar si, por ejemplo, reseteamos el router. Esto puede ser un
problema si queremos que nuestro servidor est siempre onlineyvisibledesdecualquierparte
del mundo a travs de un dominio permanente (ejemplo: esteesmidominio.com). Asumiendo
que ya hemos contratado un dominio, una solucin barata es crear una cuenta con un
proveedor de DNS dinmico, que se encarga de actualizar la IP a la que apunta nuestro
dominio, as si se nos cae el router o hay problemas tcnicos, reestablecer automticamente
la nueva IP. Normalmente estos proveedores necesitan que instales un cliente en el servidor
que se encargar de comprobarsilaIPhacambiado,yeseclientesueleserddclient.Instalarlo
esmuysencillo:

sudo apt-get install ddclient


Una serie de pantallas de configuracin aparecern en pantalla y tendremos que rellenar los
datos. La mayora de ellos los suministrar el proveedor. En definitiva, estas pantallas lo que
harnsercompletarelficherodeconfiguracinqueseencuentraen/etc/ddclient.conf.
Como ejemplo, aqu est la configuracin base de dynu.com, que es un proveedor de DNS
dinmico:
#ddclientconfigurationforDynu
#/etc/ddclient.conf
daemon=60#Checkevery60seconds.
syslog=yes#Logupdatemsgstosyslog.
21de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

mail=root#Mailallmsgstoroot.
mailfailure=root#Mailfailedupdatemsgstoroot.
pid=/var/run/ddclient.pid#RecordPIDinfile.
ssl=yes#Usesslsupport.Workswithssllibrary.
use=web,web=checkip.dynu.com/,webskip='IPAddress'#Getipfrom
server.
server=api.dynu.com#IPupdateserver.
protocol=dyndns2

login=myusername#Yourusername.
password=YOURPASSWORD#PasswordorMD5ofpassword.
MYDOMAIN.DYNU.COM#Listoneormorehostnamesoneoneachline.
Nota: no hay que olvidar que las DNS de nuestro dominio tienen que apuntar alosservidores
delproveedordeDNSdinmico.
Porltimo,nosquedacrearundemonioqueseencarguedeircomprobandolaIP.Seraas:

/usr/sbin/ddclient -daemon 300 -syslog


Estopuedeaadirseenelcrontabparaqueseejecutealiniciarseelservidor:
Fuente:
ddclient(eningls)
.

16. Usar mltiples dominios en el servidor


Teniendo un servidor propio es muy probable que queramos alojar varios sitios web con
diferente dominio. Si tenemos dos dominios, por ejemplo midominio.com y otrodominio.com, y
ambos apuntan a nuestra IP pblica podemos comprobar que, en los doscasos,semostrarn
los archivos alojados en /var/www/html, ynoesloquequeremos. Apachenosayudaconesoa
travs de la configuracin de sitios en dos carpetas diferentes. La primera carpeta es
/etc/apache2/sitesavailable, que guarda las configuraciones existentes, y por defecto,
debera haber dos archivos:
000default.conf (web por defecto) y
defaultssl.conf (web por
defectoconcertificadossl,ysincertificadonoseusa).
Lo primero que haremos ser crear, dentro de la carpeta, un archivo nuevo copiando el ya
existente:

cd /etc/apache2/sites-available
sudo cp 000-default.conf midominiocom.conf
Luegoloeditamos:

sudo pico midominiocom.conf


Ymodificamosestosvalores:

22de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

DocumentRoot/var/www/html/midominiocom
ServerNamewww.midominio.com
ServerAliasmidominio.com
Con esto, bsicamente le decimos al Apache que si le llega una peticin de mostrar
midominio.com, tiene que buscar los archivos en
/var/www/html/midominiocomenvezde en
/var/www/html. Hay que mencionar que si no usamos el
ServerAlias
, www.midominio.com y
midominio.com apuntarn a sitios diferentes, elprimeroalacarpeta
./html/midominiocomyel
segundoalacarpeta
./html
.
El siguiente paso es aadir la configuracin a la segunda carpeta que mencionamos, que es
/etc/apache2/sitesenables creando un enlace simblico, y esto lo hacemos fcilmente con
estecomando:

sudo a2ensite midominiocom.conf


Siquisiramos,podramoseliminarloconestecomando:

sudo a2dissite midominiocom.conf


Esto es til si, por algunarazn,noqueremosquese muestreunawebdurante untiempopero
tampocoqueremoseliminarlaconfiguracin.
Nosquedacrearlacarpetadondeseguardarnlosarchivos:

sudo mkdir /var/www/html/midominiocom


Podemoscrearrpidamenteunarchivodepruebaas:

cd /var/www/html/midominiocom
sudo touch index.html
sudo chmod 777 index.html
sudo echo "Funciona el dominio" > index.html
Porltimo,hayquereiniciarelApache:

sudo /etc/init.d/apache2 reload


Slo queda probarlo, pero no podemos acceder a travs del dominio desde dentro de nuestra
IP (desde la misma red usamos, por ejemplo,
http://192.168.0.100/midominiocom/
).Loms
fcil? Pues desactivar el Wifi del mvil y accederdesdesunavegador,yaquenoestardentro
de nuestra red domstica al usar el plan de datos. Hay que comprobar el dominio con y sin
www.
Y en resumen, estos pasos habra queseguirlosporcadadominioquequeramosalojar,donde
cadaunoseguardarenunacarpetadiferente.

23de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

Fuente:
AlojarvariosdominiosenunhostingconApache
.

17. Instalar firewall UFW


Una delasmanerasdeintentarmantenerseguroelservidor,escontrolarlospuertosdeacceso
para que no pase nadiesinautorizacin.Estoesmuyimportanteenpuertoscomoel22(SSH),
21 (FTP), etc. Adems, si tenemos el sistema actualizado constantemente y encima
cambiamos los puestos por defecto por otros que elijamos, aadimos seguridadalequipo.Por
ejemplo, podemos cambiar el puerto 22 del SSH por el 70. Como hemos visto en puntos
anteriores, estos puertos se cambian en los archivos de configuracin de los programas, y
muchosdeellosrequierenreiniciarlos.Ejemplo:

sudo pico /etc/proftpd/proftpd.conf


sudo /etc/init.d/proftpd restart
Mi imagen ya tiene instalado el cortafuegos UFW, pero si necesitamos instalarlo solo hay que
teclearlosiguiente:

sudo apt-get install ufw

17.1. Uso del firewall


Parahabilitarydeshabilitarelfirewallloscomandossonestos:

sudo ufw enable


sudo ufw disable
Para permitir todo el acceso (no recomendado) o denegar todo el acceso (ojo, que nos
quedamossinSSHsiesthabilitadoelfirewall):

sudo ufw default allow


sudo ufw default deny
Paraaadirodenegaraccesoaunpuerto:

sudo ufw allow 59345


sudo ufw allow 59345 /tcp
sudo ufw deny 59345
sudo ufw deny 59345 /tcp
Paraeliminaralgunareglaquehayamoscreado,seraas:

sudo ufw delete allow 59345


sudo ufw delete allow 59345 /tcp
sudo ufw delete deny 59345
sudo ufw delete deny 59345 /tcp
24de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

Paraverlasreglasquehemosaadido,usamosestecomando:

sudo ufw status


Quizsmuestreuntextocomoeste:
WARN:uidis0but'/'isownedby1001
Eso quiere decir que la carpeta / no tiene a root como propierario y eso no es bueno. Para
cambiarlo,modificaremoselpropietarioypermisosdeesacarpeta:

sudo chown root.root /


sudo chmod 0755 /
Lomismoconcualquierotracarpetaquenotengaelpropietarioadecuado.
Lafuentesqueheusado:

ConfigurafacilmentetuFIREWALLendebian/ubuntu
.

18. Redimensionar particin de la tarjeta SD


Normalmente en Lubuntu, el rootfs () tiene un tamao por defecto de 2Gb, as que si usamos
una tarjeta SD de 8Gb, nos sobrarn 6Gb quenoseusarnparanada,ynotendremosmucho
espacioparainstalarcosasygestionararchivos.
Para solucionar esto desde la propia Radxa, lo primero que debemos hacer es aumentar el
tamaoderootfs,asquecrearemosunscriptquehagaestomismo.
Creamosunarchivonuevodondeguardaremoselcdigodelscript:

sudo pico cambiarootfs.sh


Dentro,guardaremoselsiguientecdigo,extradodelapginadeayudadeRadxa:
#!/bin/bash
START_SECTOR=`cat/sys/block/mmcblk0/mmcblk0p1/start`
fdisk/dev/mmcblk0<<EOF
d
n
p
1
$START_SECTOR

EOF
25de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

echoe"\n\n\n
\n============================================================"
echo"!!!!!expandsrootfsdone!rebootsystem"
echo"!!!!!andruncommand"resize2fs/dev/mmcblk0p1"afterreboot"
echo
e
"=============================================================\n\n\n"
Acontinuacin,loejecutaremos:

sudo bash cambiarootfs.sh


Cuandoelprocesotermina,necesitamosreiniciarelsistema:

sudo shutdown -r now


Yporltimo,unavezreinicie,cambiaremoseltamaodelaparticinconestecomando:

sudo resize2fs /dev/mmcblk0p1


Adems,comoyanoesnecesario,podremosborrarelscriptdeestamanera:

rm cambiaparticion.sh
Meheguiadodeestafuente:
ResizeLinuxRootfs(eningls)
.

19. Hacer backups de datos usando cron


Ya hemos visto cmo hacer un backup rudimentario de toda la tarjeta SD, pero seguramente
necesitaremos hacer copias frecuentes de algunos datos, por ejemplo, de las bases de datos
mysql. Una formasencillaesusarelcomando
cron
.Paraponer unejemplo,configuraremosun
backupdiariodetodaslasbasesdedatosaunpendriveUSB.
Elprimerpasoseridentificarnoscomoroot:

su
AhoranecesitamosconectarelpendriveenelUSBycomprobarqunombretiene:

fdisk -l
NosdarelnombredeldispositivoUSB,enestecaso,
/dev/sda1
.
Para trabajar con el dispositivoUSB,crearemosunacarpetaymontaremoseldispositivo sobre
ella.Lacarpetalacrearemosdeestamanera:

mkdir /backup
26de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

Es recomendable automatizar el proceso de montar el dispositivo, as que editaremos el


archivo
/etc/fstab
:

pico /etc/fstab
Yloeditaremosconelsiguientetexto:
/dev/sda1

/backup

vfat

defaults

Luego,podemosmontareldispositivo(ytodoslosqueestnenesalista):

mount -a
En este momento ya tenemos el dispositivo USBmontadoypodemosversucontenido. Ahora,
crearemos un script para que haga un respaldo de las bases de datos en el pendrive. Como
queremos que se haga diariamente, lo guardaremos enlacarpetaetc/cron.daily,queesdonde
seejecutanlosscriptdiarios:
pico/etc/cron.daily/mysql_backup.sh
Aadiremosestetexto,queseencargadehacerelbackupdelasbasesdedatos:
#!/bin/sh
now="$(date+'%d_%m_%Y_%H_%M_%S')"
filename="mysql_$now".gz
backupfolder="/backup"
fullpathbackupfile="$backupfolder/$filename"
logfile="$backupfolder/"backup_log_"$(date+'%Y_%m')".txt
echo"mysqldumpstartedat$(date+'%d%m%Y%H:%M:%S')">>
"$logfile"
mysqldumpuser=usuariopassword=contrasenia
defaultcharacterset=utf8alldatabases|gzip>
"$fullpathbackupfile"
echo"mysqldumpfinishedat$(date+'%d%m%Y%H:%M:%S')">>
"$logfile"
echo"*****************">>"$logfile"
exit0
Como se ve en la lnea del mysqldump, se est proporcionando el usuario y contrasea de
mysql, y como no queremos que cualquiera pueda ver esa informacin, vamos a cambiar los
permisosdelarchivo,paraquesolorootpuedaleerlo:

chmod 700 /etc/cron.daily/mysql_backup.sh


Siqueremos,podemosprobarelscriptmanualmenteescribiendolosiguiente:

27de28

RadxaRockPro:LinaroServerManualcaserodeinstalacin

bash /etc/cron.daily/mysql_backup.sh
Lasfuentesqueheseguido:

HowtomountUSBdriveinLinux(ingls)
.
Linuxshellscriptfordatabasebackup(ingls)
.
Manualbsicodecron(espaol)
.

19.1. Usando crontab


Es posible que, como a m, no termine de ejecutarse el script aunquelohayamoscolocadoen
/etc/cron.daily/. As que otra manera de hacer que se ejecute el script es creando un archivo
crontab
especficoparaelusuario,enestecaso,
root
.
Conestecomandopodemosversiyaexisteunarchivoparaelusuario,yverqucontiene:

crontab -l
Paraeditarlo,elcomandoeselsiguiente:

crontab -e
Siguiendo el ejemplo anterior, si queremos que el script se ejecute todos los das a las6dela
maana,aadiramoslasiguientelnea:
*6***bash/etc/cron.daily/mysqlbackup.sh
Losasteriscoscorrespondenalosiguiente
(minhordmesmesdsem
):

min
:minutoalqueseejecuta(0a59).
hor
:horaalaqueseejecuta(0a23).
dmes
:dadelmesenelqueseejecuta.
mes
:elmesenelqueseejecuta.
dsem
:dadelasemanaenlaqueseejecuta(0a7,donde0y7sondomingo).

Fuente:
Cron&crontab,explicados(espaol)
.

28de28

Potrebbero piacerti anche