41

Re: bash скрипти

Ґномівський скріншотер скидає всі файли в загальну папку Pictures, перетворюючи її на смітник.

Написав короткий скрипт, аби автоматично скидати всі скріншоти в окрему папку Pictures/Screenshots.

Ґіст

42

Re: bash скрипти

Створив невеликий шел-скрипт, який генерує sitemap.xml для статичного веб-сайту.

Зауваги радо приймаю.

Подякували: leofun011

43

Re: bash скрипти

Ще двійко шел-скриптів для статичного сайту:

Генерувати rss.xml
Генерувати шаблон html-сторінки

Подякували: leofun011

44 Востаннє редагувалося bebyk (12.09.2020 21:51:14)

Re: bash скрипти

Створив простий скрипт, щоб перевіряти погоду в терміналі.

github.com/bebyx/wtr

Запакував у .deb пакунок.

Дістати:

wget https://github.com/bebyx/wtr/blob/master/wtr_1.0_all.deb

45 Востаннє редагувалося dot (23.09.2020 17:25:14)

Re: bash скрипти

Ne duge tsjikavyj, ale moglyvo korysnyj.

Potcav dyvyty Amerykansjkoho «Ofis», tam vydyva buly jak mp4, a napysy v okremij tetsi. A vydyvohratc mpv tcomusj tak sobi tcy ne tak stjahuvav napysy, koly robec z dekiljkoma vydyvamy. Abo ja zatupyj. V budj-jakomu vypadku pobatcyv na dotsi, ge aby zastosuvaty pevni zminy do pevnoho vydyva, to treba prosto prostavjaty u megax --{ […] --}. Odrazu v holovi otrymav duge prostyj alqorytm, tog dlja sebe xutko nackrjabav.

Kod
#!/bin/bash

# my-mpv
# A script allows easy using multivideos and -subs at once

##### Default varitions

script=
videos=
subs=

##### Functions

help()
{
    echo "--videos [-vs] \"path-to-files\""
    echo "--subs [-ss] \"path-to-files\""
    echo "--help"
    echo
    echo "Example: -vs \"*.mp4\" -ss \"./Subs/*.srt\""
}

##### Main

# Vidsutnistj arqumentiv

if [[ $# -eq 0 ]] ; then
    help
    exit
fi

# Ohljad parametriv

while [ "$1" != "" ]; do
    case $1 in
        -vs | --videos )
            videos=$2
            shift
            ;;
        -ss | --subs )
            subs=$2
            shift
            ;;
        --help )
            help
            exit
            ;;
        * )
            script="${script} $1"
            ;;
    esac
    shift
done

# Sklej

for i in $(eval echo ${videos}); do
    script="${script} --{ $i --sub-file=${subs/\*/${i%.*}} --}"
done

# Zapusk

mpv ${script}

Zalyv i podaljci zminy, jakctco vynykne potrjiba, robyty jmu na qýsti na Qýthabi.

Obrav $(eval echo ${videos}), bo dozvoljaje obyraty pevni vydyva, a ne vsji, napryklad:

$ my-mpv -vs "%name%.S01E{07..22}*.mp4" -ss "./Sub/*.srt"

Skrypt zberjihaje nakazy do mpv, tomu to ne prosto okremyj skrypt pid pevnu zadatcu, a moga uvagyty za prosto malenjkoho patca.

46

Re: bash скрипти

Кожен, хто встановлював Linux from Scratch, доходив до цього розділу, де треба вивантажити сирці для майбутньої LFS-системи.

Звісно там є варіянт вивантажити все зразу з дзеркала LFS. Однак коли вчишся, такі шляхи видаються надто банальними.

Написав bash-скрипт, який парсить зазначену ж у першому абзаці html-сторінку, витягує посилання й вивантажує всі архіви wget'ом.

47

Re: bash скрипти

Знайшов отаке чудо, яке допомогло свого часу виявити обман

#!/bin/bash

prev_count=`cat ze.log | tail -1 | awk '{print $2}'`
time=`date '+%Y-%m-%d-%H-%M-%S'`
count=`curl https://ze2019.com/storage/counters.json?rand=0.8880051828185136 | grep "volunteer_amount" | sed 's/{"volunteer_amount"://' | sed 's/}/ /'`
let "inc = $count - $prev_count"
echo "$time $count $inc" >> ze.log

48

Re: bash скрипти

Скрипт автоматичного імпорту бд в проект із вказаного каталогу
використання:
bash import.sh project1 -d 123.123.123.123


#!/bin/sh
#domain - project name
#-d - drop and create db before import
#host - localhost

DOMAIN=$1
ACTION=$2
HOST=$3


USERNAME="user"
PASSWORD="pass"
BASE_DIR="/var/www/$DOMAIN/import/*"

if [ ! $HOST ]; then
    HOST='localhost'
fi


if [ "$ACTION" == "-d" ]; then
    mysqladmin -u $USERNAME -p$PASSWORD -h $HOST drop $DOMAIN
    mysqladmin -u $USERNAME -p$PASSWORD -h $HOST create $DOMAIN
    echo "drop database $DOMAIN"
    echo "create database $DOMAIN"
fi

for i in $BASE_DIR.sql
do
    mysql -u $USERNAME -p$PASSWORD -h $HOST $DOMAIN < "$i"
    echo "import database [$DOMAIN]"
done

for i in $BASE_DIR.sql.bz2
do
    bunzip2 < "$i" | mysql -u $USERNAME -p$PASSWORD -h $HOST $DOMAIN
    echo "import database [$DOMAIN]"
done

for i in $BASE_DIR.sql.gz
do
    zcat "$i" | mysql -u $USERNAME -p$PASSWORD -h $HOST $DOMAIN
    echo "import database [$DOMAIN]"
done
Подякували: 0xDADA11C7, bebyk2

49

Re: bash скрипти

Чистить Убунту, видаляє купу всього зайвого і старого. Запускайте на свій страх і ризик

#!/bin/sh

#Check the Drive Space Used by Cached Files
du -sh /var/cache/apt/archives

#Clean all the log file
#for logs in `find /var/log -type f`;  do > $logs; done

logs=`find /var/log -type f`
for i in $logs
do
> $i
done

#Getting rid of partial packages
apt-get clean && apt-get autoclean
apt-get remove --purge -y software-properties-common

#Getting rid of no longer required packages
apt-get autoremove -y


#Getting rid of orphaned packages
deborphan | xargs sudo apt-get -y remove --purge

#Free up space by clean out the cached packages
apt-get clean

# Remove the Trash
rm -rf /home/*/.local/share/Trash/*/**
rm -rf /root/.local/share/Trash/*/**

# Remove Man
rm -rf /usr/share/man/?? 
rm -rf /usr/share/man/??_*

#Delete all .gz and rotated file
find /var/log -type f -regex ".*\.gz$" | xargs rm -Rf
find /var/log -type f -regex ".*\.[0-9]$" | xargs rm -Rf

#Cleaning the old kernels
dpkg-query -l|grep linux-im*
#dpkg-query -l |grep linux-im*|awk '{print $2}'
apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yes
apt-get install linux-headers-`uname -r|cut -d'-' -f3`-`uname -r|cut -d'-' -f4`

#Cleaning is completed
echo "Cleaning is completed"