En mi caso funcionó esta herramienta para recuperar imágenes y videos de una SD card que se había malogrado por alguna razón, por suerte no al grado de perder la información.
Así instalamos desde Linux (Ubuntu):
sudo apt-get install testdisk
Y así ejecutamos:
sudo photorec
Nos lleva por varios menús en modo texto para indicar partición y destino donde se guardarán los archivos recuperados (recuerda que este destino no debe estar en la misma partición de donde se piensa recuperar, un dato básico pero a veces se pasa por alto... ;) )
A mi me funcionó bastante bien... espero que ustedes si se ven en la necesidad de usarlo también les sea de utilidad en alguna desesperada situación.
Acá las entradas donde yo saqué la información, bastante explicados.
Entrada 1
Entrada 2
Hasta la vista Javer@s!!
Mostrando entradas con la etiqueta bash. Mostrar todas las entradas
Mostrando entradas con la etiqueta bash. Mostrar todas las entradas
domingo, 6 de agosto de 2017
miércoles, 25 de marzo de 2015
Dando color y vida al prompt de consola linux
Comparto mi archivo .bashrc ubicado en mi directorio home de linux /home/vagabundo/ o ~/ con la configuración para mostrar colorcitos en la consola, sobre todo para todos aquellos que como yo la utilizamos como herramienta diaria linuxera:
_______________________________________ archivo .bashrc____
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Alias definitions.
# You may want to put all your additions into a separate file like
# .bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
# . /etc/bash_completion
#fi
#Muestra el Fortune del dia
fortune
Para más información de como personalizar las opciones de color aquí una página muy interesante e ilustrativa...
Aquí para acceder al enlace
¡A darle color a la vida javer@s!
_______________________________________ archivo .bashrc____
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Alias definitions.
# You may want to put all your additions into a separate file like
# .bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
# . /etc/bash_completion
#fi
#Muestra el Fortune del dia
fortune
________________________________________
Aquí para acceder al enlace
¡A darle color a la vida javer@s!
miércoles, 18 de marzo de 2015
Creando usuario en Linux y agregándolo a sudoers rápidamente
Rápidamente aqui los pasos para crear un usuario y agregarlo al grupo de sudoers en linux:
1. Crea su grupo
groupadd nuevogrupo
2. Crear usuario con opciones básicas:
useradd -g nuevogrupo -d /home/nuevousuario -m -s /bin/bash nuevousuario
3. Cambiar password
passwd nuevousuario
4. Agregar a la lista de sudoers. Para ello se debe modificar el archivo /etc/sudoers y agregar la linea del usuario en la sección siguiente:
## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
##Nuevo usuario con todos los permisos sudo
1. Crea su grupo
groupadd nuevogrupo
2. Crear usuario con opciones básicas:
useradd -g nuevogrupo -d /home/nuevousuario -m -s /bin/bash nuevousuario
3. Cambiar password
passwd nuevousuario
4. Agregar a la lista de sudoers. Para ello se debe modificar el archivo /etc/sudoers y agregar la linea del usuario en la sección siguiente:
## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
##Nuevo usuario con todos los permisos sudo
nuevousuario ALL=(ALL) ALL
Listo, reiniciamos nuestra sesión y todo debe estar de lujo y en orden.
¡Saludos Javer@s!
martes, 10 de marzo de 2015
Acelerar importación de Base de Datos MySQL desde consola
HOla!
Esta ocasión platico lo que me pasó. Tratando de cargar una base de datos bastante grande (una tabla cuyo sql era de aprox 6GB), me encontré con la dificultad de que al importarlo a través de la linea de comandos de MySQL tardaba un demonial, más de lo que podría suponerse, tardando 20 segundos o más por cada 1000 registros (hablábamos de unos 5 millones de registros).
Me di cuenta que el dump lo habían generado desde una útil herramienta llamada SQLyog y que mi compañero desde su máquina haciendo el import con la misma herramienta tardaba muuuucho menos que yo.
Entonces vi que el archivo sql del dump no contenía ninguna clase de comentario ni directiva extra más que la carga de los datos, es decir, el create de la tabla y los inserts, ¡Ah claro! y que había sido hecho por SQLyog.
Encontré una página con algunas estrategias para acelerar los procesos de dump y de importación:
Aquí
Entre ellos uno me llamó la atención y parece la solución a mi problema. Al restaurar desde consola en linux sería bueno activar las directivas para cancelar varios chequeos que hace MySQL y acelerar el proceso.
(
echo "SET AUTOCOMMIT=0;"
echo "SET UNIQUE_CHECKS=0;"
echo "SET FOREIGN_KEY_CHECKS=0;"
cat dump.sql
echo "SET FOREIGN_KEY_CHECKS=1;"
echo "SET UNIQUE_CHECKS=1;"
echo "SET AUTOCOMMIT=1;"
echo "COMMIT;"
) | mysql -u... -p... target_database
o podemos crear un archivo para ejecutar desde el shell:
#!/bin/bash
MYSQL_USER="..."
MYSQL_PASSWORD="..."
function restore() {
echo $1;
(
echo "SET AUTOCOMMIT=0;"
echo "SET UNIQUE_CHECKS=0;"
echo "SET FOREIGN_KEY_CHECKS=0;"
cat "$1.sql"
echo "SET FOREIGN_KEY_CHECKS=1;"
echo "SET UNIQUE_CHECKS=1;"
echo "SET AUTOCOMMIT=1;"
echo "COMMIT;"
) | mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$1"
}
Con esto aceleramos mucho la inserción, sin embargo de todos modos tarda.
En la página donde saqué estas cosas también vienen otras recomendaciones que pueden ser bastante útiles al exportar e importar Bases de Datos en MySQL.
Esta ocasión platico lo que me pasó. Tratando de cargar una base de datos bastante grande (una tabla cuyo sql era de aprox 6GB), me encontré con la dificultad de que al importarlo a través de la linea de comandos de MySQL tardaba un demonial, más de lo que podría suponerse, tardando 20 segundos o más por cada 1000 registros (hablábamos de unos 5 millones de registros).
Me di cuenta que el dump lo habían generado desde una útil herramienta llamada SQLyog y que mi compañero desde su máquina haciendo el import con la misma herramienta tardaba muuuucho menos que yo.
Entonces vi que el archivo sql del dump no contenía ninguna clase de comentario ni directiva extra más que la carga de los datos, es decir, el create de la tabla y los inserts, ¡Ah claro! y que había sido hecho por SQLyog.
Encontré una página con algunas estrategias para acelerar los procesos de dump y de importación:
Aquí
Entre ellos uno me llamó la atención y parece la solución a mi problema. Al restaurar desde consola en linux sería bueno activar las directivas para cancelar varios chequeos que hace MySQL y acelerar el proceso.
(
echo "SET AUTOCOMMIT=0;"
echo "SET UNIQUE_CHECKS=0;"
echo "SET FOREIGN_KEY_CHECKS=0;"
cat dump.sql
echo "SET FOREIGN_KEY_CHECKS=1;"
echo "SET UNIQUE_CHECKS=1;"
echo "SET AUTOCOMMIT=1;"
echo "COMMIT;"
) | mysql -u... -p... target_database
o podemos crear un archivo para ejecutar desde el shell:
#!/bin/bash
MYSQL_USER="..."
MYSQL_PASSWORD="..."
function restore() {
echo $1;
(
echo "SET AUTOCOMMIT=0;"
echo "SET UNIQUE_CHECKS=0;"
echo "SET FOREIGN_KEY_CHECKS=0;"
cat "$1.sql"
echo "SET FOREIGN_KEY_CHECKS=1;"
echo "SET UNIQUE_CHECKS=1;"
echo "SET AUTOCOMMIT=1;"
echo "COMMIT;"
) | mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$1"
}
Con esto aceleramos mucho la inserción, sin embargo de todos modos tarda.
En la página donde saqué estas cosas también vienen otras recomendaciones que pueden ser bastante útiles al exportar e importar Bases de Datos en MySQL.
Suscribirse a:
Entradas (Atom)