Páginas

28 de febrero de 2018

Manual básico de administración de procesos


Copyright © 2005-2018 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.
Autor: Sergio González D.  
La más simple definición de un proceso podría ser que es una instancia de un programa en ejecución (corriendo). A los procesos frecuentemente se les refiere como tareas. El contexto de un programa que esta en ejecución es lo que se llama un proceso. Este contexto puede ser mas procesos hijos que se hayan generado del principal (proceso padre), los recursos del sistema que este consumiendo, sus atributos de seguridad (tales como su propietario y permisos de archivos asi como roles y demás de SELinux), etc.
Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir que múltiples procesos pueden operar simultáneamente sin interferirse unos con los otros. Cada proceso tiene la "ilusión" que es el único proceso en el sistema y que tiene acceso exclusivo a todos los servicios del sistema operativo.
Programas y procesos son entidades distintas. En un sistema operativo multitarea, múltiples instancias de un programa pueden ejecutarse sumultáneamente. Cada instancia es un proceso separado. Por ejemplo, si cinco usuarios desde equipos diferentes, ejecutan el mismo programa al mismo tiempo, habría cinco instancias del mismo programa, es decir, cinco procesos distintos.
Cada proceso que se inicia es referenciado con un número de identificación único conocido como Process ID PID, que es siempre un entero positivo. Prácticamente todo lo que se está ejecutando en el sistema en cualquier momento es un proceso, incluyendo el shell, el ambiente gráfico que puede tener múltiples procesos, etc. La excepción a lo anterior es el kernel en si, el cual es un conjunto de rutinas que residen en memoria y a los cuales los procesos a través de llamadas al sistema pueden tener acceso.

ps

El comando ps es el que permite informar sobre el estado de los procesos. ps esta basado en el sistema de archivos /proc, es decir, lee directamente la información de los archivos que se encuentran en este directorio. Tiene una gran cantidad de opciones, incluso estas opciones varían dependiendo del estilo en que se use el comando. Estas variaciones sobre el uso de ps son las siguientes:
  • Estilo UNIX, donde las opciones van precedidas por un guión -
  • Estilo BSD, donde las opciones no llevan guión
  • Estilo GNU, donde se utilizan nombres de opciones largas y van precedidas por doble guión --
Sea cual sea el estilo utilizado, dependiendo de las opciones indicadas, varias columnas se mostrarán en el listado de procesos que resulte, estas columnas pueden ser entre muchas otras, las siguientes (y principales):
ColumnaDescripción
p o PIDProcess ID, número único o de identificación del proceso.
P o PPIDParent Process ID, padre del proceso
U o UIDUser ID, usuario propietario del proceso
t o TT o TTYTerminal asociada al proceso, si no hay terminal aparece entonces un '?'
T o TIMETiempo de uso de cpu acumulado por el proceso
c o CMDEl nombre del programa o camndo que inició el proceso
RSSResident Sise, tamaño de la parte residente en memoria en kilobytes
SZ o SIZETamaño virtual de la imagen del proceso
NINice, valor nice (prioridad) del proceso, un número positivo significa menos tiempo de procesador y negativo más tiempo (-19 a 19)
C o PCPUPorcentaje de cpu utilizado por el proceso
STIMEStarting Time, hora de inicio del proceso
S o STATStatus del proceso, estos pueden ser los siguientes
  • R runnable, en ejecución, corriendo o ejecutándose
  • S sleeping, proceso en ejecución pero sin actividad por el momento, o esperando por algún evento para continuar
  • T sTopped, proceso detenido totalmente, pero puede ser reiniciado
  • Z zombie, difunto, proceso que por alguna razón no terminó de manera correcta, no debe haber procesos zombies
  • D uninterruptible sleep, son procesos generalmente asociados a acciones de IO del sistema
  • X dead, muerto, proceso terminado pero que sigue apareciendo, igual que los Z no deberían verse nunca

Las opciones completas de ps las encuentras en las páginas del manual (man ps), o escribiendo en la terminal ps L, y para ver un resumen de sus opciones más comunes usa ps --help:
#> ps --help
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
g  OBSOLETE -- DO NOT USE             -u by effective user ID (supports names)
r  only running processes             U  processes for specified users
x  processes w/o controlling ttys     t  by tty
*********** output format **********  *********** long options ***********
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy
A continuación algunos cuantos ejemplos de ps con la salida recortada.
># ps -e    
  PID TTY          TIME CMD
    1 ?        00:00:01 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0

#> ps -ef    
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 10:12 ?        00:00:01 init [5]
root         2     0  0 10:12 ?        00:00:00 [kthreadd]
...
root      6130  5662  0 10:24 pts/0    00:00:00 su -
root      6134  6130  0 10:24 pts/0    00:00:00 -bash
sergon    6343  5604  0 10:28 ?        00:00:00 kio_file [kdeinit] file /home/sergon/tmp/ksocket-sergon/kl
root      6475  6134  0 10:38 pts/0    00:00:00 ps -ef

#> ps -eF    
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0   412   556   1 16:59 ?        00:00:01 init [5]
root         2     0  0     0     0   1 16:59 ?        00:00:00 [kthreadd]
sergon    8326  8321  0   902  1272   0 17:07 ?        00:00:00 /bin/sh /usr/lib/firefox-2.0.0.8/run-mozilla.sh /usr/lib/f
sergon    8331  8326  4 53856 62604   0 17:07 ?        00:00:50 /usr/lib/firefox-2.0.0.8/mozilla-firefox-bin
sergon    8570  7726  2 15211 37948   0 17:17 ?        00:00:10 quanta

#> ps ax     
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:01 init [5]
    2 ?        S<     0:00 [kthreadd]
    3 ?        S<     0:00 [migration/0]
    4 ?        S<     0:00 [ksoftirqd/0]

#> ps aux   
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   1648   556 ?        Ss   16:59   0:01 init [5]
root         2  0.0  0.0      0     0 ?        S<   16:59   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S<   16:59   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S<   16:59   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   16:59   0:00 [migration/1]

#> ps -eo user,pid,tty   
USER       PID TT
root         1 ?
root         2 ?
sergon    8570 tty 1
root      8876 pts/1

#> ps -eH  
#> ps axf  
#> ps -ec  
#> ps -el  
#> ps L    

pstree

Muestra los procesos en forma de árbol, pstree --help te da las opciones más comunes. Recomiendo uses lo uses con la opción -A y -G para que te un árbol con líneas con líneas estilo ASCII y de terminal VT100 respectivamente, puedes añadir también -u para mostrar entre paréntesis al usuario propietario del proceso:
#> pstree -AGu
init---acpid
     |-atd(daemon)
     |-automount----2*[{automount}]
     |-avahi-daemon(avahi)
     |-beagled(sergon)----7*[{beagled}]
     |-beagled-helper(sergio)----3*[{beagled-helper}]
     |-compiz(sergon)----kde-window-deco
     |-console-kit-dae----61*[{console-kit-dae}]
     |-crond
     |-dbus-daemon(messagebus)
     |-dbus-daemon(sergio)
     |-dbus-launch(sergio)
     |-dcopserver(sergio)
     |-dhclient
     |-gam_server(sergio)
     |-gconfd-2(sergio)
     |-hald(haldaemon)----hald-runner(root)----hald-addon-acpi(haldaemon)
     |                                       |-hald-addon-cpuf
     |                                       |-hald-addon-inpu
     |                                       |-hald-addon-stor
     |-httpd---8*[httpd(apache)]
     |-2*[ifplugd]
     |-ipw3945d
     |-kaccess(sergio)
...

kill

El comando kill, que literalmente quiere decir matar, sirve no solo para matar o terminar procesos sino principalmente para enviar señales (signals) a los procesos. La señal por default (cuando no se indica ninguna es terminar o matar el proceso), y la sintaxis es kill PID, siendo PID el número de ID del proceso. Asi por ejemplo, es posible enviar una señal de STOP al proceso y se detendrá su ejecución, después cuando se quiera mandar una señal de CONTinuar y el proceso continuara desde donde se quedo.
#> kill -l     
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT
17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH
29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN
35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4
39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
La lista previa presenta una lista de todas las posibles señales que pueden mandarse a un proceso y estas pueden ser invocadas a través del número de la señal o de su código, por ejemplo:
#> kill -9 11428        
#> kill -SIGKILL 11428  
Las señales más comunes son la 19 y 20 que detienen momentáneamente la ejecución de un proceso o programa, 18 la continua, 1 que es la señal de hang up que obliga al proceso a releer sus archivos de configuración estando en ejecución y 9 que termina rotundamente un proceso.

killall

El comando killall, que funciona de manera similar a kill, pero con la diferencia de en vez de indicar un PID se indica el nombre del programa, lo que afectará a todos los procesos que tengan ese nombre. Asi por ejemplo si se tienen varias instancias ejecutándose del proxy server squid, con killall squid eliminará todos los procesos que se esten ejecutando con el nombre 'squid'
#> killall -l             
#> killall -HUP httpd     
#> killall -KILL -i squid 

nice

Permite cambiar la prioridad de un proceso. Por defecto, todos los procesos tienen una prioridad igual ante el CPU que es de 0. Con nice es posible iniciar un programa (proceso) con la prioridad modificada, más alta o más baja según se requiera. Las prioridades van de -20 (la más alta) a 19 la más baja. Solo root o el superusuario puede establecer prioridades negativas que son más altas. Con la opción -l de ps es posible observar la columna NI que muestra este valor.
#> nice             
0
#> nice -n -5 comando  

renice

Asi como nice establece la prioridad de un proceso cuando se incia su ejecución, renice permite alterarla en tiempo real, sin necesidad de detener el proceso.
#> nice -n -5 yes   
                    
#> ps -el
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 12826 12208  4  75  -5 -   708 write_ pts/2    00:00:00 yes

#> renice 7 12826
12826: prioridad antigua -5, nueva prioridad 7
#> ps -el
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 12826 12208  4  87   7 -   708 write_ pts/2    00:00:15 yes


nohup y &

Cuando se trata ejecutar procesos en background (segundo plano) se utiliza el comando nohup o el operador & . Aunque realizan una función similar, no son lo mismo.
Si se desea liberar la terminal de un programa que se espera durará un tiempo considerable ejecutándose, entonces se usa . Esto funciona mejor cuando el resultado del proceso no es necesario mandarlo a la salida estándar (stdin), como por ejemplo cuando se ejecuta un respaldo o se abre un programa Xwindow desde la consola o terminal. Para lograr esto basta con escribir el comando en cuestión y agregar al final el símbolo & (ampersand).
$> yes > /dev/null &
$> tar czf respaldo /documentos/* > /dev/null/ &   
$> konqueror & 
Sin embargo lo anterior produce que el padre del proceso PPID que se invocó sea el proceso de la terminal en si, por lo que si cerramos la terminal o salimos de la sesión también se terminaran los procesos hijos que dependan de la terminal, no muy conveniente si se desea que el proceso continué en ejecución.
Para solucionar lo anterior, entonces se usa el comando nohup que permite al igual que '&' mandar el proceso y background y que este quede inmune a los hangups (de ahí su nombre nohup) que es cuando se cuelga o termina la terminal o consola de la cual se ejecutó el proceso.
$> nohup yes > /dev/null &
$> nohup czf respaldo /documentos/* > /dev/null/  
$> nohup konqueror 
Asi se evita que el proceso se "cuelgue" al cerrar la consola.

jobs

Si por ejemplo, se tiene acceso a una única consola o terminal, y se tienen que ejecutar varios comandos que se ejecutarán por largo tiempo, se pueden entonces como ya se vió previamente con nohup y el operador '&' mandarlos a segundo plano o background con el objeto de liberar la terminal y continuar trabajando.
Pero si solo se está en una terminal esto puede ser difícil de controlar, y para eos tenemos el comando jobs que lista los procesos actuales en ejecución:
#> yes > /dev/null &
[1] 26837
#> ls -laR > archivos.txt &
[2] 26854
#> jobs
[1]-  Running                 yes >/dev/null &
[2]+  Running                 ls --color=tty -laR / >archivos.txt &
En el ejemplo previo, se ejecutó el comando yes y se envió a background (&) y el sistema devolvió [1] 26837, indicando asi que se trata del trabajo o de la tarea [1] y su PID, lo mismo con la segunda tarea que es un listado recursivo desde la raíz y enviado a un archivo, esta es la segunda tarea.
Con los comandos fg (foreground) y bg background es posible manipular procesos que esten suspendidos temporalmente, ya sea porque se les envió una señal de suspensión como STOP (20) o porque al estarlos ejecutando se presionó ctrl-Z. Entonces para reanudar su ejecución en primer plano usaríamos fg:
#> jobs
[1]-  Stopped                 yes >/dev/null &
[2]+  Stopped                ls --color=tty -laR / >archivos.txt &
#> fg %1
#> jobs
[1]+  Running                 yes >/dev/null &
[2]-  Stopped                ls --color=tty -laR / >archivos.txt &
Obsérvese como al traer en primer plano al 'job' o proceso 1, este adquirió el símbolo [+] que indica que esta al frente. Lo mismo sería con bg que volvería a reinicar el proceso pero en segundo plano. Y también es posible matar los procesos con kill indicando el número que devuelve jobs: kill %1, terminaría con el proceso en jobs número 1.

top

Una utilería muy usada y muy útil para el monitoreo en tiempo real del estado de los procesos y de otras variantes del sistema es el programa llamado top, se ejecuta desde la línea de comandos, es interactivo y por defecto se actualiza cada 3 segundos.
$> top
top - 13:07:30 up 8 days,  6:44,  4 users,  load average: 0.11, 0.08, 0.08
Tasks: 133 total,   1 running, 131 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:    497356k total,   472352k used,    25004k free,    21500k buffers
Swap:  1156640k total,   257088k used,   899552k free,    60420k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
26156 sergon    15   0  2160 1016  784 R    1  0.2   0:00.93 top
    1 root      15   0  2012  616  584 S    0  0.1   0:00.98 init
    2 root      RT   0     0    0    0 S    0  0.0   0:00.29 migration/0
    3 root      34  19     0    0    0 S    0  0.0   0:00.00 ksoftirqd/0
    4 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0
    5 root      RT   0     0    0    0 S    0  0.0   0:00.38 migration/1
...
Estando adentro de la apliación, presionando 'h' muestra una ayuda de los posibles comandos que permiten configurar top, por ejemplo, al presionar 's' pregunta por el tiempo en segundos de actualización, etc.

Estas son algunas de las herramientas, las más importantes y usadas, para adminsitrar procesos, hay varios programas en ambientes gráficos que en una sola pantalla permiten todo lo anterior y más, y en línea de comandos te recomiendo htop, que es como un top pero en esteroides.

26 de febrero de 2018

Información importante Zebra

netstat -ln |grep zebra              ==>    Para verificar que el zebra este iniciado
service koha-zebra-daemon start/stop/restart    ==>    Iniciar demonios de zebra


RUTA DE ARCHIVOS DE INDEXACION DEL ZEBRA
------------------------------------------------------------------------------------------------------
/var/lib/koha/zebradb                 ==>    Archivos de Indexación (SE DEBE RESPALDAR)



Rutas de Archivos que deben tener permisos Koha:koha
------------------------------------------------------------------------------------------------------
/var/lib/koha/zebradb/                  ==>    También su subdirectorios y archivos
/var/lock/koha/zebradb/                ==>    También su subdirectorios y archivos
/var/log/koha/                    ==>    También su subdirectorios y archivos



** Los Permisos Se Corrigen Con: "chown -R koha:koha nombre* "


LOS ERRORES DE ZEBRA SE VEN EN:
------------------------------------------------------------------------------------------------------
/var/log/koha/koha-zebradaemon.err
/var/log/koha/koha-zebradaemon-output.log


PARA BUSCAR ERRORES DE ARRANQUE Y PROCESOS SE PUEDE USAR:
EN LA CARPETA DE LOG DEL SISTEMA /var/log
------------------------------------------------------------------------------------------------------
# cat syslog | grep zebra

 
PARA CORRER INDEXACION DEL ZEBRA
------------------------------------------------------------------------------------------------------
su koha                        ==> Es necesario hacer este proceso como usuario koha
$ cd /usr/share/koha/bin/migration_tools/    ==> ruta de archivos de migración
$ export KOHA_CONF=/etc/koha/koha-conf.xml    ==> variables de ambiente
$ export PERL5LIB=/usr/share/koha/lib        ==> variables de ambiente
$ export LC_ALL=POSIX                 ==> variables de ambiente
$ perl rebuild_zebra.pl -a -b -r -w -v        ==> ejecuta proceso de indexación (se debe configurar solo parámetros necesarios)

Como eliminar un site de Koha

Removing softlinks Disabling site Koha (Eliminar los enlaces de software del koha) $ sudo a2dissite koha

Removing softlink of KOHA on apache2 (Eliminar los enlaces de software del apache2)
$ sudo rm -vrf /etc/apache2/sites-available/koha
$ sudo rm -rvf /etc/apache2/sites-enabled/koha

Updating the zebra-server links (Hacer actualización de los enlaces del Zebra)
$ sudo update-rc.d -f zebra-server remove
$ sudo update-rc.d -f zebraqueue-daemon remove

Removing zebra-server softlinks (Remover los enlaces de software)
 $ sudo rm -rv /etc/init.d/zebra-server o zebrasrv (si existe)
 $ sudo rm -rv /etc/init.d/zebraqueue-daemonRemoving Koha (si existe)

Directories and files Removing main installation files (Remover los archivos de instalación)
$ sudo rm -rvf /usr/share/koha

Removing log files (Remover los archivos log) 
$ sudo rm -rvf /var/log/koha

Removing shared Library files (Eliminar los archivos compartidos del koha)
$ sudo rm -rvf /var/lib/koha

Removing files from lock (Eliminar los archivos del Lock)
$ sudo rm -rvf /var/lock/koha

Removing files from run (Eliminar los archivos del run)
 $ sudo rm -rvf /var/run/koha

Removing configuration files (Remover los archivos de configuración) $ sudo rm -rvf /etc/koha
su
Dropping database (Borrar la Base de datos)
$ sudo mysql -u root -p
mysql>"drop database koha"; nota se elimina desde el mysql asi da error

Deleting users (Eliminar usuarios)
$ sudo deluser --remove-home kohaadmin Si existe.
$ sudo deluser --remove-home koha Si existe

Deleting spool (borrar respaldos de koha)
$ sudo rm -rvf /var/spool/koha/koha
$ sudo rm -rvf /var/spool/koha/

Laboratorio parte 2

------------------------------------
Crear un usuario llamado koha con privilegios administrativos
# adduser koha
contraseña: 123456

# apt-get install sudo
# nano /etc/sudoers
agregar
koha   ALL=(ALL:ALL) ALL

------------------------------------
Con el usuario Koha. Instalar Apache2
$ sudo apt-get install apache2

PRIMERA PARTE
------------------------------------
1) instalar las dependencias de koha Oldstable que es la versión 17.05.08

$ wget -q -O- https://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -
$ echo 'deb http://debian.koha-community.org/koha 17.05 main' | sudo tee /etc/apt/sources.list.d/koha.list
$ echo 'deb http://debian.koha-community.org/koha oldstable main' | sudo tee /etc/apt/sources.list.d/koha.list

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get clean

------------------------------------
2)Instalación de KOHA
$ sudo apt-get install koha-common

------------------------------------
3) Modificar el  archivo koha-sites.conf
$ sudo nano /etc/koha/koha-sites.conf
Aqui modificar
INTRAPORT="8080"
OPACPORT= "8081"

------------------------------------
4) Instalar manejador de base de datos mariadb o myqlserver

$ sudo apt-get install mysql-server

Cuando me solicita la clave del root del Mysql -> mysql  (utilizo MYSQL es un estandar para hacer pruebas)

------------------------------------
5) Trabajar con el apache2
$ sudo a2enmod rewrite
$ sudo a2enmod cgi
$ sudo service apache2 restart

------------------------------------
6) Crear  la base de datos en MYSQL con Koha lybrary -> nombre de BD
$ sudo koha-create --create-db koha

Revisar en mysql si creo la base de datos.
mysql -u root -p
password:mysql
mysql> show databases;
aparece: koha_koha
quit;

------------------------------------
7) Montar  el módulo de seguridad de MYSQL
$ sudo mysql_secure_installation

Enter password for user root: mysql (puede dejarlo en blanco)
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: n

Change the password for root ? ((Press y|Y for Yes, any other key for No) :
Set root password?=N

change the password for root? n
Remove anonymus users= Y
Disallow root login remotely= Y
Remove test database and access to it?= Y
Reload privileges tables now = Y

------------------------------------
8) Modificar los puertos del apache2

$ sudo nano /etc/apache2/ports.conf
listen 8080
listen 8081

------------------------------------
9) Trabajar con el apache2 de nuevo
$ sudo a2enmod deflate
$ sudo a2ensite koha (base de datos creada)
$ sudo service apache2 restart

------------------------------------
10) trabajar con el archivo /etc/hosts
$ sudo nano /etc/hosts
127.0.0.1 localhost
127.0.1.1 nombre-de-la-maquina   si es red y la ip es 172.16.0.26
172.16.0.26 serweb2 serweb2

------------------------------------
11) CONFIGURAR EL CORREO
 $ sudo koha-email-enable koha (coloque su LIBRARYNAME)

------------------------------------
10) CONFIGURAR Translations

 $ sudo koha-translate --install es-ES

------------------------------------
13) En el browser de la máquina CONFIGURAR interfaz gráfica

127.0.0.1:8080 Ver la instalación de la máquina
172.16.0.26:8080 En el caso que sea remota

user: koha_koha    ----> koha_LIBRARYNAME
Password:(password generado Vaya al paso 14)

------------------------------------
Esto no se que hace? Tratar de traer la base de datos en nuestro caso Koha_koha en mi caso koha_koha
$ sudo xmlstarlet sel -t -v 'yazgfs/config/koha_koha' /etc/koha/sites/koha(coloque aqui su LIBRARYNAME)/koha-conf.xml
koha_libraryname

------------------------------------
14) Copiar la primera contraseña del mysq, la genera el sistema si no la conocemos
ejemplo $ sudo xmlstarlet sel -t -v 'yazgfs/config/pass' /etc/koha/sites/koha (coloque aquí LIBRARYNAME)/koha-conf.xml;echo

$ sudo xmlstarlet sel -t -v 'yazgfs/config/pass' /etc/koha/sites/koha/koha-conf.xml;echo
randompasswordtext  ←--copiar esta clave y pegar en el navegador 

------------------------------------
En la instalación gráfica
Seleccionar el lenguaje es-ES ok
Instalador Web › Verificar dependencias de Perl ok
Configuración de la base de datos ok
Set up database ok
Seleccionar su tipo MARC Marc21 ok
optional todas
menos Sample libraries!!!
Setup basic requeriments

------------------------------------
SEGUNDA PARTE:
Instalar la base de datos de respaldada de la Biblioteca debo borrar la que instale previamente y que funciona sin datos
Para Respaldar la base de datos que acabamo de crear usamos:

#mysqldump -u root -p  koha_koha > respaldo.sql

Debemos borrar la base de datos vieja para poder instalar el respaldo
#mysql -uroot -p
mysql> drop database koha_koha;
mysql> show databases;

mysql> create database koha_koha;
quit;

Como ejemplo Tengo un respaldo base de datos en formato comprimido bz2 mide 4.1 GB
2018-02-14_23-koha.sql.bz2

Instalar el Bunzip

Por via apt
$sudo apt-get update | sudo apt-get install bzip

Sino funciona debemos instalarlo manual...

Tipear  cd ..
# wget bzip.org/1.0.3/bzip2-1.0.3.tar.gz
# tar zxvf bzip2-1.0.3.tar.gz
# cd bzip2-1.0.3
#make install

# bzip2 -d 2018-02-14_23-koha.sql.bz2

Esperar hasta que descomprima espere unos minutos!!!
EL respaldo que debemos descomprimir koha15feb2018.sql mide 8,3 GB.

Para restaurar usamos:
Comando:
# mysql -u root -p  koha_koha < 2018-02-14_23-koha.sql (Nombre de su Respaldo sql)

Esperar hasta que RESTAURE la base de datos espere espere unos minutos!!!
Una vez finalizado esto vaya al Paso 13 instalación de la interfaz gráfica.

------------------------------------
TERCERA PARTE (correr el Zebra una vez instalado)

$ sudo koha-rebuild-zebra -f -a -v -r koha
$ sudo koha-rebuild-zebra -f -b -v -r koha

Esperar hasta que se creen los la base de datos espere espere unos minutos!!!

------------------------------------
CUARTA PARTE (correr el Zebra eventualmente ya esta )

1.- Poner en modo mantenimiento la OPAC del SISBIV Administración -> OPAC -> OpacMaintenance -> Mostrar

2.-Por consola entramos al servidor 
$ sudo ssh root@IP_de_la_maquina contraseña: ********16**

Luego para colocar en mantenimiento la interfaz administrativa del koha
#nano /etc/apache2/ports.conf

//Listen 8080  intranet se desactiva
# service apache2 reload
# service apache2 restart

# cd /usr/share/koha/bin/migration_tools


Como usuario koha no con root!!!!!
$ sudo koha-rebuild-zebra -f -a -b -v -r -w koha  (Rebuid para las autoridades y los biblios pero hace skip del Autorities asi)

$ sudo koha-rebuild-zebra -f -a -v -r -w koha  (Rebuid para las autoridades)
$ sudo koha-rebuild-zebra -f -b -v -r -w koha  (Rebuid para los biblios)

------------------------------------
Si tenemos un error, con variables de entorno copiamos las variables:
export KOHA_CONF=/etc/koha/koha-conf.xml
export PERL5LIB=/usr/share/koha/lib
export LC_ALL=POSIX
------------------------------------

Al finalizar el proceso se coloca nuevamente la línea Listen 8080 al archivo 
$ sudo nano /etc/apache2/ports.conf  y nuevamente
$ sudo service apache2 reload
$ sudo service apache2 restart

Desactivar el mantenimiento la interfaz administrativa del koha

FIN!!!

19 de febrero de 2018

Tips: Más de 400 comandos para GNU/Linux que deberías conocer :D

Me he encontrado en la Wiki de GUTL este completo listado con más de 400 comandos para GNU/Linux con su respectiva explicación, y los quiero compartir con ustedes para complementar este excelente artículo que escribió mi colega para aprender a vivir con la consola.

Información del sistema

  1. arch: mostrar la arquitectura de la máquina (1).
  2. uname -m: mostrar la arquitectura de la máquina (2).
  3. uname -r: mostrar la versión del kernel usado.
  4. dmidecode -q: mostrar los componentes (hardware) del sistema.
  5. hdparm -i /dev/hda: mostrar las características de un disco duro.
  6. hdparm -tT /dev/sda: realizar prueba de lectura en un disco duro.
  7. cat /proc/cpuinfo: mostrar información de la CPU.
  8. cat /proc/interrupts: mostrar las interrupciones.
  9. cat /proc/meminfo: verificar el uso de memoria.
  10. cat /proc/swaps: mostrar ficheros swap.
  11. cat /proc/version: mostrar la versión del kernel.
  12. cat /proc/net/dev: mostrar adaptadores de red y estadísticas.
  13. cat /proc/mounts: mostrar el sistema de ficheros montado.
  14. lspci -tv: mostrar los dispositivos PCI.
  15. lsusb -tv: mostrar los dispositivos USB.
  16. date: mostrar la fecha del sistema.
  17. cal 2011: mostrar el almanaque de 2011.
  18. cal 07 2011: mostrar el almanaque para el mes julio de 2011.
  19. date 041217002011.00: colocar (declarar, ajustar) fecha y hora.
  20. clock -w: guardar los cambios de fecha en la BIOS.

15 de febrero de 2018

Laboratorio! Instalar Koha 17.05

Este documento de pruebas es un laboratorio para instalar el sistema Bibliotecario Koha en su versión 17.05,
La página de donde me estoy guiando es https://wiki.koha-community.org/wiki/Debian

Pasos previos
Tener instalado un servidor debian 9, con ssh, apache2, php, php7.0, php-gd, php7.0-gd, php-pgsql, php7.0-pgsql, php-mysql, php7.0-mysql.

Creación un usuario koha con privilegios administrativos
#useradd koha
asignar password a este usuario *****0*6
Instalar la aplicación sudo :
#apt-get install sudo
#nano /etc/sudoers ---> koha ALL(ALL:ALL) 

Proceso de instalación: 

1) Set up package sources

 $ wget -q -O- https://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -

2) Si escoges una versión  oldstable es la mas vieja estable 17.05 la estable es 17.11 actual para el dia de hoy 15/02/2018.
 $ echo 'deb http://debian.koha-community.org/koha oldstable main' | sudo tee /etc/apt/sources.list.d/koha.list

3) Se seleccionó la version oldstable 17.05:
 $ echo 'deb http://debian.koha-community.org/koha 17.05 main' | sudo tee /etc/apt/sources.list.d/koha.list

4) hacer Update de la list package:
 $ sudo apt-get update

5)Instalar Koha
 $ sudo apt-get install koha-common


Respaldo de las fuentes
 tar xzvf zebradb-sisbiv2018-02-14_23.tar.gz
 Esperar unos 3 minutos

Tengo un respaldo base de datos  en formato comprimido mide 4.1 GB



2018-02-14_23-koha.sql.bz2

Instalar el Bunzip

Por via apt
$sudo apt-get update
| sudo apt-get install bzip2



sino funciona..
Tipear  cd ..
# wget bzip.org/1.0.3/bzip2-1.0.3.tar.gz
# tar zxvf bzip2-1.0.3.tar.gz
# cd bzip2-1.0.3
#make install



# bzip2 -d 2018-02-14_23-koha.sql.bz2

Esperar hasta que descomprima como 10 minutos!!!
 Para Respaldar usamos:

Comando:
mysqldump -u root -p  koha > koha15feb2018.sql

Para restaurar usamos:
Comando:
mysql -u root -p  koha < 2018-02-14_23-koha.sql


otra manera es asi:

(Iniciamos sesion)

mysql -uUSUARIO -pPASSWORD
(usamos la bd donde queremos importar el archivo sql, en mi caso es una tabla)

use nombreBasedatos;

(source es el comando dondo se llamará el archivo como parametro y comenzara hacer todo).


source /home/nombreusuario/archivo.sql

Se resqiuo

Software error:

DBIx::Class::Storage::DBI::_dbh_execute(): Unknown column 'me.defaultreplacecost' in 'field list' at /usr/share/koha/lib/Koha/Objects.pm line 92
For help, please send mail to the webmaster (webmaster@serbdatos2), giving this error message and the time and date of the error.