Category Archives: Software

sed: if then else

Chúng ta cần dò trong tập tin một từ khóa, tạm gọi là SEARCH, nếu tìm thấy thì thay bằng REPLACE, còn không thì thêm REPLACE vào cuối file. Tình huống tương tự vậy gặp nhiều trong thực tế và có các ứng dụng chuyên dùng như postconf với tập tin main.cf, nhưng postconf chậm nên chúng ta thử dùng sed.

sed '/SEARCH/{h;s/SEARCH/REPLACE/};${x;/^$/{s//REPLACE/;H};x}' -i file
Continue reading

Comments Off on sed: if then else

Filed under Software

Script cài đặt Postfix chỉ gởi email

Giả sử chúng ta có website /ứng dụng web cần gởi email cho user (thí dụ như thông báo mật khẩu). Trong hầu hết trường hợp, user không cần trả lời cho email họ nhận được. Trong trường hợp này, chúng ta có thể cài đặt một SMTP server chỉ gởi mail trên web server bằng cách dùng Postfix, mặc dù cũng có những MTA khác như msmtp, smtp…

Ưu điểm của việc dùng Postfix là email người gởi có dạng user@mydomain.com. Ngoài ra vì Postfix không kiểm tra email người gởi có thuộc domain của mail server hay không, nên có thể gởi email nhân danh bất kỳ ai, thí dụ no-reply@apple.com. Tuy nhiên email mạo danh thường nằm trong thư mục spam của người nhận.

Continue reading

Comments Off on Script cài đặt Postfix chỉ gởi email

Filed under Software

diff so sánh file theo dòng

diff thay cho difference (sự sai khác). Lệnh này hiển thị sự sai khác của các file bằng cách so sánh theo dòng. Không giống như các lệnh tương tự như cmp và comm, nó cho thấy dòng nào của file khác với file đối chiếu.

Cú pháp:

diff [options] File1 File2 
Continue reading

Comments Off on diff so sánh file theo dòng

Filed under Software

Nâng cấp PHP 7.3 lên PHP 7.4 /8.0

Nếu đang dùng PHP 7.x thì nên nâng cấp đến phiên bản cuối là 7.4 hay nâng cấp lên 8.0. Quá trình này phải thực hiện thủ công theo nhu cầu người dùng vì lý do tương thích với ứng dụng web. Thí dụ như WordPress hiện chỉ tương thích với PHP 7.4, có thể phải chờ đến giữa năm 2022 mới có thể làm việc với PHP 8.0

Một đặc điểm của PHP là phiên bản sau nhanh hơn phiên bản trước.

Continue reading

Comments Off on Nâng cấp PHP 7.3 lên PHP 7.4 /8.0

Filed under Software

reCaptcha v3

reCaptcha v3 không yêu cầu người dùng “xem hình đoán chữ” hay làm gì đó để giúp phân biệt người và robot. Nó tự động thu thập các thao tác chuột, phím và nhiều thứ khác rồi chấm điểm. Điểm gần 0 thiên về robot, điểm gần 1 thiên về người.

reCaptcha v3 gắn một logo ở góc dưới bên phải của trang web có sử dụng dịch vụ này.

Continue reading

Comments Off on reCaptcha v3

Filed under Software

cfip.sh v.20210408

Cập nhật IP cho domain, subdomain quản lý bới cloudflare.com

Cú pháp: cfip [-f] [ip] [domain [@|*|sub[,…]]]
    -f : thử cập nhật dù theo ghi chép ip chưa thay đổi
    ip : cập nhật theo ip này
   sub : thay cho sub.domain
     @ : thay cho domain
     * : tất cả subdomain, trừ @

Các giá trị mặc định khi chỉ gọi tắt cfip domain @,\* trong đó domain được trích ra rừ $(hostname) hoặc @,\* nếu có chỉ định domain như cfip domain

Script cài đặt jq nếu chưa có, jq là con dao Thụy Sĩ để xử lý các đối tượng Json.

Continue reading

Comments Off on cfip.sh v.20210408

Filed under Software

Dovecot: master user để đăng nhập vào mọi tài khoản mail

Master user phải là user không tồn tại, thậm chí có thể không có phần @domain.org

Giả sử master user là tui

  1. Sửa cấu hình dovecot

nano /etc/dovecot/conf.d/auth-master.conf.ext

# Authentication for master users. Included from 10-auth.conf.
# Need to tell dovecot the separator to use
auth_master_user_separator = *
passdb {
  driver = passwd-file
  master = yes
  args = /etc/dovecot/master-users
  # Original line, pass=yes didn't work. Use this instead
  result_success = continue
}
Continue reading

Comments Off on Dovecot: master user để đăng nhập vào mọi tài khoản mail

Filed under Software

Mảng Bash và Json

Mảng Bash có dạng

bash_arr=('a', 'b', 'c')

Trong khi mảng Json có dạng

json_arr=["a", "b", "c"]

# biểu diễn dạng chuỗi
json_arr='["a", "b", "c"]'

Vì json_arr thường biểu diễn dưới dạng chuỗi nên cần dùng echo để chuyển cho jq phân tích.

Continue reading

Comments Off on Mảng Bash và Json

Filed under Software

5 cách chạy ứng dụng khi RPi khởi động

  1. rc.local
  2. .bashrc
  3. init.d tab
  4. systemd
  5. crontab
Continue reading

Comments Off on 5 cách chạy ứng dụng khi RPi khởi động

Filed under Software

DNS và local DNS cho mail server

Với domain example.com, chúng ta tạo mail server cho email dạng user@example.com, sau đó có thể gởi nhờ nhiều domain khác cho mail server để có các email dạng user@other.domain.

Chúng ta cần các DNS record:

  1. A mail.example.com: trỏ đến IP mail server
  2. MX example.com: trỏ đến mail.example.com
  3. CNAME smtp.example.com: trỏ đến mail.example.com
  4. CNAME imap.example.com: trỏ đến mail.example.com
  5. CNAME autoconfig.example.com: trỏ đến mail.example.com
  6. CNAME autodiscover.example.com: trỏ đến mail.example.com
  7. SRV _autodiscover._tcp.example.com: trỏ đến mail.example.com

Ngoài ra còn một số record phục vụ cho “đối ngoại” của mail server, không cần phân tích ở đây.

Continue reading

Comments Off on DNS và local DNS cho mail server

Filed under Software