Git pull из определенной директории (без cd)

git >= 1.8.5
git -C /home/project pull
12 декабря 2014, 10:04

Решение проблемы с keglim в nginx

Если у вас зависает nginx и в топе вы видите следующее
21106 www           1  20  -10 49668K 24392K keglim 13   4:33   8.50% nginx
То не обходимо увеличить kern.ipc.nmbjumbop
sysctl -w kern.ipc.nmbjumbop=400000
Также стоит записать в /etc/sysctl.conf
kern.ipc.nmbjumbop=4000000
11 декабря 2014, 08:24

Проверка и восстановления дисков при помощи fsck

Это нужно делать в single mode
fsck -y -f
28 ноября 2014, 13:46

Получение серийного номера HDD в Centos

hdparm -I /dev/sda | grep Serial
28 ноября 2014, 12:45

Получение серийного номера HDD во FreeBSD

camcontrol identify ada1 | grep serial
28 ноября 2014, 12:41

Задание max open files на Centos

Значение по умолчанию очень маленькое 1024, для многочисленных коннектов надо его увеличить. Изменить это значение можно так, но это действует только до перезагрузки.
ulimit -n 200000
Чтобы значение не сбрасывалось пишем в /etc/sysctl.conf
fs.file-max = 200000
Также пишем в /etc/security/limits.conf
* hard nofile 200000
* soft nofile 200000
И еще устанавливаем значение тут (в необходимости этого пункта не уверен)
echo 200000 > /proc/sys/fs/file-max
22 ноября 2014, 23:03

Крутилка баннеров на JavaScript

По мотивам article#55
<div id="banner"></div>
<script>
    function showBanner(elem) {
        var banners = [
            {
                'src': 'http://url1.jpg',
                'url': 'http://url1.page',
                'alt': 'title1'
            },
            {
                'src': 'http://url2.jpg',
                'url': 'http://url2.page',
                'alt': 'title2'
            },
            {
                'src': 'http://url3.jpg',
                'url': 'http://url3.page',
                'alt': 'title3'
            }
        ];
        var banner = banners[Math.floor(Math.random() * banners.length)];
        elem.innerHTML = '<a href="' + banner.url + '"><img src="' + banner.src + '" alt="' + banner.alt + '" />';
    }
    
    showBanner(document.getElementById('banner'));
</script>
17 ноября 2014, 23:50

Catching errors in PHP

15 ноября 2014, 13:40

Проверка bash на уязвимость shellshock

Если эта команда выводит "busted", то надо обновить bash
env X="() { :;} ; echo busted" bash -c "echo stuff"
11 ноября 2014, 13:50

mod_php во FreeBsd 10

Этот модуль убрали из порта php5 Теперь его нужно ставить отдельно из
/usr/ports/www/mod_php5
либо
/usr/ports/www/mod_php55
10 ноября 2014, 12:32

Простейший clickunder

При клике в любое место на странице перекидывает на яндекс, делает это один раз в сутки (инфа в куках).
<!doctype html>
<html>
<body>
<a href="http://google.com">click</a>
</body>
<script>
document.onmouseup = function(){
    if (getCookie('bdclk') == undefined) {
        setCookie('bdclk', 1, '/', 24*3600);
        window.open('http://www.ya.ru', '_blank'); 
        return true;
    }
    return false;
};

function getCookie(name) {
    if (/\W/.test(name)) return undefined;
    var matches = document.cookie.match(new RegExp("(?:^|; )" + name + "=([^;]*)"));
    return matches ? decodeURIComponent(matches[1]) : undefined;
}

function setCookie(name, value, path, expires) {
    var date = new Date( new Date().getTime() + expires * 1000 );
    document.cookie = name + '=' + value + '; path=' + '/' +'; expires=' + date.toUTCString();
    return true;
}
</script>
</html>
5 ноября 2014, 17:49

Узнать текущий коммит в git

git log -1
Также текущий хеш коммита
git rev-parse HEAD
4 ноября 2014, 11:31

Как восстановить сайт через google cache

Наверное заметили, что сайт не работал некоторое время? Как оно обычно и бывает, я потерял дамп базы (точнее он оказался битым, но не суть). Как же восстановить все статьи на сайте? Я сразу полез в кэш гугла и накатал вот такой скрипт
<?php
for ($i = 1; $i <= 395; $i++) {
    $file = __DIR__ . '/storage/' . $i . '.html';
    echo "get $i \n";

    if (!file_exists($file)) {
        copy("http://webcache.googleusercontent.com/search?q=cache:snippets.pp.ru/article/$i", $file);
        sleep(10);
    }
}
?>
С локального компа мне не удалось скачать все статьи, гугл меня забанил где-то после 80 штук, на каждый запрос вылазила капча, поэтому пришлось задействовать несколько сервачков :D Кстати, задание юзер агента и прочих заголовков не помогало, дело именно в частоте запросов, так что если будете качать с кеша гугла, то ставьте побольше таймауты, либо запасайтесь серваками. Но через пару дней гугл все равно разбанивает.
4 ноября 2014, 07:31

Установка ffmpeg на Centos 6.5

rpm -Uvh http://dl.atrpms.net/el6-x86_64/atrpms/stable/atrpms-repo-6-7.el6.x86_64.rpm
yum install -y ffmpeg ffmpeg-devel
4 ноября 2014, 07:12

iptables v1.4.12: can't initialize iptables table 'filter': Table does not exist

 sudo apt-get install linux-image-$(uname -r)
4 ноября 2014, 07:12

Установка EPEL репозитория в Centos 6

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
4 ноября 2014, 07:12

Решение проблемы с обновлением репозитория atomic в CentOS 6.5

warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID 4520afa9: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt

The GPG keys listed for the "CentOS / Red Hat Enterprise Linux 6 - atomicrocketturtle.com" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.
yum update atomic-release
yum upgrade
Если не помогло, то
get -q -O - https://www.atomicorp.com/installers/atomic | sh
4 ноября 2014, 07:12

Установка redis на windows

Заходим на
http://redis.io/download
Качаем версию для windows с гитхаба.
После распаковки запускаем
redis-server --service-install
redis-server --service-start
Проверка
redis-cli
127.0.0.1:6379>keys * 
4 ноября 2014, 07:12

Ассоциативная запись cron

@reboot = выполняется при запуске сервера
@yearly = 0 0 1 1 *
@annually  = @yearly
@monthly = 0 0 1 * *
@weekly = 0 0 * * 0
@daily 0 0 * * *
@midnight = @daily
@hourly = 0 * * * *
4 ноября 2014, 07:12

Как получить список участников группы Vkontakte

Если лень читать документацию
<?php
$groupId = 'mdk'; //ид группы
$offset = 0; //смещение
$limit = 100; //лимит
$fields = 'domain'; //запросим урл личной страницы 
$sort = 'id_desc'; //сортировка
 
$data = file_get_contents("https://api.vk.com/method/groups.getMembers?group_id=$groupId&v=5.21&sort=$sort&offset=$offset&count=$limit&fields=$fields");
$data = json_decode($data, true);
print_r($data);
4 ноября 2014, 07:12