Author Archive Erik Guerrero V.

PorErik Guerrero V.

Tutorial Rápido MongoDB – Parte 3

INDICE

11.-UPDATE
12.-REMOVE
13.-DROP
14.-DROPDATABASE
15.-BETWEEN

Leer más

PorErik Guerrero V.

Tutorial Rápido MongoDB – Parte 2

INDICE

6.-FIND
7.-FINDONE
8.-WHERE
9.-WHERE NOT
10.-SAVE (ACTUALIZAR)

Leer más

PorErik Guerrero V.

Tutorial Rápido MongoDB – Parte 1

¿Que es MongoDB?

MongoDB es una base de datos orientada a documentos. Esto quiere decir que en lugar de guardar los datos en registros, guarda los datos en documentos. Estos documentos son almacenados en BSON, que es una representación binaria de JSON.

Comandos:

INDICE

1.-SHOW DATABASES
2.-USE
3.-SHOW COLLECTIONS
4.-CREAR VARIABLE EN MEMORIA (DOCUMENTO EN MEMORIA)
5.-INSERT

Leer más

PorErik Guerrero V.

Instalar MongoDB en Centos 7

Instalación

1.-Agregamos el repo de MongoDB.

$ sudo nano /etc/yum.repos.d/mongodb-org.repo

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

$ yum repolist

. . .
repo id repo name
base/7/x86_64 CentOS-7 – Base
extras/7/x86_64 CentOS-7 – Extras
mongodb-org-3.2/7/x86_64 MongoDB Repository
updates/7/x86_64 CentOS-7 – Updates
. . .

2.- Instalación en modo superusuario
$ sudo yum install mongodb-org

3.- Iniciando el servicio de MongoDB

$ sudo systemctl start mongod
Nota: mongod process reads the configuration file, /etc/mongod.conf

4.-Reiniciando el servicio
$ sudo systemctl reload mongod
$ sudo systemctl stop mongod
$ sudo tail /var/log/mongodb/mongod.log

MongoDB Shell

$ mongo

Nota:

*MongoDB es una aplicación con hilos. Puede iniciar procesos adicionales para manejar su carga de trabajo. La advertencia establece que, para que MongoDB sea más efectivo, la cantidad de procesos que está autorizado a generar debería ser la mitad de la cantidad de archivos que puede tener abiertos en cualquier momento. Para resolver la advertencia, modifique el valor de límite suave de procesos para mongod editando el archivo 20-nproc.conf

$ sudo vi /etc/security/limits.d/20-nproc.conf

Luego:

$ sudo systemctl restart mongod

Probando
*Verificación de inicio:

$ systemctl is-enabled mongod; echo $?

Output
. . .
enabled
0

En el caso de un daemon desactivado, use la utilidad systemctl para habilitarlo:

sudo systemctl enable mongod

Datos de prueba

$ cd /tmp

$ curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

$ mongoimport –db test –collection restaurants –file /tmp/primer-dataset.json

$ mongo

El shell selecciona la base de datos de prueba por defecto, que es donde importamos nuestros datos. Consulte la colección de restaurantes con el método find () para mostrar una lista de todos los restaurantes en el conjunto de datos. Como la colección contiene más de 25,000 entradas, use el método de límite opcional () para reducir el resultado de la consulta a un número específico. Además, el método pretty () hace que la información sea más legible por humanos con nuevas líneas e indentaciones.

> db.restaurants.find().limit( 1 ).pretty()

Puede seguir usando el conjunto de datos de muestra para familiarizarse con MongoDB o eliminarlo con el método:

db.restaurants.drop ():

PorErik Guerrero V.

Instalar Go en Centos 7

Instalación

$ cd /tmp
$ curl -LO https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz
$ shasum -a 256 go1.7*.tar.gz

Nota: En caso no reconiciera el comando shasum, ejecutar el siguiente comando:

$ yum install perl-Digest-SHA -y

Salida:
d70eadefce8e160638a9a6db97f7192d8463069ab33138893ad3bf31b0650a79 go1.9.linux-amd64.tar.gz

$ sudo tar -C /usr/local -xvzf go1.7.linux-amd64.tar.gz
$ mkdir -p ~/projects/{bin,pkg,src}
$ sudo nano /etc/profile.d/path.sh

Agregar:
export PATH=$PATH:/usr/local/go/bin

$ nano ~/.bash_profile
Agregar:
export GOBIN=$HOME/projects/bin
export GOPATH=$HOME/projects/src

$ source /etc/profile && source ~/.bash_profile

Probando

$ nano ~/projects/src/hello.go

Agregar:
package main
import “fmt”
func main() {
fmt.Printf(“Hello, World!\n”)
}

$ go install $GOPATH/hello.go
$ $GOBIN/hello

Salida:

Hello, World!

PorErik Guerrero V.

Como crear un usuario con todos los privilegios en Oracle

Para crear un usuario en Oracle con todos los privilegios de la forma más simple es ejecutando el siguiente script desde el editor de SQL.

CREATE USER <NOMBRE_DEL_USUARIO> IDENTIFIED BY <PASSWORD_DEL_USUARIO>;

GRANTALL PRIVILEGES TO <NOMBRE_DEL_USUARIO>;

GRANT EXECUTE ANY PROCEDURE TO <NOMBRE_DEL_USUARIO>;
GRANT UNLIMITED TABLESPACE TO <NOMBRE_DEL_USUARIO>;

PorErik Guerrero V.

Descargar una Página Web Completa con Linux (desde la terminal)

Si alguna vez necesita descargar un sitio web completo, quizás para verlo fuera de línea, wget puede hacer
trabajo, por ejemplo:

$ wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --restrict-file-names=windows \
     --domains website.org \
     --no-parent \
         www.web.org/tutorials/html/

Las opciones son:

--recursive: descargar todo el sitio web.

--domains website.org: no sigas enlaces fuera de website.org.

--no-parent: no seguir enlaces fuera del directorio tutorials / html /.

--page-requisites: obtiene todos los elementos que componen la página (imágenes, CSS, etc.).

--html-extension: guarda archivos con la extensión .html.

--convert-links: convierte enlaces para que funcionen localmente, fuera de línea.

--restrict-file-names = windows: modifique los nombres de los archivos para que también funcionen en Windows.

--no-clobber: no sobrescribir ningún archivo existente (utilizado en caso de que la descarga se interrumpa y
reanudado).

Aplicación:

$ cd ~/Descargas
$ mkdir web
$ cd web
$ wget --recursive www.web.org/tutorials/html/

Y eso sería todo.



 
PorErik Guerrero V.

GIT FACIL

GIT fácil, empecemos: (Antes revisar la guía de instalación)

Nota: Para eliminar los archivos .git de un proyecto
$ rm -rf .git

1.-Creamos o nos posicionamos dentro de la carpeta que deseamos iniciar nuestro repositorio.

$ mkdir folder

$ cd folder

2.-Datos del usuario inicial

$ git config –global user.name “root”
$ git config –global user.email “root@email.com”
— Activar los colores para diferenciar los status de los archivos
$ git config –global color.ui true
3.-Iniciar monitoreo de carpeta (en local)

$ git init

4.-Ver status

$ git status

5.-Agregamos un archivo (en nuestra copia local)

$ git add archivo1.css

6.-Agregamos todos los archivos(en nuestra copia local)

$ git add -A //si deseamos solo para un archivo ponemos $ git add <FineName>

7.-Hacemos un Commit (Guardamos los cambios en nuestra copia local)

$ git commit -m “Inicializacion de repositorio”

8.-Log de cambios (nuestra copia local)

$ git log

commit c84bf385f1f1e2b5341a459ee037dc9f5e7aed7b
Author: root <root@folder>
Date: Fri Oct 13 01:24:46 2017 -0500

Segundo cambio al boton

commit 452be706cc014ef32eaf2386b918ca0543f8d69c
Author: root <root@folder>
Date: Fri Oct 13 01:23:33 2017 -0500
9.-Viajando en el tiempo (los codigos que sale en el log example: commit c84bf385f1f1e2b5341a459ee037dc9f5e7aed7b)

*Si deseamos regresamos al commit señalado, ello hace que el archivo regrese con su contenido al punto señalado

$ git checkout 469872c48717238bce453ffa22ac503a5ac04d48

*Si deseamos regresa al ultimo commit

$ git checkout master

 

10.-Eliminar commit

(*)git reset –soft <CODIGO COMMIT> : No toca nuestro codigo solo elimina el commit
$ git log

Resultado :Mostrará 2 commits

Extraemos el codigo (example: 452be706cc014ef32eaf2386b918ca0543f8d69c)

$ git reset –soft 452be706cc014ef32eaf2386b918ca0543f8d69c

$ git log

Resultado: Mostrará solo 1 commits

Eliminará el commit señalado, al hacer nuevamente git status mostrará los archivos que estará nuevamente para hacer commit

# On branch master
# Changes to be committed:
# (use “git reset HEAD <file>…” to unstage)
#
# modified: test.html
#

(*)git reset –hard <CODIGO COMMIT> : toca nuestro codigo elimina todo (codigo + commit)

Ramas (Branch)

En cada rama se guarda commits distintos excepto cuando se crea una nueva rama hereda los commits de la rama actual en que estemos posicionados

1.-Ver en que rama estamos

$ git branch //-a ver todas las ramas // -r ver todas las ramas remotas
2.-Crear una rama

$ git branch <NUEVA_NOMBRE_RAMA> (Ejemplo: git branch test, se creará la rama test)

3.-Ir de rama en rama

$ git checkout <NUEVA_NOMBRE_RAMA> (Ejemplo: git checkout test)

4.- Eliminar rama

$ git branch -d <NOMBRE_RAMA> (Ejemplo: git branch -d test)

5.- Combinar ramas:

Esto si deseamos pasar los cambios de una rama a otra, para ello nos posicionamos en la rama
que va a absorver los cambios(Ejemplo: nos posicionamos en branch master el cual va a absorver lo de test)

* Posicionamos en la Rama que va a absorver los cambios

$ git checkout master
Resultado: Switched to branch ‘master’

* Rama el cual vamos a traer los cambios(commits)
$ git merge test

Resultado:
Updating 108b4e4..fd29486
Fast-forward
index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Observamos  los cambios
$ git logs

PorErik Guerrero V.

SUBIR NUESTRO PROYECTO EN GIT CON BITBUCKET

Para subir nuestro proyecto en git con BitBucket, podemos seguir los siguientes pasos sin complicarnos la vida de la forma más simple.

Nota: Para eliminar los archivos .git de un proyecto (local)
$ rm -rf .git

1.-Creamos el repositorio GIT (local)

$ git init

//creamos .gitignore

$ nano .gitignore

Agregamos:
*.pdf
*.sql

$ git status //ver el estado de los archivos deberia de mostrar que los archivos aun faltan agregar

$ git add -A //Agregar todo los archivos

$ git commit -m “Inicializacion de versionamiento del nuevo repositorio”

$ git status
# On branch master
nothing to commit (working directory clean)
2.-Enlazamos el git remoto de bitbucket (Remoto)

$ git remote add origin https://<MI_USUARIO>@bitbucket.org/<MI_PROYECTO>/<REPOSITORIO>.git

$ git remote -v //Podremos ver las url a donde están apuntando

$ cat .git/config //Otra forma de ver la configuración

Nota: si deseamos eliminar el origen (origin remote url), ejecutamos:

$ git remote rm origin

(y continuamos desde el inicio del paso 2 si es que hemos optado por eliminar y querer volver a especificar el origen) 

Subimos los archivos al git remote

$ git push -u origin master

3.-Subiendo un cambio de local a remoto

Primero guardamos los cambios en local

$ git status
$ git add -A
$ git commit -m “se guarda los cambios”
$ git status

4.- Subimos los cambios al bitbucket

$ git push origin master

5.-Bajando los cambios (otro usuario)

$ git pull origin master

6.-Bajando los cambios (todos los branch’s)

$ git pull

7.-Eliminar branch en el repositorio remoto

$ git push –delete  origin <branch_name>

PorErik Guerrero V.

Centos 7: Instalar y/o Conectarse Por VPN con VPN FortiClient / Crear Bash de conexión

Cuando un usuario necesita trabajar desde un lugar diferente a la oficina principal y requiere acceder a los recursos de la compañía es decir servidores, máquinas virtuales o archivos de compartidos, es necesario que el usuario cuente con un recurso que le permita acceder a la compañía de manera virtual, para ello podemos usar VPN FortiClient de la siguiente manera:

ANTES INSTALAR

$ sudo yum install xterm glibc.i686 libgcc.i686 libstdc++.i686 glibc-devel.i686 gtk2.i686 libSM.i686

LUEGO DESCARGAR

https://www.zen.co.uk/yourhome/site-content/1/knowledgebasedownloads/forticlientsslvpn_linux_4.4.2331.tar.gz

EJECUTAR

$ cd ~/Descargas
$ tar -xzf forticlientsslvpn_linux_4.4.2331.tar.gz
$ cd forticlientsslvpn/64bit/
$ sudo ./forticlientsslvpn

Click en [Aceptar]

Luego nos conectamos con la siguiente linea
$ ./forticlientsslvpn_cli –server EMPRESA_VPN_IP:EMPRESA_VPN_PORT –vpnuser EMPRESA_VPN_USUARIO
Password: EMPRESA_VPN_PASSWORD

=================================================
Nota: podemos crear el siguiente bash de conexion
=================================================

$ sudo nano connvpn.sh

——————————————————————————-
#!/usr/bin/expect
spawn ./forticlientsslvpn_cli –serverEMPRESA_VPN_IP:EMPRESA_VPN_PORT –vpnuserEMPRESA_VPN_USUARIO
expect “Password for VPN:”
send “EMPRESA_VPN_PASSWORD\r”
expect “*(Y/N)”
send “Y\r”
interact

——————————————————————————-

Luego:

$ sudo chmod +x connvpn.sh
$./connvpn.sh

Si hemos seguido los pasos correctamente, ya podremos conectarnos a una vpn.