to post messages and comments.

Мега-ТЗ на систему бакапа из #2751337 таки вылилось в двухстрочный скрипт, который должен удовлетворить мои нехитрые потребности на 146% (получить архив с заданными данными/конфигами хоста лехким движением руки):

cat /home/backup/bin/backup-data.sh

#!/bin/sh
tar -cvzp -T /home/backup/bin/backup.lst -f /home/backup/data/`date +%y%m%d_%H%M`-`hostname`-cfg.tgz
find /home/backup/data/ -mtime +30 -delete

cat /home/backup/bin/backup.lst

/etc/RCS/
/etc/resolv.conf
...

Спасибо всем поучаствовавшым в тренде : ))

Чорный верх у гугла, который весь в белом и обтягивающем — эта пять.
Дезайнеров — казнить, нельзя помиловать : ) У меня эта срань вылезла в гугло-ридере и навязчиво начала выносить моск, хотя в гмейлах все осталось каноническим : ))

Переключается взад в белое и классическое обезьяно-скриптом: userscripts.org

ampercent.com

Слегка доработал скрипт вытаскивания из кэша флешплеера видеороликов. Теперь он не только работает, но ещё и сохраняет несколько открытых роликов.

#!/usr/bin/env bash
# Save cached videos from flash player

PID=`ps x | grep libflashplayer.so | grep -v grep | awk '{print $1}'`
FD=`lsof -p $PID | grep Flash | awk '{print $4}' | sed 's/[urw]//'`
for i in $FD; do
echo $i
cp proc$PID/fd/$i $i;
done

Он же: pastebin.archlinux.fr
Что это и зачем: habrahabr.ru

Однострочник, который пережимает все jpeg'и без потери качества (lossless по-нашему):
find . -iname \.jpeg -o -iname \.jpg -type f -print -execdir jpegtran -perfect -copy all -progressive -optimize -outfile temp.jpeg '{}' \; -execdir mv temp.jpeg '{}' \;
jpegtran идёт в пакете libjpeg. Параметр -progressive заставляет создавать т.н. прогрессивные jpeg'и. Это когда сначала загружается мазня, потом появляются контуры, потом видно уже лицо, а потом уже и вся картинка. На тестовых прогонах удавалось получить сокращения размера на 5-10%, в редких случаях до 20%.
Дополнительно из фоточек (т.е. jpeg'ов с exif-данными) можно удалить бесполезные миниатюры и выставить отметку времени файла по времени в exif (переведите часы на ваших мыльницах!). Для этого пригодна годная команда jhead:
find . -iname \.jpeg -o -iname \.jpg -type f -print -execdir jhead -dt -autorot -ft {} \;
-dt удаляет миниатюры, -ft выставляет время файла, -autorot поворачивает фоточки, согласно тегу ориентация (покупайте мыльницы с акселерометром!).
По мотивам braingears.ru

пишу массовый скрипт, который работает сразу с несколькими серверами, но вот как удалённо достучаться достучаться до консоли удалённого сервера? О_о погуглив нашел офигенное решение проблемы в виде PsTolls technet.microsoft.com :) оч. удобная штука ;)
если баян просьба не кидаться тапочками) вдруг кто то не знает

Ваяю небольшой классик для упрощения жизни со скриптами в ГуглоТаблицах. Т.к. я не шибко матёрый девелопер, не помешает ревью моего быдлокода. Просьба откликнуться готовых помочь. Код на javascript, желательно знание методов appscripts, но необязательно.


#!/bin/bash
# Перекодирует рекурсивно в текущем каталоге имена
# файлов и каталогов в транслит.

shopt -s nullglob

for NAME in *.mp3 ; do
TRS=`echo $NAME | sed "y/абвгдезийклмнопрстуфхцы/abvgdezijklmnoprstufxcy/"`
TRS=`echo $TRS | sed "y/АБВГДЕЗИЙКЛМНОПРСТУФХЦЫ/ABVGDEZIJKLMNOPRSTUFXCY/"`
TRS=${TRS//ч/ch};
TRS=${TRS//Ч/CH} TRS=${TRS//ш/sh};
TRS=${TRS//Ш/SH} TRS=${TRS//ё/jo};
TRS=${TRS//Ё/JO} TRS=${TRS//ж/zh};
TRS=${TRS//Ж/ZH} TRS=${TRS//щ/sh\'};
TRS=${TRS//Щ/SH\'} TRS=${TRS//э/je};
TRS=${TRS//Э/JE} TRS=${TRS//ю/ju};
TRS=${TRS//Ю/JU} TRS=${TRS//я/ja};
TRS=${TRS//Я/JA} TRS=${TRS//ъ/\`};
TRS=${TRS//ъ\`} TRS=${TRS//ь/\'};
TRS=${TRS//Ь/\'}
if [[ `file -b "$NAME"` == directory ]]; then
mv -v "$NAME" "$TRS"
cd "$TRS"
"$0"
cd ..
else
mv -v "$NAME" "$TRS"
fi
done