Сабж надобится иногда для того, чтобы аккуратно перевести систему на другой дистрибутив. Или чтобы корректно работали общие ресурсы в сети. И т.д. Всё примитивно, просто памятка. Проверяю под федорой и арчем, но способ универсальный. Мне надо поменять uid (1000 вместо 500) юзера dimon и назначить ему другую основную группу — 100(users) вместо 500(dimon). Читать
Архив метки: Bash
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, как определить функции в своих программах. Завершается статья введением в такие продвинутые вещи как чтение пользовательского ввода, обработка скриптом аргументов, перехватывание сигналов и обработка кодов завершения программ.
Краткое введение в программирование на Bash — часть I
Данное введение в программирование на bash прельстило меня своей краткостью и содержательностью. В то же время я изменил некоторые примеры, потому что они делали слегка не то, что ожидается новичками. Начинающим текст будет полезен как отправная точка для начала написания скриптов. Опытным — как справочник. Удачного чтения!
Выражаю также благодарность Владимиру Черному (начальнику отдела образовательных проектов ALT Linux) за внесенные в текст правки.