Ver tamaño tablespace temporal en Oracle

Problema:

Necesitamos saber el tamaño que hay usado en el tablespace temporal de nuestra base de datos

Solución:

Para saber el espacio usado por el tablespace temp, nos vale con las vistas clásicas de tamaño de tablespace, para ello tenemos que consultar en la vista dba_temp_free_space

Con la siguiente query sabríamos el espacio usado:

SELECT *
FROM   dba_temp_free_space

 

 

Arranca maquina virtual en Esxi 6.x por linea de comandos

Problema:

Hemos perdido la conexión por http o https a nuestro vcenter o esxi y necesitamos arrancar una determinada máquina virtual

Solución:

Nos conectaremos por ssh a la máquina y ejecutamos el siguiente comando

[root@esxi ~]#vim-cmd vmsvc/getallvms | grep bbdd_rrhh
98 bbdd_rrhh [Serv_Pre] bbdd_rrhh/bbdd.vmx rhel7_64Guest vmx-11

[root@esxi ~]#vim-cmd vmsvc/power.getstate 98

Cambiar adaptador de red vmware sin perder mac de e1000 a vmext3

Problema:

Necesitamos cambiar el tipo de adaptador de red en nuestra máquina virtuale, sin perder la mac ni cambiar la tarjeta de red. Esto se podría aplicar en un script para el resto de máquian de nuestra infraesctructura

Solución:

Para ello mediante powershell ejecutaremos la siguiente secuencia de ordenes; primero listamos para ver el tipo y luego lo cambiamos al vmext3

PS C:\Users\joe.dole> Get-Vm vm1 | get-networkadapter

Name                 Type       NetworkName  MacAddress         WakeOnLan
                                                                  Enabled
----                 ----       -----------  ----------         ---------
Network adapter 1    e1000      VM1- Network 00:50:56:ae:75:a8       True


PS C:\Users\joe.dole> get-vm vm1 | Get-NetworkAdapter | set-networkadapter -type vmxnet3

Confirmar
¿Está seguro de que desea realizar esta acción?
Se está realizando la operación "Setting Type: Vmxnet3" en el destino "Network adapter 1".
[S] Sí  [O] Sí a todo  [N] No  [T] No a todo  [U] Suspender  [?] Ayuda (el valor predeterminado es "S"): O

Name                 Type       NetworkName  MacAddress         WakeOnLan
                                                                  Enabled
----                 ----       -----------  ----------         ---------
Network adapter 1    Vmxnet3    VM1- Network 00:50:56:ae:75:a8      True


 

Irule F5 permitir url para rango de ip’s

Problema:

En nuestro F5, necesitamos que para un VirtualServer filtrar una url solo para los administradores de la web, para ello necesitamos crear un datagroup con las Ip’s que necesitamos filtrar y luego la posterior irule

Solución:

Para ello usamos la siguiente irule:

when HTTP_REQUEST { 
    if {![ class match [IP::client_addr] equals data_group_tui]}{ 
        if {[HTTP::path] contains "/admin/*.php" } { 
            HTTP::respond 404 content "PROPERTY OF COMPANY" "Connection" "close"
        }  else {}
    } 
}

 

Vaciar cache NSS para autenticación con LDAP

Problema:

Estamos configurando con authkconfig la autenticación mediante ldap para nuestra servidor ssh y necesitamos borrar los datos de la cache para comprobar, que logueamos de manera correcta

Solución:

Para ello usamos los siguientes comandos:

[root@test01 tmp # sss_cache -E
[root@test01 tmp]# sss_cache -u francisco.perez

En caso de no funcionar podemos borrar la cache completamente

[root@test01 tmp]#systemctl stop sssd
[root@test01 tmp]#rm -rf /var/lib/sss/db/*
[root@test01 tmp]# systemctl restart sssd

 

Montar VFAT en Centos o RHEL

Problema:

Necesitamos montar un disco duro usb con formato fat32 y disklabel dos

 
Disk /dev/sdd: 6001.2 GB, 6001175126016 bytes, 1465130646 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 268431360 bytes
Disk label type: dos
Identificador del disco: 0x00000000

Solución:

Usamos el comando mount con la opción de VFAT, bastante fácil y rápido

[root@test01 tmp]# mount -t vfat /dev/sdd /tmp/disk-lacie01/
[root@test01 tmp]# df -h

S.ficheros                        Tamaño Usados  Disp Uso% Montado en
/dev/mapper/rhel-root                50G    17G   34G  34% /
devtmpfs                             95G      0   95G   0% /dev
tmpfs                                95G   8,0K   95G   1% /dev/shm
tmpfs                                95G   170M   94G   1% /run
tmpfs                                95G      0   95G   0% /sys/fs/cgroup
/dev/sdc2                          1014M   185M  830M  19% /boot
/dev/sdc1                           200M   9,8M  191M   5% /boot/efi
/dev/sdd                            5,5T   256K  5,5T   1% /tmp/disk-lacie01/

 

Dmesg con tiempo en formato humano

Problema:

Queremos ver los logs del comando dmesg en formato humano y asociado a una hora

De esa manera no es legible

 
[   20.597170] IPv6: ADDRCONF(NETDEV_UP): enp2s0f4: link is not ready
[   20.597616] IPv6: ADDRCONF(NETDEV_UP): enp2s0f5: link is not ready
[   20.598192] IPv6: ADDRCONF(NETDEV_UP): enp2s0f6: link is not ready
[   20.598633] IPv6: ADDRCONF(NETDEV_UP): enp2s0f7: link is not ready
[   20.647000] bnx2x 0000:02:00.1 enp2s0f1: NIC Link is Up, 10000 Mbps full duplex, Flow control: ON - receive & transmit
[   20.647020] IPv6: ADDRCONF(NETDEV_CHANGE): enp2s0f1: link becomes ready
[   20.647143] bnx2x 0000:02:00.3 enp2s0f3: NIC Link is Up, 10000 Mbps full duplex, Flow control: ON - receive & transmit
[   20.647168] IPv6: ADDRCONF(NETDEV_CHANGE): enp2s0f3: link becomes ready
[   23.342038] qla2xxx [0000:06:00.0]-8038:1: Cable is unplugged...
[   23.686992] qla2xxx [0000:06:00.1]-8038:2: Cable is unplugged...
[   27.263047] FS-Cache: Loaded
[   27.303111] FS-Cache: Netfs 'nfs' registered for caching
[   67.585000] adrci[12654]: segfault at 40 ip 00002b81c354e2a9 sp 00007ffeac623830 error 4 in libclntsh.so.11.1[2b81c2ebb000+228f000]
[  119.413356] adrci[13547]: segfault at 40 ip 00002ad180e7697d sp 00007fff5fc96f30 error 4 in libclntsh.so.11.1[2ad18076d000+258e000]
[  119.413575] adrci[13548]: segfault at 40 ip 00002b5eaf00097d sp 00007ffedd3e1c20 error 4 in libclntsh.so.11.1[2b5eae8f7000+258e000]

Solución:

Para ello usamos la opción -T

[root@duero ~]# dmesg -T | more
[jue ene 24 21:39:10 2019] Initializing cgroup subsys cpuset
[jue ene 24 21:39:10 2019] Initializing cgroup subsys cpu
[jue ene 24 21:39:10 2019] Initializing cgroup subsys cpuacct
[jue ene 24 21:39:10 2019] Linux version 3.10.0-862.el7.x86_64 (mockbuild@x86-034.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Wed Mar 21 18:14:51 EDT 2018
[jue ene 24 21:39:10 2019] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-862.el7.x86_64 root=/dev/mapper/rhel-root ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet LANG=es_ES.UTF-8
[jue ene 24 21:39:10 2019] e820: BIOS-provided physical RAM map:
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x0000000000000000-0x000000000009f3ff] usable
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x000000000009f400-0x000000000009ffff] reserved
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x0000000000100000-0x00000000df61efff] usable
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x00000000df61f000-0x00000000df62bfff] ACPI data
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x00000000df62c000-0x00000000df62cfff] usable
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x00000000df62d000-0x00000000e3ffffff] reserved
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x00000000fec00000-0x00000000fee0ffff] reserved
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x00000000ff800000-0x00000000ffffffff] reserved
[jue ene 24 21:39:10 2019] BIOS-e820: [mem 0x0000000100000000-0x000000181fffefff] usable
[jue ene 24 21:39:10 2019] NX (Execute Disable) protection: active
[jue ene 24 21:39:10 2019] SMBIOS 2.7 present.
[jue ene 24 21:39:10 2019] DMI: HP ProLiant BL460c G6, BIOS I24 05/05/2011
[jue ene 24 21:39:10 2019] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[jue ene 24 21:39:10 2019] e820: remove [mem 0x000a0000-0x000fffff] usable
[jue ene 24 21:39:10 2019] e820: last_pfn = 0x181ffff max_arch_pfn = 0x400000000
[jue ene 24 21:39:10 2019] MTRR default type: write-back
[jue ene 24 21:39:10 2019] MTRR fixed ranges enabled:
[jue ene 24 21:39:10 2019]   00000-9FFFF write-back
[jue ene 24 21:39:10 2019]   A0000-BFFFF uncachable
[jue ene 24 21:39:10 2019]   C0000-FFFFF write-protect
[jue ene 24 21:39:10 2019] MTRR variable ranges enabled:
[jue ene 24 21:39:10 2019]   0 base 00E0000000 mask FFE0000000 uncachable
[jue ene 24 21:39:10 2019]   1 disabled
[jue ene 24 21:39:10 2019]   2 disabled

 

Dar permisos de lectura a un usuario en todos sus objetos

PROBLEMA:

Hemos creado un usuario en Oracle y queremos darle permisos de SELECT en todos los objetos del esquema. Esto supondria tener que ir uno por uno dando permisos de grant.

Solución:

Para ello lo que vamos ha hacer es con una query sacar un fichero txt con todos los grant que luego ejecutaremos directamente.

Por ejemplo nuestro usuario se llama read_user

CREATE USER read_user IDENTIFIED BY lectura;

A continuación ejecutamos la siguiente consulta

 SELECT 'GRANT SELECT ON MySchema.'||object_Name||' TO read_user;' From dba_objects where object_type = 'TABLE' and owner = 'Usuario_propiertario'

Quedando algo de esta manera

RANT SELECT ON Usuario_propiertario.USERPICKERFILTER TO read_user;
GRANT SELECT ON Usuario_propiertario.USERPICKERFILTERGROUP TO read_user;
GRANT SELECT ON Usuario_propiertario.USERPICKERFILTERROLE TO read_user;
GRANT SELECT ON Usuario_propiertario.PROJECTVERSION TO read_user;
GRANT SELECT ON Usuario_propiertario.VERSIONCONTROL TO read_user;
GRANT SELECT ON Usuario_propiertario.VOTEHISTORY TO read_user;
GRANT SELECT ON Usuario_propiertario.WORKFLOWSCHEME TO read_user;
GRANT SELECT ON Usuario_propiertario.WORKFLOWSCHEMEENTITY TO read_user;
GRANT SELECT ON Usuario_propiertario.JIRAWORKFLOWSTATUSES TO read_user;
GRANT SELECT ON Usuario_propiertario.APP_USER TO read_user;

Con esto nos ahorraríamos bastante tiempo

Comprobar validez clave privada y certificado

Problema:

Queremos comprobar que el certificado y la clave privada que tenemos para firmar documentos es correcta, es decir que la clave privada es el par necesario para nuestro certificado

Solución

Lo que tenemos que hacer es comprobar mediante el comando ssl que son complementarios, para ello la salida de los siguiente comandos debe ser la misma.

[root@test01]# openssl pkey -in example.key -pubout -outform pem | sha256sum 
4e560486b4a4409ddf65af69c964f1f67114a80d0f5fdf342fda7224cda83606  -
[root@test01]# openssl x509 -in example.crt -pubkey -noout -outform pem | sha256sum   
4e560486b4a4409ddf65af69c964f1f67114a80d0f5fdf342fda7224cda83606  -

En el ejemplo de arriba podemos ver que ambas cadenas coinciden

Rescan de discos con iscsi

Problema:

Por problemas de espacio necesitamos hacer un rescan de nuestro disco iscsi.

Solución:

Para ello ejecutamos el siguiente comando

iscsiadm -m node -R

A continuación mostramos la secuencia completa de comandos:

Contenido original del disco

# fdisk -l /dev/sdc

Disk /dev/sdf: 506.09 GB, 98212254720 bytes
64 heads, 32 sectors/track, 30720 cylinders
Units = cylinders of 2048 * 512 = 221048576 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdf           1       30720    31457264   83  Linux

Reescaneo de discos

iscsiadm -m node -R
Rescanning session [sid: 1, target: iqn.1992-08.com.netapp:sn.3f3d51deaa9900a0988def83:vs.90, portal: 172.168.125.221,3260]
Rescanning session [sid: 2, target: iqn.1992-08.com.netapp:sn.3f3d51deaa900a0988def83:vs.90, portal: 172.168.125.220,3260]

Disco duro con espacio aumentado

# fdisk -l /dev/sdj
Disk /dev/sdj: 966.5 GB, 966490324992 bytes, 1887676416 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 65536 bytes