делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Зарегистрирован:
13/3/2009 17:04 Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
Предлагаю делиться опытом по автоматизации процессов, а так же полезных скриптов на sh.
Сам же пока выкладываю генератор демотивационных постеров (демотиваторов). #!/bin/sh motivator_help() { cat << EOF ${0} - Motivator maker Usage: ${0} -i IMAGE (-o IMAGE) (-h TEXT) (-t TEXT) (-f FONT) (-F FONT) (-s SIZE) (-S SIZE) (-C VALUE) Options: -i - Input image -h - Header text -t - Term text -o - Output file -f - Term font -F - Header font -s - Term size -S - Header size -C - Scale value -H - Help EOF } motivator_getopts() { while getopts ":i: h: t: o: f: F: s: S: C: H" optname; do case "$optname" in "i") IMAGE="${OPTARG}" ;; "h") HEAD_TEXT="${OPTARG}" ;; "t") TERM_TEXT="${OPTARG}" ;; "o") DEST="${OPTARG}" ;; "f") T_FONT="${OPTARG}" ;; "F") H_FONT="${OPTARG}" ;; "s") T_SIZE="${OPTARG}" ;; "S") H_SIZE="${OPTARG}" ;; "C") SCALE="${OPTARG}" ;; "H") motivator_help; exit 0 ;; "?") echo "Unknown option \"${OPTARG}\""; exit 1 ;; ":") echo "No argument value for option \"${OPTARG}\""; exit 1 ;; *) echo "Unknown error while processing options"; exit 1 ;; esac done if [ -z "${IMAGE}" ]; then echo -e "Give me input image!\n" 1>&2 motivator_help 1>&2 exit 1 fi } #Defaults DEST="result.png" H_FONT="/usr/share/fonts/truetype/FreeSerif.ttf" T_FONT="/usr/share/fonts/truetype/arial.ttf" H_SIZE="64" T_SIZE="32" SCALE="640" #Getopt motivator_getopts "${@}" #Main #Resize and convert convert -scale "${SCALE}" "${IMAGE}" "${DEST}" if [ $? -gt 0 ]; then echo "Error!" 1>&2 exit 1 fi #Make border around image mogrify -bordercolor black -border 2 \ -bordercolor white -border 2 \ -bordercolor black -border 70x0 "${DEST}" #Write header if there is one if [ -n "${HEAD_TEXT}" ]; then montage -geometry +0+0 -background black -fill white \ -font "${H_FONT}" \ -pointsize "${H_SIZE}" -label "${HEAD_TEXT}" "${DEST}" "${DEST}" fi #Write term if there is one if [ -n "${TERM_TEXT}" ]; then montage -geometry +0+0 -background black -fill white \ -font "${T_FONT}" \ -pointsize "${T_SIZE}" -label "${TERM_TEXT}" "${DEST}" "${DEST}" fi #If there was header or term make black fields if [ -n "${HEAD_TEXT}" -o -n "${TERM_TEXT}" ]; then mogrify -bordercolor black -border 5x45 "${DEST}" fi использование скрипта: ~/generator.sh -i /путь к файлу/filename.png -h text1 -t text2 -o /путь к файлу/test.png пример: /home/alex/Desktop/Demotivators/generator.sh -i /home/alex/Desktop/manul.jpg -h "Это - Манул" -t гладь -o /home/alex/Desktop/test.png P.S. исходные форматы файлов - *.jpeg, *.jpg, *.png, *.bmp, *.svg для написания нескольких слов (text1 text2) используем " " -i - исходный файл -h - верхний текст -t - нижний текст -o - результат
Отправлено: 2/6/2009 20:38
|
||||||||||
_________________
Server: Intel Core2Duo 2.00 GHz | 4 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.37-pae Desktop: Inet Core2Duo 2.20 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-desktop | NVidia GeForce 8600 GT/512 Mb Laptop: Intel Core2Duo T6570 2.10 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-laptop | NVidia GeForce 310M CUDA/512 Mb |
|||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Зарегистрирован:
13/3/2009 17:04 Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
Вчера хотел обновить свой любимый джаббер-клиент, но уже целый месяц небыло релизов для opensuse. Поэтому было решено собирать из свна. Нашел скрипт по универсальной сборке:
psibuild.sh
Отправлено: 5/6/2009 18:08
Отредактировано пользователем solnechnyi_z 05/06/2009 18:16:05
|
||||||||||
_________________
Server: Intel Core2Duo 2.00 GHz | 4 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.37-pae Desktop: Inet Core2Duo 2.20 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-desktop | NVidia GeForce 8600 GT/512 Mb Laptop: Intel Core2Duo T6570 2.10 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-laptop | NVidia GeForce 310M CUDA/512 Mb |
|||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Зарегистрирован:
10/2/2009 9:56 Из: Псков
Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
Поделюсь своим скриптом. Помнится занимался както галлереей и надо было бастро изменить размер в нескольких тысячах картинок. Я не любитель "мануальной терапии" и поэтому автоматизировал сие.
Скрипт на perl но думаю от этого он хуже не стал :)
Перед использованием скопируйте папку с изображениями, потому что он перезаписывает имеющиеся картинки новыми.
Отправлено: 6/6/2009 10:43
|
||||||||||
_________________
Копилка опыта |
|||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Зарегистрирован:
13/3/2009 17:04 Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
demoriz: о! так я же и искал такой скрипт
Отправлено: 6/6/2009 10:50
|
||||||||||
_________________
Server: Intel Core2Duo 2.00 GHz | 4 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.37-pae Desktop: Inet Core2Duo 2.20 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-desktop | NVidia GeForce 8600 GT/512 Mb Laptop: Intel Core2Duo T6570 2.10 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-laptop | NVidia GeForce 310M CUDA/512 Mb |
|||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Зарегистрирован:
10/2/2009 9:56 Из: Псков
Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
Цитата:
наздоровье :) только я сейчас заметил что он в искажонном виде зпостился. Обратные слеши пропали. Рабочий вариант тут
Отправлено: 6/6/2009 13:49
|
||||||||||
_________________
Копилка опыта |
|||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Зарегистрирован:
13/3/2009 17:04 Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
Бэкап хоума и баз mysql
#!/bin/sh # ##### backdir="/mnt/backup/`date +%Y%m%d`" sqldir="/usr/local/mysql" backuser="andrewhost" backuserdir="/home/$backuser/backup" # removing old backups rm -rf $backuserdir # creating backup dirs mkdir -p $backdir mkdir -p $backdir/db # backup home dirs tar -zcf $backdir/homes.tar.gz /home # backup mh htdocs tar -zcf $backdir/mh.tar.gz /usr/local/apache/htdocs # backup etc dirs tar -zcf $backdir/etc.tar.gz /etc # backuping databases find $sqldir/data -type d -exec basename {} \;|uniq|while read dbname; do $sqldir/bin/mysqldump -u root -ppassword $dbname > $backdir/db/$dbname.sql; done # moving to home mkdir -p $backuserdir mv $backdir $backuserdir chown -R $backuser $backuserdir find $backuserdir -type d -exec chmod 700 {} \; find $backuserdir -type f -exec chmod 600 {} \; # clean up rm -rf $backdir
Отправлено: 8/6/2009 21:19
|
||||||||||
_________________
Server: Intel Core2Duo 2.00 GHz | 4 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.37-pae Desktop: Inet Core2Duo 2.20 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-desktop | NVidia GeForce 8600 GT/512 Mb Laptop: Intel Core2Duo T6570 2.10 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-laptop | NVidia GeForce 310M CUDA/512 Mb |
|||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Зарегистрирован:
8/6/2009 18:43 Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
Не скрипт, но полезные фичи:
cp /dev/cdrom /home/user/file.iso - создание iso образа диска в приводе /dev/cdrom mount -t iso9660 /mnt/cd /home/user/file.iso - "виртуальный cd" монтирует iso образ file.iso в папку /mnt/cd есть еще один вариант последнего: mount /mnt/cd /home/user/file.iso -o loop
Отправлено: 9/6/2009 22:54
|
||||||||||
_________________
Jedem das seine. |
|||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Гвардии модератор
Зарегистрирован:
31/7/2008 9:37 Из: Липецк
Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
2 Wehrmacht было уже в одном из обсуждений статей. Но, повторение - мать учения. Может кто-то заметит.
Отправлено: 9/6/2009 23:01
|
||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Зарегистрирован:
10/2/2009 9:56 Из: Псков
Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
Цитата:
более правильно в первом случае будет сделать: dd if=/dev/cdrom of=/home/user/file.iso это примитивные букварные истины а не скрипты.
Отправлено: 9/6/2009 23:03
|
||||||||||
_________________
Копилка опыта |
|||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Гвардии модератор
Зарегистрирован:
31/7/2008 9:37 Из: Липецк
Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
2 demoriz путаешь тёплое с мягким. Вермахт говорит о монтировании готового исошника, а ты о его создании.
ЗЫ: Своё мнение выразил раньше.
Отправлено: 9/6/2009 23:09
|
||||||||||
Трансфер |
Re: делимся опытом по написанию sh-скриптов |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Зарегистрирован:
13/3/2009 17:04 Сообщений:
0
Уровень : NAN
HP : NAN / NAN |
тогда надо склеить это все в один скрипт ))
Отправлено: 9/6/2009 23:49
|
||||||||||
_________________
Server: Intel Core2Duo 2.00 GHz | 4 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.37-pae Desktop: Inet Core2Duo 2.20 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-desktop | NVidia GeForce 8600 GT/512 Mb Laptop: Intel Core2Duo T6570 2.10 GHz | 3 Gb RAM | openSUSE 11.3 i586 | kernel 2.6.34-laptop | NVidia GeForce 310M CUDA/512 Mb |
|||||||||||
Трансфер |