Всякие полезные команды и скрипты в терминале Linux

Сделать дамп всех баз данных в отдельные файлы
#!/bin/bash

USER="root"
PASSWORD="password"
OUTPUT="/www/sql"

#rm "$OUTPUTDIR/*gz" > /dev/null 2>&1

databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

for db in $databases; do
    if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
        echo "Dumping database: $db"
        mysqldump -u $USER -p$PASSWORD --databases $db > `date +%Y%m%d`.$db.sql
       # gzip $OUTPUT/`date +%Y%m%d`.$db.sql
    fi
done

Получить из дампа только одну таблицу, 1 аргумент файл базы данных, 2 аргумент имя таблицы
#!/bin/sh

DB=$1
TABLE=$2

if [ -f $DB ]; then
    /bin/gunzip -c $DB | /usr/bin/awk '/CREATE TABLE `'$TABLE'`/,/UNLOCK TABLES/' > /tmp/$DB.$TABLE.sql
    else
    echo 'FILE not found'
fi
Получить структуру базы данных из дампа
#!/bin/sh

DB=$1
if [ -f $DB ]; then
    /bin/gunzip -c $DB | /usr/bin/awk '/CREATE TABLE /,/ENGINE=/' > /tmp/$DB.$TABLE.sql
    else
    echo 'FILE not found'
fi
Проделать нечто со списком файлов
for list in `ls -1 /`; do echo "File -- ${list}"; done
Если в имени файла есть пробелы лучше использовать while.
(while read i; do cp  "${i}" "/destination"; done) < list
Сравнить два файла на наличие нехватки строк командой grep, данная команда покажет какие строки исчезли из файла new
grep -vFx old -f new
Или можно использовать diff
diff old new  | grep -E "^<" | sed -e 's/^< //g'
Прослушать микрофон удаленного компьютера по ssh
ssh user@host 'arecord -'|aplay -
Подключиться к камере удаленного компьютера по ssh
ssh user@host LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so ffmpeg -an -f  video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | mplayer
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so — нужно если изображение будет перевернуто

Простейший сниффер на python2
#Packet sniffer in python
#For Linux
 
import socket
#create an INET, raw socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
# receive a packet
while True:
  print s.recvfrom(65565)
Создать gif из видео
ffmpeg -ss 00:22:00.000 -i yesbuddy.mov -r 10 -s 320x240 -t 00:00:10.000 output.gif
Заменить определенную строку в нескольких файлах
find -name "шаблонфайла*.txt" -exec replace "Что меняем" "На что меняем" -- {} \;
Вставить строку в определенное место в тексте при помощи sed
После:
find -type f -name "шаблонфайла*.txt" -exec sed -i '/Что ищем/a Что вставляем/' {} \;
Перед:
find -type f -name "шаблонфайла*.txt" -exec sed -i '/Что ищем/i Что вставляем/' {} \;
Массовое переименование по регулярному выражению.
Для начала проверьте что у вас за утилита rename командой rename --versionЕсли так, то все ок
/usr/bin/rename using File::Rename version 0.20
А если так, то рекомендую установить perl-rename
rename из util-linux 2.32
А теперь сама командая
find -type f -name "*.css?ver=3.3" -exec perl-rename 's/\?.*//' {} \;
\?.* — убрать все что после знака?

Данная заметка будет постоянно дополняться

Комментарии ()

    Есть вопрос или предложение пиши в Telegram @cloudsv

    Прямой эфир

    cloudsv 24 октября 2018, 00:27
    О жизни Обновление Scala Rider G4 0
    cloudsv 21 октября 2018, 23:16
    Arch Linux Памятка по основным утилитам Linux 0
    cloudsv 01 июня 2018, 01:39
    Telegram Настройка прокси mtproto для Telegram 26
    cloudsv 22 января 2018, 21:59
    Web Локальное зеркало обновлений Dr.web 0
    cloudsv 03 октября 2017, 10:55
    Web Пароль от резервной копии Bitrix 1
    cloudsv 09 июля 2017, 23:02
    Arch Linux Let's Encrypt это легко и просто 0

    Реклама

    @NormGIF Лучшие гифки интернетов в Telegram, подписывайся