Oracle Live

14/12/2016

SISTEMAS – LINUX Utilidades

Filed under: Sistemas — mogukiller @ 10:55 am

Conjunto comandos que os resultarán utilies en el día a día.

/*
ADMINISTRACION
ARRANQUE
BACKGROUND Procesos
CHKCONFIG
CHMOD
COMANDOS
CP
CPU
CRONTAB
CUT : Trocea strings
DD
DF
DIFF
Estado Filesystems
FIND
HUGEPAGES
GREP
JOIN
LAST REBOOT
LN
MEMORIA
Memoria del sistema
MORE
MOUNT
MPSTAT
NOHUP
Numero de procesadores
RENAME
PWDX
RSYNC
SAR
SCP
SED
SORT
SPLIT
SSH
UNIQ
TECLAS RAPIDAS
TIME
Timeout inactividad
Top CPU
Top Memory
Top SWAP
UUENCODE / UUDECODE
VARIABLES DE ENTORNO
VMSTAT
XARGS
XXD --> Pasa de binario (.gz) a hexadecimal
*/

-- Informacion de cuanto lleva el sistema encendido

>uptime
 09:36:29 up 13 days, 13:08, 96 users,  load average: 0.16, 0.06, 0.01

-- Para ver los mensajes del sistema.

>su -
>tail -500 /var/log/menssages

-- Numero y estadisticas de los procesadores

mpstat -P ALL

-- Tamaño del directorio

du -sc rman_backupL0_2012-05-31_021001

-- Para saber el tamaño del PAGE_SIZE

getconf PAGESIZE

-- Releer tabla particiones

partprobe

----------------------------------------------
LN
----------------------------------------------
-- Crear enlace dinamico

ln -s [RURA_AL_SCRIPT] ./[Nombre_del_Acceso_Directo]

Por lo tanto como ejemplo, si usted desea crear un enlace simbólico “httplogs” en micarpeta para que apunte a la carpeta  /usr/local/apache/logs  entonces se deberá usar los comandos de abajo:

ln -s /usr/local/apache/logs /home/micarpeta/httplogs

NOTA: Si no pones el nombre del enlace directo te crea un enlace con el mismo nombre que se indica.


-- VI - ERROR Terminal too wide

export EDITOR=vi
stty columns 120

-- Velocidad de disco.

iostat -x 5 | egrep -v "0.00$|^dm-|^cciss"

-----------------------------------------
-- CUT
-----------------------------------------
-- Sintaxis

cut -f numerodecampo [-d"delimitador"] fichero

NOTAS:
- Por defecto el delimitador es el tabulador
-  N	La N-esima columna 
-  N-      De la N-esima al final
-  N-M   Entre N y M
  -M     Desde el principio hasta M

-- Ejemplos

$ echo "Luis:Juan:Pedro:Miguel" | cut -d":" -f 2
Juan
$ echo "Luis:Juan:Pedro:Miguel" | cut -d":" -f 2-3
Juan:Pedro
$ echo "Luis:Juan:Pedro:Miguel" | cut -d":" -f 2-
Juan:Pedro:Miguel
$ echo "Luis:Juan:Pedro:Miguel" | cut -d":" -f -2
Luis:Juan

--------------------------------------------------
-- VARIABLES DE ENTORNO
--------------------------------------------------
-- Visualiza las variables de entrono

env 

-- Parametros de entrada

$1 ..$n

-- PID del proceso

$$

-----------------------------------------------
-- NOHUP
-----------------------------------------------
1. Redireccionamos la salida (no crea nohup.out)

nohup comando >salida.out &

-----------------------------------------------
-- SORT
-----------------------------------------------

OPCIONES:
-n ordenamos de forma numerica
-r ordena de mayor a menor
-k numero: indicamos la columna por la que queremos ordenar.
-t= separador
-u : elimina las lineas repetidas

1. Ordena varios ficheros y guarda la salida en un tercero

sort fichero1 fichero2 > fichero3

2. Ordena un fichero y deja la salida en el mismo fichero

sort -o f1 f1

3. Eliminar las lineas repetidas de un fichero

sort -o fichero -u fichero

sort -n -r -k 
-----------------------------------------------
-- FIND
-----------------------------------------------

find . -name "*" -awrrpt_2mtime -4 -exec rm -f {} \;

- n    : Exactamente n unidades
- +n	 : Mas de n unidades
- -n	 : Menos de n unidades
 
-mtime : ficheros modificados en  horas
-atime : ficheros accedidos en  n horas

- Borra aquellos ficheros que han sido modificados en las ultimas 4 dias.

Ejemplos:

find $ARCHIVE_DEST -name '*.arc' ! -newer $tmp_touch -exec rm -f {} \; -print	--> Borra los archiver mas antiguos que un fichero dado

-----------------------------------------
-- DIFF
-----------------------------------------

-- Sintaxis

diff [opciones] [fichero1] [fichero2] 

-- Opciones
-w : obvia los espacios en blanco
-q : no nos muestra las diferencias, solo si son iguales o no
-y : diferencias en dos columnas

-----------------------------------------
-- XARGS
-----------------------------------------

ls | xargs -t -i mv {} {}.bak

echo 1 2 3 4 | xargs -n 2
12
34

find . -name "*.arc" | xargs -I {} mv {} {}_bck

-t : visualiza el comando antes de ejecutarlo
-n : indica el numero maximo de argumentos que se le pasa al comando
-0 : descarta los espacios en blanco
{} : muestra la lista de arguimentos
-I : indicamos cual es el comodin de la lista de comandos

-----------------------------------------
-- MORE
-----------------------------------------

<space>                 Display next k lines of text [current screen size]
ctrl-B	            Skip backwards k screenfuls of text [1]
=                       Display current line number
/<regular expression>   Search for kth occurrence of regular expression [1]
n                       Search for kth occurrence of last r.e [1]
!<cmd> or :!<cmd>       Execute <cmd> in a subshell
v                       Start up /usr/bin/vi at current line

-----------------------------------------
-- DF
-----------------------------------------

NOTA: Tamaño de los filesystems

df -h		: Lectura humana de los valores
df -T		: Indica de que tipo es el filesystem ext3, ocfs2, raw

-----------------------------------------
-- MOUNT
-----------------------------------------

/etc/fstab		Muestra todos los filesystems que se van a montar en el inicio
mount:		Informa de todas las unidades que hay montadas
mount -a		Monta todo lo que se indica en /etc/fstab

-----------------------------------------
-- MOUNT
-----------------------------------------
stty cols 200

-----------------------------------------
-- DD
-----------------------------------------

dd if=fich1 of=fich2 bs=4k		Copia fich1 a fich2 con un tamaño de bloque de 4kbytes.
dd if=/dev/zero of=/dev/raw/raw3		Borramos una particion


-----------------------------------------
-- WHO
-----------------------------------------

> who
oracle   pts/1        2013-01-22 12:11 (192.163.1.1)
oracle   pts/9        2013-01-22 13:07 (192.163.1.1)
oracle   pts/11       2013-01-22 19:19 (192.163.1.1)
oracle   pts/13       2013-01-23 10:23 (192.163.1.1)
oracle   pts/14       2013-01-23 10:57 (192.163.1.1)

Nos dice que usuarios estan conectados

> w
 11:41:18 up 1 day, 17:32,  5 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
oracle   pts/1    192.163.1.1      Tue12    0.00s  0.80s  0.00s w
oracle   pts/9    192.163.1.1      Tue13    1:37m  0.20s  0.20s -bash
oracle   pts/11   192.163.1.1      Tue19   15:57m  0.14s  0.14s -bash
oracle   pts/13   192.163.1.1      10:23   43:59   0.14s  0.14s -bash
oracle   pts/14   192.163.1.1      10:57   40:40   0.92s  0.16s /bin/ksh ./Manager_FileSystem.ks

-------------------------------
CRONTAB
-------------------------------

crontab -l
cronread

-------------------------------
SCP
-------------------------------

-- Envio al N2 de un directorio entero
scp -pr rman_2013-02-03_010210 bebd6:$PWD/

-------------------------------
RSYNC
-------------------------------

-- Hacemos el backup
rsync -avxr /recovery_area/PRUEBA/backup/diario/rman_2013-04-29_124657 oracle@mogubedb11n1:/recovery_area/PRUEBA/backup/diario
rsync -aRvxr rman_2013-04-29_124657 oracle@mogubedb11n1:$PWD/
-R:	 utilizamos rutas relativas
$PWD:	 si las rutas coinciden	

-- Comparamos dos backups
rsync -avxr --dry-run rman_2013-04-29_124657 oracle@mogubedb11n1:/recovery_area/PRUEBA/backup/diario
--dry-run:	unicamente indica lo que va a hacer

--------------------------------------------------------------
UUENCODE / UUDECODE
--------------------------------------------------------------

uuencode fichero_origen fichero_nombre >fichero_salida.uue

Ejemplo
uuencode awrrpt_rac.tar.gzip awrrpt_rac.tar.gzip >awrrpt_rac.tar.gzip.uue

uudecode fichero_salida.uue

--------------------------------------------------------------
Timeout inactividad
--------------------------------------------------------------
export TMOUT=36000

--------------------------------------------------------------
GREP
--------------------------------------------------------------

-- Filtra lineas en blanco

grep -v "#" /etc/sysctl.conf | grep -v "^$"


--------------------------------------------------------------
SSH
--------------------------------------------------------------

Casos 1:

oracle@pansl1dbebd27: oracle > ssh pansl1dbebd25
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

vi $HOME/.ssh/ssh_known_hosts

y eliminas la línea que corresponda con la IP del servidor al que quieres saltar, en este caso el pansl1dbebd25 (192.168.12.11)

ssh-keyscan -t rsa pansl1dbebd26 >> $HOME/.ssh/known_hosts

---------------------------------
LAST REBOOT
---------------------------------

last reboot 		--> Muestra un historico de los reboot de la maquina

reboot   system boot  2.6.32-100.26.2. Tue Apr 16 16:25         (13+16:35)  
reboot   system boot  2.6.32-100.26.2. Sun Apr 14 19:25         (1+20:58)   
reboot   system boot  2.6.32-100.26.2. Fri Apr 12 11:34         (4+04:49)   
reboot   system boot  2.6.32-100.26.2. Fri Apr 12 09:02          (02:30)    
reboot   system boot  2.6.32-100.26.2. Fri Apr 12 08:52          (00:08)    
reboot   system boot  2.6.32-100.26.2. Thu Mar 21 10:49         (21+21:11)  
reboot   system boot  2.6.32-100.26.2. Thu Mar 21 08:55          (01:51)    
reboot   system boot  2.6.32-100.26.2. Thu Mar 21 08:20          (00:27)    
reboot   system boot  2.6.32-100.26.2. Wed Mar 20 14:03          (00:01)    
reboot   system boot  2.6.32-100.26.2. Fri Feb 15 12:34         (33+01:07)  
reboot   system boot  2.6.32-100.26.2. Thu Jan 24 14:26         (54+23:16)  
reboot   system boot  2.6.32-100.26.2. Thu Jan 24 13:59          (00:25)    
reboot   system boot  2.6.32-100.26.2. Thu Jan 24 12:44          (01:13)    
reboot   system boot  2.6.32-100.26.2. Thu Jan 24 11:23          (01:20)    
reboot   system boot  2.6.32-100.26.2. Wed Nov 21 11:54         (58+08:12)  
reboot   system boot  2.6.32-100.26.2. Mon Nov  5 12:09          (04:02)    
reboot   system boot  2.6.32-100.26.2. Mon Nov  5 11:52          (00:14)    
reboot   system boot  2.6.32-100.26.2. Thu May 10 16:28         (54+17:04)  
reboot   system boot  2.6.32-100.26.2. Tue Apr 24 17:48          (00:17)    
reboot   system boot  2.6.32-100.26.2. Tue Apr 24 11:00          (06:45)    
reboot   system boot  2.6.32-100.26.2. Tue Apr 24 10:41          (00:06)    
reboot   system boot  2.6.32-100.26.2. Tue Apr 24 08:39          (02:01)  


MEMORIA

MEMORIA DEL SISTEMA
grep MemTotal  /proc/meminfo

Top Memory
ps -eo pmem,pid,user,tty,time,args | sort -n -k 1 -r | head -25

CPU
TOP CPU
ps -eo pcpu,pid,user,tty,time,args | sort -n -k 1 -r | head -25

Numero de procesadores
grep processor /proc/cpuinfo | tail -1 | cut -d: -f 2 | awk '{print "Procesadores: " $1+1}'

Top SWAP
ps -eo vsz,rss,pid,user,tty,args | sort -n -k 1 -r | head

Para saber que procesos swapean

#!/bin/bash
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
PID=`echo $DIR | cut -d / -f 3`
PROGNAME=`ps -p $PID -o comm --no-headers`
for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
do
let SUM=$SUM+$SWAP
done
echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
let OVERALL=$OVERALL+$SUM
SUM=0

done
echo "Overall swap used: $OVERALL"

Estado Filesystems
df -H -P | awk '{printf ("%-40s%-8s%-8s%-8s%-8s\n",$6,$2,$3,$4,$5)}' | grep -v Mounted | sort -n -r -k 5

SAR

-- Parametros interesantes

-s hh:mm:ss		--> Nos muestra el comienzo del intervalo
-e hh:mm:ss		--> Nos muestra el final del intervalo
-i <segundos>	--> Aumenta la granularidad de las muestras.
-f <fichero>	--> Indicamos el fichero de donde tiene que sacar las muestras.

-- Informacion del estado de las cpus

sar -u 1 10 

12:24:50 PM       CPU     %user     %nice   %system   %iowait     %idle
12:24:51 PM       all      0.00      0.00      0.06      0.00     99.94
12:24:52 PM       all      0.06      0.00      0.19      0.69     99.06
12:24:53 PM       all      0.00      0.00      0.19      0.37     99.44
12:24:54 PM       all      0.06      0.00      0.12      0.00     99.81
12:24:55 PM       all      0.06      0.00      0.06      0.00     99.88
12:24:56 PM       all      0.00      0.00      0.12      0.00     99.88
12:24:57 PM       all      0.00      0.00      0.12      0.12     99.75

-- Información que la obtenemos de un fichero del dia 10

sar -u -f /var/log/sa/sa10

-- Para todos los procesadores

sar -P ALL

-- Para obtener estadisticas de memoria

sar -r 1 3

12:39:21 PM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
12:39:22 PM    123644  65880336     99.81    419812  17917280  16776136      1072      0.01         0
12:39:23 PM    123580  65880400     99.81    419812  17917280  16776136      1072      0.01         0
12:39:24 PM    123020  65880960     99.81    419820  17917272  16776136      1072      0.01         0
Average:       123415  65880565     99.81    419815  17917277  16776136      1072      0.01         0

-- Nos da estadisticas del trafico de red

sar -n DEV|EDEV	

04:30:01        IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
04:35:01           lo     18.76     18.76   1343.47   1343.47      0.00      0.00      0.00
04:35:01         eth0     92.92     98.70  29195.63  33568.12      0.00      0.00      0.00
04:35:01         eth1      0.51      0.00     35.50      0.00      0.00      0.00      0.00
04:35:01         eth2   3947.77   3507.17 831160.38 1107497.44      0.00      0.00      0.00
04:35:01         eth3      0.97      0.00     57.97      0.00      0.00      0.00      0.00
04:35:01         eth4    327.66    659.20  21638.16 999954.38      0.00      0.00      0.00
04:35:01         eth5      0.02      0.00      1.40      0.00      0.00      0.00      0.00
04:35:01         sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00


MPSTAT

mogubedb11n1(oracle)- oracle > mpstat 1
Linux 2.6.32-100.26.2.el5 (mogubedb11n1)        04/30/13

09:08:12     CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
09:08:13     all    0.00    0.00    1.01    0.00    0.00    0.00    0.00   98.99    116.16
09:08:14     all    0.99    0.00    0.99    0.00    0.99    0.00    0.00   97.03     84.16
09:08:15     all    4.00    0.00    1.00    0.00    0.00    0.00    0.00   95.00    156.00
09:08:16     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00     82.83
09:08:17     all    1.00    0.00    1.00    0.00    1.00    0.00    0.00   97.00    121.00
09:08:18     all    1.00    0.00    1.00    0.00    0.00    0.00    0.00   98.00    101.00
09:08:19     all    3.00    0.00    1.00    0.00    1.00    0.00    0.00   95.00    140.00
09:08:20     all    0.99    0.00    0.99    0.00    0.00    0.99    0.00   97.03    112.87

%user: % utilizado por las aplicaciones de usuario
%nice: % utilizado por aplicaciones de usuario en nice priority
%sys:	 % utilizado por el sistema
%iowait:% tiempo de idle de la CPU cuando el sistema esta esperando por una peticion I/O
%irq:	 % empleado por es sistema en atender peticiones de HW
%soft: % empleado por el sistema en atender interrupciones de SW
%steal:% tiempo empleado en el sistema con varias CPUs en servir a otras CPUs
%idle: % tiempmo que no hace nada

mpstat -P ALL 	--> Saca informacion de todos los procesadores

VMSTAT

mogubedb11n1(oracle)- oracle > vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  52184 466656 175364 1050608    4    5   149   148   23   60  2  1 95  2  0
 0  0  52184 466648 175364 1050640    0    0   112    49  139  161  2  1 97  0  0
 0  0  52184 466648 175364 1050640    0    0     0    64   91  120  1  1 98  0  0
 0  0  52184 466648 175364 1050640    0    0    64    49  111  163  0  1 99  0  0


Procs
r: The number of processes waiting for run time.  
b: The number of processes in uninterruptable sleep.
w: The number of processes swapped out but otherwise runnable.  This 
   field is calculated, but Linux never desperation swaps.

Memory
swpd: the amount of virtual memory used (kB).
free: the amount of idle memory (kB).
buff: the amount of memory used as buffers (kB).

   

Swap
si: Amount of memory swapped in from disk (kB/s).
so: Amount of memory swapped to disk (kB/s).

   

IO
bi: Blocks sent to a block device (blocks/s).
bo: Blocks received from a block device (blocks/s).

   

System
in: The number of interrupts per second, including the clock.
cs: The number of context switches per second.

These are percentages of total CPU time.
us: user time
sy: system time
id: idle time 

CHKCONFIG

su -
chkconfig --list		--> Muestra los scripts configurados
chkconfig <servicio> on|off --> Lo habilita o lo deshabilita

BACKGROUND Procesos

COMANDOS: 
nohup		--> hace mi proceso independiente de mi terminal
&		--> me manda mi proceso a background
bg		--> Arranca un porceso que este en background
fg		--> trae mi proceso de background
jobs -l	--> lista los jobs que tengo en background y su estado
Ctr+Z		--> Para un proceso y lo lleva a background
wait		--> Espera hasta que terminen todos los procesos en background
EJEMPLO
1. Lanzamos un proceso en nohup
2. Ctr+Z para pararlo y llevarlo a BG
[1]+  Stopped                 nohup rsync -aRx rman_2013-04-29_124657 oracle@mogubedb11n1:$PWD/
3. bg 1	--> Arrancamos el proceso en background
[1]+ 14257 Running                 nohup rsync -aRx rman_2013-04-29_124657 oracle@mogubedb11n1:$PWD/ &	
4. fg 1	--> Lo volvemos a traer al plano principal	

CP

- copia file22.txt a file22.backup

cp file22.{txt,backup}


TECLAS RAPIDAS

Ctl+A		--> Mueve el cursor al principio de la linea
Ctl+B		--> Mueve un cursor hacia atras
Ctl+C		--> Termina el proceso en foreground
Ctl+D		--> logout
Ctl+E		--> Mueve el cursor al final de la linea
Ctl+H		--> Borra el caracter que ocupa el cursor
Ctl+L		--> Equivalente a clear
Ctl+R		--> Abre la busqueda en el historico
Ctl+U		--> Borra desde donde esta el cursor hacia la izquierda
Ctl+Z		--> Para un script en foreground

set -o vi
Esc k

UNIQ

Lo utilizamos para eliminar las filas iguales de un fichero

cat fichero1.txt fichero2.txt | sort | uniq >salida.txt

1.- Concatenamos los dos ficheros
2.- Ordenamos las lineas
3.- Eliminamos las lineas iguales

JOIN

cat >data1.txt
1       luismi  
2       miguel
3       juan
4       manuel
5       pedro

cat >data2.txt
1       100
2       200
3       400
4       500
5       600

join data3.txt data2.txt
1 luismi 100
2 miguel 200
3 juan 400
4 manuel 500
5 pedro 600


XXD --> Pasa de binario (.gz) a hexadecimal

BIN -> HEX
----------
xxd -ps -c 60 awrrpt_1_3956_3958.html.gz

HEX -> BIN
----------
xxd -p -r awrrpt_1_3956_3958.html.gz.hex > awrrpt_1_3956_3958.html.gz


TIME

PPGA:/splex/sp2120ga/vardata/2120/archives> time cp arc2635135_1_488401206.log dummy

real    0m27.45s
user    0m0.01s
sys     0m4.45s

CHMOD

u	user
g	group
o	others
a	all

+	añadimos permiso
-	quitamos permiso

r
w
x

chmod u+x -- Privilegios ejecucion al usuario
chmod a-r -- Quitamos privilegios de lectura a todos

SED

sed 's/oldstring/newstring/g' <ficheentrada >fichsalida

PWDX

20140423_104630 oracle@mir3egsdp1 11.2.0.3  $ pwdx 23619
23619: /export/oracle/lmds

PGREP

pgrep sqlplus

23619
24539

ARRANQUE

-- Durante el proceso de arranque si tuviesemos varios kernel nos daria a elegir con cual queremos arrancar. Podemos editar el timpo de visualizacion y el default en el fichero:

/etc/grub.conf

-- Editamos el modo de arranque en el fichero:

/etc/inittab

3: Modo consola
5: Modo grafico

Del modo consola pasamos al modo grafico haciendo:

init 5

Podemos hacer un reboot de la maquina haciendo:

init 6

-----------------------------------
-- SPLIT
-----------------------------------
'nota: Divide un binario en tamaño de 2.5G con el prefijo salida'

split -b 2500000000 exp_qwempri1_certi.dmp.gz salida
cat salida >exp_qwempri1_certi.dmp.gz

----------------------------------
-- HUGEPAGES
----------------------------------
$ grep Huge /proc/meminfo
/*
HugePages_Total:   70961
HugePages_Free:    41138
HugePages_Rsvd:     7145
HugePages_Surp:        0
Hugepagesize:       2048 kB
*/

-----------------------------------
-- RENAME
-----------------------------------
'nota: Util para renombrar todas las extensiones de un fichero'

$ rename .sql .txt *.sql

Anuncios

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: