install docker from

https://docs.docker.com/install/linux/docker-ce/ubuntu/

change directory containers

first create the folder

Terminal:
mkdir /home/$USER/docker-files/

copy all elements to new folder
Terminal:
sudo rsync -aXS /var/lib/docker/. /home/$USER/docker-files/

create a point mount in fstab
Terminal:
/home/$USER/docker-files/ /var/lib/docker none bind 0 0

Now mount of new configuration without reboot.
Terminal:
mount -a


Enabled autostart dockerd
Terminal:
sudo systemctl enable docker

edit file config service docker
Terminal:
nano /etc/systemd/system/multi-user.target.wants/docker.service

change ExecStart
Terminal:
ExecStart=/usr/bin/dockerd -H unix:// -H tcp://0.0.0.0:2375

reload files systemctl
Terminal:
sudo systemctl daemon-reload

add your user to group docker
Terminal:
sudo usermod -aG docker $USER


ready dockerd auto run now

now check the system to install
Terminal:
docker search ubuntu


now install the server
Terminal:
docker pull ubuntu


now run the server
Terminal:
docker run -i -t ubuntu /bin/bash 

show the containers
Terminal:
docker ps -a

copy the id of you container

example:
CONTAINER ID        IMAGE               COMMAND                 CREATED             STATUS                         PORTS               NAMES
6b1b845eae6a        cirel/ubuntu2       "/bin/bash"             2 minutes ago       Exited (0) 2 minutes ago     


descargar imagenes
Terminal:
sudo docker pull debian:jessie

docker images
Terminal:
docker images


Terminal:
docker commit 6b1b845eae6a cirel/ubuntu2


now check the container change, if you can run again you container use
Terminal:
docker run -it cirel/ubuntu2 /bin/bash





Terminal:
docker -it -d 1483112e529b /bin/bash

if want remove container
Terminal:
docker rm ID-CONTAINER



if want remove image
Terminal:
docker rm ID-IMAGE


remove all containers
Terminal:
docker rm $(docker ps -a -q)





problems with locale in container
Terminal:
apt-get install -y locales

Terminal:
dpkg-reconfigure locales

Terminal:
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen && locale-gen

Terminal:
locale-gen en_US.UTF-8












Docker compose

Terminal:
sudo apt-get purge python-pip

Terminal:
sudo wget https://bootstrap.pypa.io/get-pip.py

Terminal:
sudo python get-pip.py

Terminal:
pip uninstall autopep8 pep8

Terminal:
pip install docker-compose

Terminal:
sudo docker-compose up



check files container
Terminal:
docker exec -it container_name bash

docker backup pgsql
Terminal:
docker exec -t your-db-container pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql

or

Terminal:
docker exec -t your-db-container pg_dump --no-owner --no-acl -U drupal drupal > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql

docker restore pgsql
Terminal:
cat your_dump.sql | docker exec -i your-db-container psql -U postgres

docker compose remove container with name image
Terminal:
sudo docker-compose rm postgresql



docker mysql

backup mysql
Terminal:
docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql
Terminal:
docker exec -i mysql-5.6-new /usr/bin/mysqldump -u default --password=default --default-character-set=utf8 --all-databases  --routines  > alldb.sql


restore mysql
Terminal:
cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE
Terminal:
docker exec -i CONTAINER /usr/bin/mysql --default-character-set=utf8 DATABASE -u default --password=default < /tmp/BACKUP_DATA_BASE

Docker restar and show logs container
Terminal:
DOCKER_CONTAINER="nginx" && sudo docker container restart $DOCKER_CONTAINER && sudo docker container logs -f -t --tail 40 $DOCKER_CONTAINER


Docker list containers running
Terminal:
docker ps

Docker list stats containers running
Terminal:
docker stats


keep running docker in command exec
Terminal:
tail -f /dev/null



docker error memory limit

Terminal:
sudo sysctl -w vm.max_map_count=262144

docker remove logs

Terminal:
sudo find /var/lib/docker/containers/ -type f -name "*.log" -delete


https://www.elastic.co/guide/en/elasticsearch/reference/5.0/vm-max-map-count.html#vm-max-map-count



Fuente: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04

http://alexander.holbreich.org/moving-docker-images-different-partition/















Fuente: https://drive.google.com/file/d/0B-2FDrPc5MapX1lqaTRqTzZuRFE/view?usp=sharing



Terminal:
curl wttr.in/caracas



Setup key with:

Terminal:
wget -O - http://deb.opera.com/archive.key | sudo apt-key add -



Setup repository with:


Terminal:
sudo sh -c 'echo "deb http://deb.opera.com/opera-stable/ stable non-free" >> /etc/apt/sources.list.d/opera.list'


Update:

Terminal:
apt-get update


Installl

Terminal:
apt-get install opera




 

Terminal:
sudo apt-add-repository ppa:fish-shell/release-2

Terminal:
sudo apt-get update


Terminal:
sudo apt-get install fish


Terminal:
chsh -s /usr/bin/fish




64 bits




Terminal:
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -



Terminal:
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'



Terminal:
sudo apt-get update



Terminal:
sudo apt-get install google-chrome-stable





si deseas eliminarlo

Terminal:
sudo apt-get purge google-chrome-stable


Terminal:
sudo apt-get autoremove



Fuente:
http://sourcedigit.com/19617-how-to-install-google-chrome-on-ubuntu-16-04/





NPM:


Terminal:
curl -L https://www.npmjs.com/install.sh | sh




NodeJs


Terminal:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -



Terminal:
sudo apt-get install -y nodejs





Fuente:

https://github.com/npm/npm


https://github.com/nodesource/distributions#deb


Bueno partiendo de esta publicación

http://cirelramos.blogspot.com/2015/12/programar-servidor-para-enviar-mensajes.html


dije nada la utilidad que busco es poder ordenarle a mi pc auto-destruyete en 10 segundos jaja...! nah en realidad queria poder sentarme agarrar mi cel y sin conectarme por ssh ni por otro medio solo escribir reinicia o apagar y automaticamente mi computador ejecute la orden, ahora es importante señalar puedes expandir mas las ordenes y no solo limitarlas a reiniciar o apagar, pero vamos, todo informatico sabe que si pruebas apagar y enceder todo se arregla (The IT Crowd) jajaja





Bueno lo primero es descargar los script...


https://drive.google.com/file/d/0B-2FDrPc5MapOUtNWWZwTWlTblk/view?usp=sharing

https://drive.google.com/file/d/0B-2FDrPc5Mapd3dLN3QtcXlEa2c/view?usp=sharing



Copiamos nuestros los archivos al home, y comenzaremos a trabajar con crontab sino conoces de contrab puedes hacerte una idea con esta publicación

http://cirelramos.blogspot.com/2015/03/cron-y-contrab-ejecucion-como-root.html




ejecutamos crontab SIN SER ROOT  primero..


Terminal:
crontab -e



y copiamos las siguientes reglas:


*/10 * * * * /home/server/buscar_telegram.sh >> /home/server/test-busqueda.log 2>&1
#verifica cada 10 minutos si hay algun mensaje que mande ejecutar reinicio o apagado...
@reboot /home/server/buscar_telegram.sh >> /home/server/test-busqueda.log 2>&1
#realiza el mismo procedimiento pero solo al encender el computador

#fin de el texto a copiar



ahora CON ROOT:


Terminal:
sudo su


Terminal:
crontab -e


*/25 * * * * /home/server/scritp-para-telegram/buscar_telegram.sh >> /home/server/test-root.log 2>&1
#chequea y ejecuta si hay una orden de reinicio o apagado

#fin de el texto a copiar





ahora se preguntaran para que ejecutar el mismo script con y sin root, se ejecuta como root para poder reiniciar o apagar el ordenador, como sabemos desde el terminal para ejecutar "reboot" y "shutdown" necesitamos ser root y sin root es para ejecutar telegram leer los mensajes y escribirlos de manera que quede registrado que se reinicio o apago el ordenador..



ejemplo:  si escribo en mi telegram "reiniciar", el crontab cuando este sin root lee el mensaje crea unos archivos log donde cuenta las palabras reiniciar y luego con el root se ejecute y vea que solo hay una palabra "reiniciar" en la converzación ejecutara la orden pero antes creara otro archivo log donde dejara un registro que ejecuto la orden, luego al enceder de nuevo el ordenador verifica el archivo anterior que dice si ejecuto o no la orden y escribe 3 veces mas "reiniciar" en la converzación de esta manera no volvera a reiniciar o apagar el ordenador.



Bueno eso fue todo, si tienen alguna duda dejen un comentario y en cuanto pueda les respondo..









Hace tiempo vi alguien que usaba el whatsapp para un caso similar, aunque no eran mensajes muy informativos a diferencia de el que vamos a programar, pero me quedo la duda de hacer como un script que me enviara información de mi servidor cada cierto tiempo para saber en que estado esta, no me decidi por whatsapp por todo ese lio de estar casado con un solo dispositivo y la inseguridad que maneja en sus converzaciones, Bueno MANOS A LA OBRA!



Esta parte si es un poco copiada de otra web, abajo dejare la fuente....


Instalamos los paquetes esenciales para el funcionamiento y compilación de teleram

Terminal:
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make




Terminal:
sudo apt-get install git









ahora nos descargamos del repositorio de telegram




Terminal:
git clone --recursive https://github.com/vysheng/tg.git && cd tg




ahora configuramos el programa, en el comando anterior ya nos ubica en la carpeta del programa solo tenemos que ejecutar lo siguiente:



Terminal:
./configure


compilamos el programa

Terminal:
make




Listo, ya tenemos todo preparado para comenzar a usar Telegram desde la terminal. Para configurarlo, deberemos colocarnos en el directorio donde compilamos el programa -que no es otro que “/home/usuario/tg”- e iniciar el programa con:




Terminal:
bin/telegram-cli -k tg-server.pub



Donde -k indica dónde se encuentra la llave pública del programa. Además, también podemos añadir -N para ver el número del mensaje. La primera vez que lo ejecutemos, nos aparecerá una pantalla tal que así:





tipean el numero de telefono con codigo de area internacional ejemplo de venezuela

+584264445566


luego les va enviar el sms con el codigo de verificacion y listo finalizado



contact_list: muestra una lista de nuestros contactos que utilizan Telegram. Cada contacto se llama peer.

msg <peer> <mensaje>: envía un mensaje de texto al contacto seleccionado.

 Ejemplo: msg Pepe Hola, ¿qué tal estás? 

En caso de que el nombre del contacto tenga espacios, escribiremos “_” entre palabras.

 Por ejemplo: msg Pepe_Apellido El mensajesend_photo <peer> <ruta de la imagen>: envía la imagen seleccionada al contacto seleccionado.

 Por ejemplo: send_photo Pepe “/home/usuario/Imágenes/imagen.png”

chat_with_peer <peer>: nos abre un chat privado con la persona que hayamos escrito como peer. No confundir con chat encriptado,  Tecleando /quit, salimos de este modo.
 Ejemplo: chat_with_peer Pepe

quit: sale del programa.


lista completa de los comandos útiles, es recomendable visitar el GitHub del autor.



==================================================================



hasta ahora solo instalamos y configuramos el telegram para ser usado en nuestro sistema, necesitamos definir el usuario al que le vamos a enviar el mensaje.



entren a telegram-terminal y ejecuten de nuevo


contact_list


copien bn el nombre del usuario que desean enviar el mensaje


descargamos el script


https://github.com/cirelramos/send-info-server-for-telegram



coloquen el script en el home de su sistema y ejecutamos OJO  siempre tienes que tener en cuenta las variantes de la ruta el usuario que voy a usar se llama SERVER por lo tanto su home es /home/server  ustedes deben tener otro usuario por lo tanto debe ser utilizado con otra direccion...

Terminal:
chmod +x enviar-mensajes-telegram.sh







ahora vamos a editar el usuario que esta en el script en la linea  to="Cirel";  por el usuario que buscaron arriba con el comando contact_list

Terminal:
nano enviar-mensajes-telegram.sh


programamos una tarea en crontab cada 45 minutos

Terminal:
crontab -e

si es la primera vez que abres crontab -e 



te preguntara que editar quieres usar, el mas facil es nano por lo tanto selecciona el 2



sino conoces mucho de crontab  puedes conocer mas aca


http://cirelramos.blogspot.com/2015/03/cron-y-contrab-ejecucion-como-root.html


luego dentro de crontab  agregamos la siguiente linea


*/45 * * * * /home/server/mensaje-inicio-server.sh >> /home/server/test.log 2>&1
#HASTA AQUI


CTRL+O para guardar


CTRL+X para salir


ese comando ejeuctara el script cada 45 minutos y enviara el resultado a un archivo log por si hay errores :D



bueno eso fue todo


Fuente: http://nosolotuitah.es/2015/07/17/instalar-telegram-terminal-ubuntu/



.









como primera opcion podemos hacer descargarnos todo el repo en un zip con el siguiente comando es necesario buscar el token


1 vamos a profile settings




2 hacemos click en account







y ya tendremos nuestro token para ser usado en el siguiente comando


Terminal:
curl -Lk -o cirelramos.zip 'https://gitlab.com/zcqopx/pruebaparablogger/repository/archive.zip?private_token=dasd654a312das'



Terminal:
curl -Lk -o testFonax.md 'https://gitlab.com/zcqopx/preload/raw/master/README.md?private_token=312odajsldkjsa'





como segunda opción podemos usar ssh configuramos los parametros globales ojo si no han creado la llave ssh pueden mirar este tutorial



http://cirelramos.blogspot.com/2015/08/manejar-proyectos-con-gitlab-subir.html


ok, manos a la obra:


Terminal:
git config --global user.name "zcqopx"

Terminal:
git config --global user.email "zcqopx@gmail.com"




 OJO ESTE ES MI GITLAB USTEDES TIENEN OTRO USUARIO Y EMAIL


#entramos en la carpeta del proyecto antes creado

Terminal:
cd existing_folder 

#inicializamos git

Terminal:
git init 


#añadimos el repo

Terminal:
git remote add origin git@gitlab.com:zcqopx/pruebaparablogger.git 



#ahora sincronizamos los archivos locales con el origen del repo y el branch(rama), en este caso solo tengo la rama "master" es lo mas comun

Terminal:
git pull origin


por los pasos anteriores te debes dar cuenta que fue necesario colocar la clave de tu ssh para ejecutar el comando, para evitarnos esto y que se pueda ejecutar el script sin problemas utilizaremos el siguiente comando



Terminal:
ssh-add 



es posible que te de el error:


Could not open a connection to your authentication agent.


entonces ejecutaras


Terminal:
eval `ssh-agent -s`

y de nuevo el comando anterior: "ssh-add"

te pedira de nuevo la contraseña y ya quedara guardada mientras la session este activa :)



este comando por si quieres cancelar el anterior: eval $(ssh-agent)


instalamos keychain

Terminal:
apt-get install keychain






nos logeamos como root


Terminal:
sudo su




agregamos un comando para al entrar a root


Terminal:
nano /root/.bashrc 


y agregar


/usr/bin/keychain $HOME/.ssh/id_rsa
source $HOME/.keychain/$HOSTNAME-sh
#hasta aqui

PRESIONAN CTRL+O para guardar y CTRL+X para salir


salimos de root

Terminal:
exit


entramos de nuevo

Terminal:
sudo su





ahora el script


Terminal:
nano /root/cargarRepo.sh

copiamos lo siguiente

#!/bin/bash
source /root/.keychain/ubuntu-sh
#en linea anterior puede cambiar un poco en el ultimo archivo dependiendo el nombre de la maquina por lo tanto lo mejor es que hagan un
#ls -la /root/.keychain/
# y asi verifiquen el nombre del archivo-sh y remplazar por el nombre adecuado
cd /var/www;
echo "cambio de directorio";
#/usr/bin/git pull -q origin;
git pull origin
git fetch origin;
git checkout -f origin/master;
#hasta aqui




ahora en el contrab


Terminal:
crontab -e



*/1 * * * * /bin/bash -l -c 'sh /root/cargarRepo.sh > /root/cargarRepo-log'
#hasta aqui



con estos comandos estaria completa la actualizacion continua del repositorio, no solamente puede ser un repo o mejor aun una sola rama del mismo repo, cualquier duda comenta y lo mas pronto posible te la resuelvo