SysAdmin

Extraer caracteres en bash

Posted on Actualizado enn

Con la instrucción:

var=”Ismael Garcia”

echo ${var:0:6}

Esto imprimirá: Ismael, le estoy diciendo que a partir de la posición 0 haga el recorrido y tome en cuenta 6 posiciones o caracteres y que lo muestre.

A continuación coloco un script para ejemplificar la explicación dada anteriormente:

#! /bin/bash

dias=-7
startdays=0
finishdays=6
declare -a amonths
for((k=startdays; $k<=$finishdays; k++))
do
fecha=$(date +”%d%m%y” -d “$dias days”)
dias=$(($dias+1))
checkmonth=${fecha:2:2}
amonths[$k]=$checkmonth
done

 

Lo que hace este script es guardar en un array(amonths) los números de meses de 7 días hacia atrás a partir de la fecha actual, es decir, hoy es 27/04/2017 recorrerá a partir del 20/04/2017 hacia la fecha actual y guardara en el amonths={04 04 04 04 04 04 04}.

script en github

 

 

Solución a error: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) en CentOS 7 / RHEL 7 / Fedora 22 al usar MariaDB

Posted on

Este tipo de errores aparece  en la mayoría de distribuciones de Linux empresariales.

Como se debe de instalar MariaDB correctamente

  • En CentOS 7/ Red Hat Enterprise Linux 7 / Oracle Linux 7/ Scientific Linux  7:

yum install mariadb mariadb-server

  • En Fedora 22:

dnf install mariadb

  • Se ejecuta el siguiente comando:  mysql_secure_installation

/usr/bin/mysql_secure_installation: línea 379: find_mysql_client: no se encontró la orden

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we’ll need the current
password for the root user.  If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

  • Se presenta el siguiente error:

Enter current password for root (enter for none):
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

  • Se revisa si el servicio MariaDB está corriendo:systemctl status mariadb  

Muestra lo siguiente:

● mariadb.service – MariaDB 10.0 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled) Active: inactive (dead)

  • El servicio está muerto, se enciende de la siguiente manera:

systemctl mariadb start

  • Activando el servicio MariaDB automáticamente

El servicio MariaDB se enciende automáticamente cuando el kernel de Linux se inicia, ademas de agregar el servicio al sistema systemd y service managers:

systemctl enable mariadb

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

  • Se verifica si el servicio se inició

systemctl status mariadb

● mariadb.service – MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since mar 2016-04-19 13:07:55 CDT; 1min 4s ago
Main PID: 2074 (mysqld_safe)
CGroup: /system.slice/mariadb.service
├─2074 /bin/sh /usr/bin/mysqld_safe –basedir=/usr
└─2231 /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib…

abr 19 13:07:52 localhost.localdomain mariadb-prepare-db-dir[1923]: You can find additional inform…:
abr 19 13:07:52 localhost.localdomain mariadb-prepare-db-dir[1923]: http://dev.mysql.com
abr 19 13:07:52 localhost.localdomain mariadb-prepare-db-dir[1923]: Support MariaDB development by…B
abr 19 13:07:52 localhost.localdomain mariadb-prepare-db-dir[1923]: Corporation Ab. You can contac….
abr 19 13:07:52 localhost.localdomain mariadb-prepare-db-dir[1923]: Alternatively consider joining…:
abr 19 13:07:52 localhost.localdomain mariadb-prepare-db-dir[1923]: http://mariadb.com/kb/en/contr…/
abr 19 13:07:52 localhost.localdomain mariadb-wait-ready[2075]: Executing: /usr/libexec/mariadb-wa…4
abr 19 13:07:52 localhost.localdomain mysqld_safe[2074]: Executing: /usr/bin/mysqld_safe –basedi…sr
abr 19 13:07:52 localhost.localdomain mysqld_safe[2074]: 160419 13:07:52 mysqld_safe Logging to ‘…’.
abr 19 13:07:52 localhost.localdomain mysqld_safe[2074]: 160419 13:07:52 mysqld_safe Starting mys…ql
Hint: Some lines were ellipsized, use -l to show in full.

Con esto se ha habilitado el servicio MariaDB

Ahora se configura la contraseña del usuario sin problema: mysql_secure_installation

 

Solución a error de rutas no encontradas en Laravel 5.2

Posted on Actualizado enn

Cuando se navega sobre las distintas direcciones de un proyecto y no encuentra la ruta correspondiente enviando el siguiente error en el navegador, incluso en otros  navegadores simplemente no muestra nada, la siguiente imagen muestra como el navegador no puede encontrar la ruta de login: /blog/public/login

 

rutaswronglaravel

Para solucionar esto se modifica el archivo de configuración del servidor apache, se hace de la siguiente manera:

vim /etc/httpd/conf/httpd.conf

Modificar la siguiente línea de configuración: AllowOverride None 

Se reemplaza None por All

 

# Further relax access to the default document root:
<Directory “/var/www/html”>
#
# Possible values for the Options directive are “None”, “All”,
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that “MultiViews” must be named *explicitly* — “Options All”
# doesn’t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#por default AllowOverride None, cambiar a AllowOverride All

AllowOverride All

#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

 

Se reinicia el servidor apache:

service httpd restart

 

Nota: En la consola del servidor es necesario loguearse como super usuario(su) y usar un editor de texto(vim)