Auto mount hdd

 

sudo blkid # to view UUID
sudo vi /etc/fstab
UUID=<uuid> <pathtomount> <filesystem> defaults 0 0

 

Mount new hdd

sudo lsblk
sudo cfdisk /dev/vdb
sudo mkfs.ext4 /dev/vdb1
sudo mount /dev/vdb1 /files

 

macOS ip

link

shows all of the interfaces and their IPs

ifconfig
ipconfig getifaddr en0
ifconfig | grep "inet "| grep -Fv127.0.0.1| awk '{print $2}'

 

 

Запись опубликована автором в рубрике ip.

test server

sudo less /var/log/dmesg
sudo less /var/log/messages
iostat 1 10
for x in `seq 1 1 30`; do ps -eo state,pid,cmd |grep "^D";echo "-"; sleep 2; done

top -bn 1 | head -15

Подключение Active Storage к Yandex Object Storage

link

Для работы с Yandex Object Storage необходимо еще:

  1. прописать в Gemfile`gem “aws-sdk-s3”, require: false` и потом естественно bundle install
  2. прописать у сервиса yandex параметр `region: ‘ru-central3’`

PS если ранее не пользовались, то выполнить поддержку Active Storage:

3. `rails active_storage:install`

4. `rails db:migrate`

И вот только после этого будет все работать.

Пояснение относительно gem-а:

Active Storage http://rusrails.ru/active_storage_overview#servis-amazon-s3 требует указанный выше gem для работы с Amazon S3. Это нужно так как Yandex Object Storage поддерживает методы Amazon S3 https://cloud.yandex.ru/docs/storage/s3/, то и устанавливаем его https://github.com/aws/aws-sdk-ruby

Пояснение относительно ключа region:

Без него не работало, так как трубуется указание ключа региона https://cloud.yandex.ru/docs/storage/s3/signing-requests

 


Для начала, нам нужны ключи для доступа к API. Их можно создать во вкладке “Сервисные аккаунты”: Создать новый ключ > Создать ключ доступа. Идентификатор ключа будет выполнять роль YOUR_ACCESS_KEY_ID, а Секретный ключ, соответственно, YOUR_SECRET_ACCESS_KEY.

Точкой отсчёта мы возьмём стандартный конфиг от Амазона, который лежит в config/storage.yml:

amazon:
   service: S3
   access_key_id: 'YOUR_ACCESS_KEY_ID'
   secret_access_key: 'YOUR_SECRET_ACCESS_KEY'
   region: eu-north-1
   bucket: bucketname

Для подключения к стороннему хранилищу, нам нужно указать для него эндпоинт, в случае с яндексом это будет:

https://storage.yandexcloud.net

Также нам понадобится установить переменную force_path_style в true, чтобы AS использовал нужный нам тип URL. Итого получим такой конфиг:

yandex:
  service: S3
  access_key_id: 'YOUR_ACCESS_KEY_ID'
  secret_access_key: 'YOUR_SECRET_ACCESS_KEY'
  bucket: bucketname
  endpoint: 'https://storage.yandexcloud.net'
  force_path_style: true

Останется в конфиге окружения указать Яндекс:

Rails.application.configure do
  ...
  config.active_storage.service = :yandex
  ...
end

После этого можно использовать апи Active Storage в своем приложении.

Prevent Postgresql from running at startup

29

Note that with PostgreSQL 9.0 (and probably newer) on Mac OS 10.6.8 (and probably older), in order to prevent the PostgreSQL server from auto-starting, you have to:

  1. Go to /Library/LaunchDaemons/
  2. Open com.edb.launchd.postgresql-9.0.plist in an editor as root(replace 9.0 with your correct version number), e.g. sudo vim com.edb.launchd.postgresql-9.0.plist.
  3. Locate the line <key>RunAtLoad</key>
  4. Change the next line from <true/> to <false/>
  5. Save and exit.

That should do it. Also, if you want to stop the server immediately, without restarting, su to postgres and run /Library/PostgreSQL/9.0/bin/pg_ctl stop -D<your data dir>. You can find out which is your current data dir with ps aux|grep postgre.

Source: http://forums.enterprisedb.com/posts/list/2240.page#8321

Создание ссылок (symlink) в Unix/Linux

Хотелось бы рассказать как можно создавать ссылки (симлинки) в ОС Unix/Linux. В своей теме «Создание ссылок (symlink) в Unix/Linux» я на готовом примере покажу как это делается. Существуют несколько видов ссылок, и я расскажу в чем разница между ними.

Симлинк или мягкая ссылка представляет собой особый тип файла, который содержит ссылку на другой файл или каталог в виде абсолютного или относительного пути.

Жёсткой ссылкой — это структурная составляющая файла которая описывает его элемент каталога.

Создание ссылок (symlink) в Unix/Linux

В этом подразделе, я расскажу какие бывают симлинки и в чем они отличаются.

Мягкая ссылка (Soft link):

  1. Мягкие ссылки используют различные номера инод чем основные файлы.
  2. Мягкие ссылки становится полезными, если исходный файл был удален.
  3. Мягкие ссылки могут быть созданы из каталогов.
  4. Мягкая ссылка может быть создана на пересечении файловых систем.

Синтаксис:

sh
2 lines
$ ln -s {/путь/к/файлу} {файл-линк} - это для файлов.
$ ln -s {/путь/к/директории} {имя-линки} - это для директорий.

Для того чтобы создать симлинк в линукс используется следующая команда:

sh
1 lines
# ln -s /home/captain/linux-notes.org.txt /home/captain/linux-notes.org-softlink.txt

И так, я создал симлинк linux-notes.org.conf на на тот же файл но который будет расположен в другой директории. После создания симлинка, необходимо сменить права на него:

sh
1 lines
# chown -h your_user:your_group /home/captain/linux-notes.org-softlink.txt

Для проверки номера иноды:

sh
2 lines
$ ls -li /home/captain/linux-notes.org.txt /home/captain/linux-notes.org-softlink.txt

Получаем:

sh
2 lines
392072 lrwxrwxrwx. 1 root root 33 Sep 14 10:37 /home/captain/linux-notes.org-softlink.txt -> /home/captain/linux-notes.org.txt
391822 -rw-rr. 2 root root 0 Sep 14 10:36 /home/captain/linux-notes.org.txt

Я создал симлинк на файл, так же, можно создавать симлинка на целую папку, для этого используйте:

sh
1 lines
# ln -s /opt/directory /home/symlink-to-opt-dir

И так, я создал симлинк symlink-to-opt-dir на папку /opt/directory. После создания симлинка, необходимо сменить права на него:

sh
1 lines
# chown -h your_user:your_group /home/symlink-to-opt-dir

Вот и все, очень просто, и полезно.

Для проверки номера иноды:

sh
1 lines
$ ls -ld /opt/directory /home/symlink-to-opt-dir

Чтобы удалить, используйте:

sh
2 lines
$ rm·/home/captain/linux-notes.org.txt
$ rm/home/captain/linux-notes.org-softlink.txt

И аналогично для каталогов.

Если вы удалите мягкую ссылку (/home/captain/linux-notes.org-softlink.txt), то сам файл данных будет по-прежнему находится там же (/home/captain/linux-notes.org.txt). Тем не менее, если вы удалите /home/captain/linux-notes.org.txt, то /home/captain/linux-notes.org-softlink.txt станет сломанной ссылкой и данные будут потеряны.

Жесткие ссылки (Hard Links):

  1. Жесткие ссылки использует тот же номер иноды что и основные файлы.
  2. Нельзя создать жесткие ссылки на каталоги.
  3. Жесткие ссылки не могут быть созданы на пересечении файловых систем.
  4. Жесткие ссылки всегда относится к источнику, даже если они перемещаются или удаляется.

Чтобы создать «жесткую ссылку», используйте:

sh
1 lines
$ ln /home/captain/linux-notes.org.txt /home/captain/linux-notes.org-hardlink.txt

Проверяем номер иноды:

sh
1 lines
$ ls -li /home/captain/linux-notes.org.txt /home/captain/linux-notes.org-hardlink.txt

Получаем:

sh
2 lines
391822 -rw-rr. 2 root root 0 Sep 14 10:36 /home/captain/linux-notes.org-hardlink.txt
391822 -rw-rr. 2 root root 0 Sep 14 10:36 /home/captain/linux-notes.org.txt

Оба файла имеют одинаковые иноды (одинаковое количество индексных дескрипторов). Если нужно удалить «жесткую ссылку», то используйте команду:

sh
1 lines
# rm -rf·/home/captain/linux-notes.org-hardlink.txt

Если вы удалите жесткую ссылку, ваши данные будут там. Если вы удалите /home/captain/linux-notes.org.txt то файл будет по-прежнему доступен через жесткую ссылку

Жесткие ссылки (Hardlink) vs Мягкие ссылки (Softlink) в UNIX/Linux

  • Как я говорил ранее, жесткие ссылки не могут быть созданы для директорий.
  • Жесткие ссылки не могут использоваться на пересечении границ файловых систем ( Нельзя создать сылку /tmp и примонтированную на /tmp ко 2-му  HDD который смонтирован на/harddisk2).
  • Символические ссылки (мягкие ссылки) ссылаются на символичный путь с указанием абстрактного расположение другого файла.
  • Жесткие ссылки, ссылаются к определенному местоположению физических данных.

На этом, моя тема «Создание ссылок (symlink) в Unix/Linux» завершена. Не сильно сложная тема, но очень полезная.

Запись опубликована автором в рубрике ln.

Отмена последнего коммита в git

link

Допустим, вы сделали commit в git, но поняли, что он недостаточно хорош. В таком случае можно продолжить правки, а при следующем коммите набрать

    git commit -a --amend

Ключ --amend (улучшить, в переводе с английского) позволяет добавить к последнему коммиту новые изменения.

Если вы сделали commit в git, но поняли, что он достаточно плох, то можно сделать и так:

    git reset --soft HEAD\^

or

    git reset --soft HEAD^

Эта команда отменит последний коммит (но не изменения, которые вы внесли, они сохранятся).

Если последний коммит отвратителен, то можно вообще его удалить:

    git reset --hard HEAD^

Все это работает, если вы не опубликовали свои изменения. В случае, если вы их опубликовали, то не остается ничего другого, как сделать коммит, который отменяет какой-то коммит:

    git revert commit-sha1

Ну, а потом опубликовать поскорее его командой git push.

Кстати, моя компания сделала отличный однодневный мастер-класс по git, обязательно приходите, расскажем вам обо всех тонкостях работы с гитом и не только.

Хорошие материалы по git можно посмотреть здесь:

7 hotkeys fo ST

Sublime Text Shortcut Commands Mac OS Windows/Linux
Goto Anywhere ⌘ + R Ctrl + R
Open any file ⌘ + P Ctrl + P
Show/Hide sidebar ⌘ + K and ⌘ + B Ctrl + K and Ctrl + B
Duplicate lines ⌘ + ⇧ + D(Duplicate Lines), ⌘ + X(Cut) and ⌘ + V(Paste) Ctrl + Shift + D(Duplicate line), Ctrl + X(Cut) and Ctrl + V
Goto line number ⌘ + G Ctrl + G
Multiple cursors ⌘ + D Ctrl + D
Spell check F6 F6
Do Anything Ctrl + Shift + P Ctrl + Shift + P

Install mongodb on MacOS by steps

link   link2

For example install MondoDB 2.6.12 on macOS Catalina

  1. Download, extract and move:

    wget http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.6.12.tgz

    tar xzf mongodb-osx-x86_64-2.6.12.tgz

    mv mongodb-osx-x86_64-2.6.12/ /usr/local/mongodb/

  2. Add to file ~/.zshrc this:

    export PATH="$PATH:/usr/local/mongodb/bin"

    PS: .bash_profile or .profile not worked in my case

  3. Mkdir directory for data and set rights:

    mkdir -p ~/data/db

    chown -R mongodb.mongodb ~/data/db

  4. Run MongoDB:

    mongodb --dbpath ~/data/db