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

Опыт просветления: bash и Python

Не один год работая с Python и bash я, главным образом, использовал

  • первый — для написания программ,
  • второй — для выполнения команд ОС.

При этом моя работа в интерактивном режиме Python сводилась к маленьким исследованиям того, как работает некий фрагмент кода. А в командной строке bash я не пользовался конструкциями, присущими языкам программирования, такими, как if или for, ограничиваясь запуском отдельных команд. Читать

Использование User Leds на BeagleBone

Вообще заметил странную вещь, пользовательские светодиоды расположенные на плате не работали в дистрибутиве от arago, хотя он позиционируется TI как самый стабильный.
И поэтому в процессе правки исходников ядра, я так же починил и светодиоды.

Ну теперь грех ими не воспользоватся, два у нас уже заняты под heartbeat и mmc0,
остальные же свободны. Читать

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