Рабочий пример записи в fstab для unionfs-fuse
unionfs-fuse#/media/disk1=rw:/media/disk2=rw /media/unionfs_disk fuse allow_other,nobootwait 0 0
allow_other необходим, чтобы кто-то кроме root мог пользоваться смонтированной unionfs-fuse директорией.
Рабочий пример записи в fstab для unionfs-fuse
unionfs-fuse#/media/disk1=rw:/media/disk2=rw /media/unionfs_disk fuse allow_other,nobootwait 0 0
allow_other необходим, чтобы кто-то кроме root мог пользоваться смонтированной unionfs-fuse директорией.
Очень понравился сервис генерации картинок из текста, хотя он и без наворотов. Запишу его сюда, чтобы не забыть.
http://www.email2image.com/Convert-Email-to-Image.aspx
Все приборы врут,
Все, кто с нами - умрут.
Кольцевые дороги
Никуда не ведут.
Поскольку sed не использует регулярные выражения, а вместо регулярных выражений использует морально устаревшее, труднообъяснимое, мало понятное непойми что, мы его заменим конструкцией
perl -0777pe 's/search/replace/g' -i filename
Где
-0777 - символ, использующийся в качестве построчного разделителя вместо стандартного \n (значения от 0400 и выше заставят perl обработать сразу весь файл целиком в один заход, но 0777 является общепринятым соглашением для этой цели).
-p - встраивает вводимый вами код на perl в "печатающий цикл", который будет обрабатывать stdin построчно.
-e - Позволяет передать исполняемый код в качестве аргумента, а не файла.
-i - Заменяет строки указанного входного файла на результаты вывода perl.
Живой работающий пример:
perl -0777pe 's#(\s+else[\s]+)cnf="\$1/openssl.cnf"(\s+fi)#$1cnf="\$1/openssl-1\.0\.0\.cnf"$2#g' -i /etc/openvpn/easy-rsa/2.0/whichopensslcnf
Пользителка (пользявка) для .bashrc
greplace()
{
perl -0777pe "$1" -i $2
}
Или, что еще удобней и безопасней (-i надо добавлять вручную, чтоб заменило, а без -i в stdout для отладки выводить будет просто):
greplace()
{
perl -0777pe "$1" $2 $3
}
А теперь заменим все "echo" внутри файла filename на адрес нашего айпишника, который выдаст нам curl из своего stdout (при условии, что сервис по адресу http://myip.dnsomatic.com доступен и работает исправно, чего я гарантировать не могу).
greplace 's/echo/'`curl -s http://myip.dnsomatic.com`'/g' -i filename
На случай, если http://myip.dnsomatic.com или какая-либо другая команда, будет возвращать данные с пробелами или символом ", обернём `curl -s http://myip.dnsomatic.com` в "".
greplace 's/echo/'"`curl -s http://myip.dnsomatic.com`"'/g' -i filename
И ещё можно вынести за скобки s
greplace()
{
perl -0777pe s"$1" $2 $3
}
и писать вот так
greplace /search/replace/g filename
Правда без использования кавычек \ придётся экранировать: \\
greplace /\\s+/_/g filename
Спасибо всем этим прекрасным людям, лучшим сынам своего отечества, без которых этот пост был бы невозможен:
http://stackoverflow.com/questions/3365260/match-and-replace-multiple-newlines-with-a-sed-or-perl-one-liner
http://stackoverflow.com/questions/6302025/perl-flags-pe-pi-p-w-d-i-t
http://perldoc.perl.org/perlrun.html#Command-Switches
SHOW DATABASES
SELECT * FROM pg_database
SHOW TABLES
SELECT * FROM information_schema.tables
SHOW COLUMNS
SELECT * FROM information_schema.columns WHERE table_name ='table'
Спасибо Artem Nosulchik, копия его поста ниже:
PostgreSQL is one of the best database engines for an average web project and many who moves to psql from mysql (for example) often ask the following questions: what is the analog of “show tables” in postgres? or how can I get the list of databases in postgres like “show databases” in mysql? The answers are short:
mysql: SHOW TABLES
postgresql: \d
postgresql: SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';mysql: SHOW DATABASES
postgresql: \l
postgresql: SELECT datname FROM pg_database;mysql: SHOW COLUMNS
postgresql: \d table
postgresql: SELECT column_name FROM information_schema.columns WHERE table_name ='table';mysql: DESCRIBE TABLE
postgresql: \d+ table
postgresql: SELECT column_name FROM information_schema.columns WHERE table_name ='table';
Чтобы закрыть доступ к внешнему интернету, необходимо зайти на страницу
127.0.0.1:7657/i2ptunnelmgr
И в свойствах I2P HTTP Proxy и I2P HTTPS Proxy убрать значения "outproxy".
В моём случае это были "false.i2p" и "outproxyng.h2ik.i2p" соответственно.
После чего необходимо перезапустить роутер и дождаться инициализации туннелей.
To close external internet access provided through outproxies:
1. go to 127.0.0.1:7657/i2ptunnelmgr
2. delete "outproxy" value from "I2P HTTP Proxy" and "I2P HTTPS Proxy"
3. restart the i2p router and wait for tunnels initialization
linuxuser@linux:~$ psql admin=> CREATE ROLE username LOGIN PASSWORD 'password'; admin=> CREATE DATABASE databasename; admin=> GRANT username TO admin admin=> ALTER DATABASE databasename OWNER TO username; admin=> \q
СМЕНА postgres=# на postgres-# должна вызвать ПАДАЗРЕНИЕ что ты забыл поставить ';' и эта сука теперь ждёт пока ты введёшь ещё 10 команд, чтобы потом выкатить претензии, всё похерить и обосрать.
Важно помнить, что psql это программа из которой можно выйти только набрав \q (exit/quit/Ctrl+C не работают). Это явный признак, что её писал неуравновешенный шизоид, поэтому следует быть начеку.
Задание выполнил успешно. Рекомендую.
Шифровать надо всё, потому что если шифровать не всё, то зашифрованное привлекает внимание.
И опять этим занимаются частные компании. А государства, которые вроде как результат общественного договора с социумом о защите не прилагают никаких чтобы продлить жизнь или улучшить качество жизни своих граждан. В итоге то, что создано с целью стричь с нас деньги двигает мир вперед, а то, что создавалось для защиты и развития общества наоборот, превратилось в бесполезную обузу, даже ради приличия не придерживаясь былых принципов.