Архив метки: Bash

linux: утилита pv (pipeviewer)

Прикрутил к небольшому скрипту дампа полезную маленькую утилитку pv (pipeviewer), теперь при архивации показыается бегущая шкала и остаток времени, полезно очень.

Как это выглядит:

$ dumparch ./.thunderbird
202MB 0:01:29 [9,67MB/s] [===>        ] 20% ETA 0:05:47

Читать

linux: изменить UID/GID юзера в системе

Сабж надобится иногда для того, чтобы аккуратно перевести систему на другой дистрибутив. Или чтобы корректно работали общие ресурсы в сети. И т.д. Всё примитивно, просто памятка. Проверяю под федорой и арчем, но способ универсальный. Мне надо поменять uid (1000 вместо 500) юзера dimon и назначить ему другую основную группу — 100(users) вместо 500(dimon). Читать

ELGG: Создаем "скелет" плагина из коммандной строки

Для того чтобы создать в ELGG новый плагин (модуль), первым делом, необходимо создать правильную структуру директорий. Помочь в этом может разработаный Оскаром Кастро (Oscar Castro) простой bash-скрипт

#!/bin/bash 
 #name: pluginSkeleton
 #Author: @Kareste
 #Installation: Put file in mod/
 #usage ./pluginSkeleton 
 if [ $# -eq 0 ]; then
 echo "Plugin Name is Missing"
 else
 echo mkdir -p "$1/actions/$1/" | bash -x
 echo mkdir -p "$1/classes/" | bash -x
 echo mkdir -p "$1/graphics/" | bash -x
 echo mkdir -p "$1/js/" | bash -x
 echo mkdir -p "$1/languages/" | bash -x
 echo mkdir -p "$1/lib/" | bash -x
 echo mkdir -p "$1/pages/$1/" | bash -x
 echo mkdir -p "$1/vendors/" | bash -x
 echo mkdir -p "$1/views/default/$1/" | bash -x
 echo mkdir -p "$1/views/default/forms/" | bash -x
 echo mkdir -p "$1/views/default/js/" | bash -x
 echo mkdir -p "$1/views/default/object/$1" | bash -x
 echo mkdir -p "$1/views/default/plugins/$1/" | bash -x
 echo mkdir -p "$1/views/default/widgets/$1_widget/" | bash -x
 echo touch "$1/start.php" | bash -x
 echo touch "$1/manifest.xml" | bash -x
 echo -e "nntExample ManifestntElggnt1.0ntThis is a simple example of a manifest file.  In this example, there are not screenshots, dependencies, or additional information about the plugin.ntnttelgg_versionntt2011010401ntn" >> "$1/manifest.xml"
 fi

Источник: http://community.elgg.org/pg/pages/view/723878/plugin-skeleton-script-bash

Автор: Sergiy Kamolov

Простой скрипт для бэкапа MySQL баз

#!/bin/bash

# Variables
CNF=/etc/mysql/debian.cnf
BACKUPDIR=/var/backups/mysql/
DATE=`date +%F`
OLDDAYS=7

# Main part
for DATABASE in `echo SHOW DATABASES | mysql —defaults-file=${CNF} —skip-column-names`;do
BACKUPNAME=${BACKUPDIR}${DATABASE}.sql.${DATE}
BZBACKUPNAME=${BACKUPNAME}.bz2
echo Dumping ${DATABASE} into ${BZBACKUPNAME}
mysqldump —defaults-file=${CNF} ${DATABASE} > ${BACKUPNAME}; bzip2 -f ${BACKUPNAME}
done

# Deleting old backups

find ${BACKUPDIR} -mtime +${OLDDAYS} -delete

Дампит и сжимает базы данных.
Можно (и нужно) добавить его в крон, например:

00 05 * * * root /usr/local/sbin/mysqlbackup.sh

P.S. Ах да, это юбилейный, сотый пост в моём бложике:)

Автор: AlexWinner

bash — обращение к нужной команде из history

Как известно, список использованных команд в bash’e можно посмотреть, набрав команду history:

$ history
1  echo «test»
2  echo «Hello World»
3  find . -mtime +5
..

.
Читать

Краткое введение в программирование на Bash — часть II

Выкладываю перевод второй часть статьи про введение в программирование на bash, начатое здесь.

В своей второй статье Гарольд продолжает свое первоклассное введение в программирование на bash. На этот раз он объясняет, как выполнять арифметические операции в скриптах bash, как определить функции в своих программах. Завершается статья введением в такие продвинутые вещи как чтение пользовательского ввода, обработка скриптом аргументов, перехватывание сигналов и обработка кодов завершения программ.

Читать