21 Востаннє редагувалося drWoZD (18.04.2014 23:03:05)

Re: bash скрипти

Не знаю навіщо, але захотілось скинути це сюди :)

perl -ne 'if (/^UUID=(.+) \/([^ ]*) /){ $a = `blkid -U $1`; chomp($a);$b=$2?"\U$2":"ROOT";system("e2label $a $b\n")}' /etc/fstab

P.S. Хто розгадає, подарую віртуальну шоколадку :D

Нехай буде з тобою сила!

22 Востаннє редагувалося Logans (22.07.2014 15:04:14)

Re: bash скрипти

drWoZD написав:

Не знаю навіщо, але захотілось скинути це сюди :)

perl -ne 'if (/^UUID=(.+) \/([^ ]*) /){ $a = `blkid -U $1`; chomp($a);$b=$2?"\U$2":"ROOT";system("e2label $a $b\n")}' /etc/fstab

P.S. Хто розгадає, подарую віртуальну шоколадку :D

Колись бачив щось подібне, тому недумаючи запитаю: "rm -rf"?

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds

23

Re: bash скрипти

Logans написав:
drWoZD написав:

Не знаю навіщо, але захотілось скинути це сюди :)

perl -ne 'if (/^UUID=(.+) \/([^ ]*) /){ $a = `blkid -U $1`; chomp($a);$b=$2?"\U$2":"ROOT";system("e2label $a $b\n")}' /etc/fstab

P.S. Хто розгадає, подарую віртуальну шоколадку :D

Колись бачив щось подібне, тому недумаючи запитаю: "rm -rf"?

Та де, я таким не страдаю. Цей скрипт змінює мітки дисків відповідно до їх точок монтування.

Нехай буде з тобою сила!

24

Re: bash скрипти

Ну шо, викладу і я свої твори, хоча вони трошки застаріли, але комусь можуть знадобитись як основа для свого інструменту.
https://github.com/StreamThreader/litkk-lvmtools
https://github.com/StreamThreader/litkk-nagiosplugins

25

Re: bash скрипти

Hanter написав:

Почав згадувти bash і для розминки накидав міні скрипт, який тиряє усі шаблони і скріншоти до них з сайту all-free-download.com
Ніби все працює.

Прихований текст
sed: неможливо прочитати links.txt: Немає такого файла або каталогу те ж саме і з журналом хакер

26

Re: bash скрипти

StreamThreader написав:

Ну шо, викладу і я свої твори, хоча вони трошки застаріли, але комусь можуть знадобитись як основа для свого інструменту.
https://github.com/StreamThreader/litkk-lvmtools
https://github.com/StreamThreader/litkk-nagiosplugins

Дякую :)

Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

27 Востаннє редагувалося HetmanNet (04.03.2015 12:31:16)

Re: bash скрипти

Кожного разу коли мені стає нудно від того що треба сидіти з півгодини повторювати одні і ті самі операції,  *TIRED*  я пишу якийсь кривуватий скрипт  :[ , що зробить це за мене.  8) Так як ці скрипти використовуються від сили пару разів, то про їх якість краще не говорити..  :[  можна сказати її там немає. Тому буду ділитися цими творіннями  *HI* , все одно я їх видаляю з часом  *SORRY* , а так вони хоч десь збережуться і може когось надихнуть написати щось краще. Цього разу знайшов скрипт що автоматизував виконання серії команд nmap.  *DONT_KNOW* Зазвичай нормальні адміни просто пишуть таке методом "copy-paste"  *SCRATCH* , ну а  мене нормальним назвати важко  *CRAZY* , тому пишу таке.   :[

#!/bin/bash
# Viktor Matvieienko <hetman.net@gmail.com>
# Сканування мережі
# ТОВ "Майстер Мілк" 2014

declare -a arr_1
arr_1=(`nmap -PR 192.168.1.1/24 | grep -E -o "(..:..:..:..:..:..)|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"`)
declare -a arr_2 #IP
declare -a arr_3 #MAC
index_1=1
index_2=1
index_3=1
for e in "${arr_1[@]}"
do
    bit_1=`expr $index_1 % 2`
    if [ $bit_1 == 1 ]
    then
        arr_2[$index_2]=$e
        index_2=`expr $index_2 + 1`
    else
        arr_3[$index_3]=$e
        index_3=`expr $index_3 + 1`
    fi
    index_1=`expr $index_1 + 1`
done
declare -a arr_4 #OS
index_4=1
while [ $index_2 -gt $index_4 ]
do
    arr_4[$index_4]=`nmap -O ${arr_2[$index_4]} | grep -E "OS details:.*" | sed "s/OS details:[[:space:]]//"`
    index_4=`expr $index_4 + 1`
done
index_5=1
string_1=""
while [ $index_2 -gt $index_5 ]
do
    if [ "${arr_4[$index_5]}" == "" ]
    then
        string_1="Невідома"
    else
        string_1=${arr_4[$index_5]}
    fi
    echo -e "${index_5} \\t MAC:${arr_3[$index_5]} \\t IP:${arr_2[$index_5]} \\t OS:$string_1"
    index_5=`expr $index_5 + 1`
done

P.S. Чи варто їх викладати?

Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..
Подякували: 0xDADA11C7, Blast2

28

Re: bash скрипти

Вважаю, що варто, тільки вказуйте платформу, для якої воно писане.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

29

Re: bash скрипти

0xDADA11C7 написав:

Вважаю, що варто, тільки вказуйте платформу, для якої воно писане.

Я вставив його таким, яким знайшов. Шапку з коментарів не видаляв, точніше забув. Всі скрипти протестовані на Fedora. :) Зазвичай в шапці зазначено для якого дистрибутива написані, але у "одноразових" часто це просто забуваю написати.

Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

30

Re: bash скрипти

знайшов старий скриптик.
Не bash, але все ж)

#!/usr/bin/perl

$_=`synclient -l | grep TouchpadOff`;
s; *= *;=;;y;01;10;;
system("synclient $_");

колись набридало, що тачпад під час друку збивав курсор і друк починався не там де треба  :)
Ну от на емоціях написав таке.

Нехай буде з тобою сила!

31

Re: bash скрипти

Помітив, що давно нічого не додавали до даної теми, тож вирішив написати хоч щось що прийде у голову за п'ять хвилин. Може комусь буде треба.

Функція просто малює суцільну лінію на всю ширину консолі з символів "=".

function line {
    symbol_line="="
    startc=0
    endc=$(tput cols)
    echo -n -e "\n"
    for ((poz=$startc; poz<$endc; poz++)); 
    do
        echo -n -e "$symbol_line"
    done
    echo -n -e "\n"
    exit 0
}

Функція робить заголовок на всю ширину консолі у форматі "====== [ name ] ======". Як перший аргумент передається name.

function head {
    symbol_line="="
    br_left=" [ "
    br_right=" ] "
    name=$1
    columns=$(tput cols)
    len_name=${#name}
    if [ "$columns" -gt "$len_name" ]
    then
        let "len_line = $columns - $len_name - 6"
        if [ "$len_line" -gt 2 ]
        then
            let "len_part_line = $len_line / 2"
            echo -n -e "\n"
            startc=0
            let "endc = $startc + $len_part_line"
            for ((poz=$startc; poz<$endc; poz++));
            do
                echo -n -e "$symbol_line"
            done
            echo -n -e "$br_left$name$br_right"
            let "startc = $len_part_line + ${#br_left} + $len_name + ${#br_right}"
            endc=$columns
            for ((poz=$startc; poz<$endc; poz++));
            do
                echo -n -e "$symbol_line"
            done
            echo -n -e "\n"
        else
            exit 2
        fi
    else
        exit 1    
    fi
    exit 0
}
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

32 Востаннє редагувалося Blast (23.08.2015 10:23:07)

Re: bash скрипти

Поділюсь і я своїм, хоч елементарним , але часу в сумі економить багацько.
Запуск дев сервера в віртуальному середовищі.
п.с 0.0.0.0:8000 для отримання доступу до сайту через вайфай роутер щоб дебажити функціонал та вигляд для мобільних пристроїв.

#!/bin/bash
echo "Run local server"
cd virtualenvname
source bin/activate
cd projectname
python manage.py runserver 0.0.0.0:8000
Junior Django Developer

33

Re: bash скрипти

Не зовсім bash і дещо корявий  :), створює клітки під FreeBSD

#! /bin/sh

# Creates jails on FreeBSD

echo "Name of new jail:"
read name
echo "IP adress:"
read jailip
echo "network Interface:"
read jailiface
echo "Path to new jail: "
while  test -e $jailpath 
do
    read jailpath
    echo "This path already exist. Enter other path:"
done

# Create directory and build jail
mkdir -p $jailpath
echo "If you have already rebuilt your userland using make world or make buildworld, you can skip this step. y/n?:"
until [ "$answer" == "y" ] || [ "$answer" == "n" ]
do
    read answer
    if [ "$answer" == "n" ]; then
        make -C /usr/src buildworld
        break
    elif [ "$answer" == "y" ]; then
        break
    else
        echo "Type \"y\" or \"n\" :"
    fi
done
make -C /usr/src installworld DESTDIR=$jailpath
make -C /usr/src distribution DESTDIR=$jailpath
mount -t devfs devfs $jailpath/dev

# Create record in /etc/jail.conf
printf "$name {
    path = \"$jailpath\";
    mount.devfs;
    host.hostname = \"$name\";
    ip4.addr = $jailip;
    interface = \"$jailiface\";
    exec.start = \"/bin/sh /etc/rc\";
    exec.stop = \"/bin/sh /etc/rc.shutdown\";
    exec.clean;
     }\n" >> /etc/jail.conf

# Add records to rc.conf
sed -i  -e "s/jail_list\=\"/&$name /" /etc/rc.conf
grep "jail_enable=\"YES\"" /etc/rc.conf || echo "jail_enable=\"YES\"" >> /etc/rc.conf
grep 'jail_list=".*"' /etc/rc.conf || echo "jail_list=\"$name\"" >> /etc/rc.conf