Saturday, 25 November 2017

pgrep để grep process

pgrep có cài sẵn trên mọi máy tính *NIX.
Nó nằm trong gói procps, một package cơ bản, chứa các câu lệnh thường ngày như `ps`, `kill`, `top`...

$ dpkg -S `which pgrep`
procps: /usr/bin/pgrep
`pgrep` thường chỉ được dùng để lấy đầu ra, làm đầu vào cho lệnh kill, mặc định, nó trả về list các PID của process có tên ứng với từ khóa tìm kiếm:

```
$ pgrep cron
978
```

Thường sau đó sẽ là: kill -9 978
Hay trong 1 câu:

```
kill -9 $(pgrep cron)
```
Hay dùng luôn câu lệnh pkill:
```
pkill -9 cron
```

`pgrep` có option ít ai để ý tới: `-a`

Wednesday, 22 November 2017

Vượt qua giới hạn 1 deploy key của GitHub

GitHub cho phép gắn`SSH  deploy key` vào từng repo, giúp ta có thể clone repo đó về để deploy (cài đặt chạy thật). Thế nhưng mỗi key chỉ được gắn vào 1 repo duy nhất.
Đây là giới hạn rất khó chịu nếu trên 1 máy tính (máy chủ) bạn cần clone về nhiều hơn 1 repo.

Giải pháp tiêu chuẩn GitHub đưa ra là người dùng cần tạo 1 tài khỏan khác, gắn key vào, rồi add tài khỏan đó vào các repo. Như vậy tài khỏan này đóng vai trò như 1 người dùng bình thường, 1 key có thể clone nhiều repo. Xem thêm giải pháp này ở help của GitHub

Vậy nếu không tạo được tài khỏan (bạn không phải admin) thì làm sao có thể clone nhiều repo?
...
...
...

Đây là một giải pháp khá "hack", đòi hỏi có hiểu biết chi tiết về SSH, và hơi "không đẹp".

Trước tiên, cần biết rằng khi ssh sử dụng private key, SSH client sẽ thử lần lượt theo thứ tự sau: