Статья описывает актуальный способ работы с гугл диском из командной строки (Linux), а также добавление ежедневной задачи для бэкапа и синхронизации локальных файлов с удалёнными директориями.
Бэкап на Google Drive из консоли

Статья описывает актуальный способ работы с гугл диском из командной строки (Linux), а также добавление ежедневной задачи для бэкапа и синхронизации локальных файлов с удалёнными директориями.
Как быстро сравнить время работы разных команд: использовать пакет hyperfine.
Страница проекта содержит полезные примеры, здесь парочка тех, что я использовал для запуска тестов различных команд (бенчмарканья? бенчмаркинга?).
Чтобы поделиться с коллегами, я почистил и обновил свой приватный репозиторий со скриптами и различными конфигами, что собирал какое-то время, и выложил его на гитхаб под названием dev-scritps.
dev-scritps (Linux) — это набор полезных настроек для профиля пользователя, терминала, vim, git. Репо также содержит набор общих скриптов, команд и хоткеев.
Это не абсолютно исчёрпывающий туториал по конфигурации Всего, но настройки, которые я применяю при каждой новой установке Linux. Горячие клавиши (и в vim тоже), которые я нажимаю каждый день; скрипты, которые я писал для разных проектов так много раз, что в конце-концов они превратились в общие, и осели в этом репозитории.
Подборка сниппетов для bash, которые используются слишком редко, потому не сохраняются в истории и вылетают из головы, но при этом бывают полезными.
1 | for p in $(ps aux | grep -i httpd.worker | cut -d " " -f 4,5) ; do kill $p ;done |
Когда не доверяешь pkill.
1 | ps -ocommand= -p $p | awk -F/ '{print $NF}' | awk '{print $1}' |
1 | for p in $(ps aux | egrep oracle | cut -d ' ' -f 4); do ps -ocommand= -p $p | awk -F/ '{print $NF}' | awk '{print $1}' ;done | uniq |
Во всех командах параметр -f
для cut
может требовать подбора верного числа.
1 | ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5; free -m |
Актуальная версия статьи: Бэкап на Google Drive из консоли
Для работы со своим гуглдиском из командной строки потребуется установить пакет gdrive. Установка проста и описана на странице проекта, там же примеры работы с утилитой.
Далее полезные команды и скрипт для бэкапа.
Кратко: описание способа массовой загрузки аудиозаписей из Вконтакте, с сортировкой по альбомам.
Good news, everyone. Вконтакте закрыл свободный доступ к API аудиозаписей, и теперь скрипт не работает.
Я слушаю музыку онлайн, для чего использую Вконтакте как музыкальный каталог, в котором можно сохранять и сортировать аудиотреки по альбомам. С помощью специальных плагинов для браузера (использую VK Audiopad), для этого даже не нужно заходить на сайт. Удобно.
Со временем, у меня накопилось больше 65-ти альбомов, в которых находятся свыше 4000 записей.
1 2 3 | unoconv -f pdf *.docx # или find *.docx -exec unoconv -f pdf {} \; |
Утилита unoconv работает с большим количеством других форматов (xls, doc, odt, pot, ppt, полный список на официальном сайте) и доступна в популярных репозиториях.
1 | pdfunite file-1.pdf file-2.pdf merged.pdf |
Последний аргумент для команды (merged.pdf) является названием итогового файла, а входных аргументов может быть любое количество. Утилита pdfunite входит в пакет программ poppler-utils, и также доступна в популярных репозиториях.
На работающем wordpress-сайте вдруг сломались галереи NextGEN, который стал выдавать вместо нормальной вёрстки ошибку:
1 2 3 | This is the default gallery type template, located in: ... If you’re seeing this, it’s because the gallery type you selected has not provided a template of it’s own. |
Включенный в wp-config.php режим отладки (WP_DEBUG=true
) показал стопку уведомлений (ошибки php уровня E_NOTICE) на странице настроек плагина в админке.
1 | Trying to get property of non-object ... |
Сама форма выглядела сломанной, отсутствовали заголовки разделов и все настройки были сброшены. При попытке заполнить и сохранить поля получал белый экран с ошибкой save() on null
.
Подробнее →
В простейшем случае, слить несколько изображений можно вот так:
1 2 3 4 | convert -page +0+0 img0.png \ -page +256+0 img1.png \ -page +512+0 img3.png \ -background none -layers merge +repage merged.png |
где с помощью аргумента -page
передаётся смещение сливаемого изображения относительно границ получаемого изображения (merged.png).
Подробнее о слиянии изображений и вообще использовании команд пакета ImageMagick
написано здесь.
У меня же возникла необходимость выполнить слияние большого количества тайлов (более 1500) в одно большое изображение, в связи с чем был написан скрипт, который бодро-пакетно это всё выполняет. Подобный скрипт мне понадобился, чтобы склеить множество тайлов, выдранных с частного гуглмапса в полноценную карту высокого разрешения.
Подробнее →
Сначала экспортируем видеофайл в изображения формата JPEG:
1 | mplayer /home/oktopus/tmp/video.mp4 -vo jpeg |
В текущей директории будет создано множество картинок вида 0000000N.jpg, которые являются кадрами из видео.
Подробнее →