пятница, 22 марта 2019 г.

Linux error: mount: /tmp not mounted or bad option

Было: /tmp отдельная партиция монтирующаяся с опциями nodev,nosuid,noexec
После миграции на RAID10 партицию не создавали. При установке apt появилась ошибка
mount: /tmp not mounted or bad option
Причина:
в apt.conf.d каталоге в файле 50invoke содержимое

DPkg::Pre-Invoke{"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};

Это нужно, чтобы была возможность устанавливать обновления.
Чтобы сохранить секьюрность и устранить проблему, пользуемся тем что в линуксе все файл,
добавляем строчку в /etc/fstab
/tmp    /tmp    none    bind,nodev,nosuid,noexec    0 0
И выполняем от рута
mount -o bind,nodev,nosuid,noexec /tmp /tmp
Хорошая ссылка по этой теме.

среда, 20 марта 2019 г.

Linux восстановление из резервной копии

link
1) загрузиться в resque mode выполнить бэкап. Если boot на отдельной партиции, то бэкап boot тоже нужно сделать
a) tar -cvpzf /path/to/backup.tar.gz --exclude=/path/to/backup.tar.gz --one-file-system /

b) или, быстрее, сразу на удаленную машину 1.2.3.4 Предварительно сгенерив ssh-ключ и записав на машину с бэкапом
tar cf - --one-file-system /mnt/backup/ -P | pv -s $(du -sb /mnt/backup/ | awk '{print $1}') | gzip | ssh -p 2202 user-backup@1.2.3.4 "cat - > /home/user-backup/backup18032019.tar.gz"


Linux установка GRUB GPT

Разбиение на партиции
Device          Start         End     Sectors  Size Type
/dev/sda1        2048        4095        2048    1M BIOS boot
/dev/sda2        4096     1028095     1024000  500M Linux filesystem
/dev/sda3     1028096  4295995391  4294967296    2T Linux filesystem
/dev/sda4  4295995392  4304383999     8388608    4G Linux filesystem
/dev/sda5  4304384000 35162803598 30858419599 14.4T Linux filesystem

/dev/sda1 - неотформатированный раздел 1М
Метка установлена с помощью gdisk /dev/sda, опция t - ef02 метка
/dev/sda2  - партиция для /boot, здесь будут файлы grub и ядра
/dev/sda3 - системный диск, / корень
/dev/sda4 - своп
/dev/sda5 - для данных

/etc/fstab заполнил с UUID из blkid

Установка с помощью chroot. Система загружена в resque mode с помощью Grml livecd.

вторник, 12 марта 2019 г.

Python Mongodb examples

1) count of hits within day

db.aclog.find().limit(1)
{ "_id" : ObjectId("5c8668883896e834e079d372"), "ip" : "74.208.58.75", "datetime" : "06/Mar/2019:06:25:15 +0000", "getpost" : "GET /wppluginfile/defscript HTTP/1.0", "status" : "200", "sbyte" : "31", "refer" : "-", "agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36", "loadtime" : "0.011" }


from pymongo import MongoClient
import pprint

conn = MongoClient()
db = conn.accesslog
coll = db.aclog

pipeline = [{"$project": {"_id": 0, "day_of_month": {"$substr": ["$datetime", 0, 2]}}},
    {"$group": {"_id": {"day_of_month": "$day_of_month"}, "hits": {"$sum": 1}}},
    {"$sort": {"hits": -1}}
]

pprint.pprint(list(db.aclog.aggregate(pipeline)))

conn.close()

result
[{'_id': {'day_of_month': '05'}, 'hits': 157148},
 {'_id': {'day_of_month': '06'}, 'hits': 61932}]

"$substr": ["$datetime", 0, 2] - cut the date from "06/Mar/2019:06:25:15 +0000"

вторник, 5 марта 2019 г.

Linux Python parse dynamic js site

1) Install google-chrome on server
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | tee /etc/apt/sources.list.d/google-chrome.list
apt update && apt -y install google-chrome-stable
google-chrome --version
Google Chrome 72.0.3626.121

суббота, 2 марта 2019 г.

Linux phpmyadmin nginx config

с git репозитория
1) git clone https://github.com/phpmyadmin/phpmyadmin.git
2) composer update --no-dev
3) yarn install

релиз с сайта
1a) просто скачать zip архив с сайта
4) permissions www-data:www-data, nginx config

server
{
    listen <IP>;
    server_name phpmyadmin.server.tld;

    root /var/www/phpmyadmin;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ ^/(.+\.php)$
    {
        try_files $uri = 404;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_index index.php;
    }

    error_log /var/log/nginx/phpmyadmin_error.log;
    access_log /var/log/nginx/phpmyadmin_access.log;
}