Skip to main content

Posts

Showing posts from February, 2017

File /etc/resolv.conf chỉ chứa được 3 nameserver

File /etc/resolv.conf trên các hệ điều hành dùng nhân Linux dùng để chứa thông tin về DNS server mà máy sẽ sử dụng. Ví dụ muốn dùng Public DNS server của Google thì viết vào file này nội dung: nameserver 8.8.8.8 nameserver 8.8.4.4 # thêm dòng nữa cho chắc, nhỡ cái đầu toi ta dùng cái 2 😎 nameserver 208.67.222.222 # đây là OpenDNS server nameserver 9.6.6.9 # dòng này không có tác dụng, chỉ 3 dòng nameserver đầu tiên có tác dụng. Đây là bug được report từ năm 2005 nhưng tới nay vẫn chưa được giải quyết, xem tại RedHat Đây là nội dung file /etc/resolv.conf của 1 server bình thường: root@81023a4b3012:/# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 8.8.8.8 nameserver 8.8.4.4 Chú ý là nameserver chứ không phải servername . như NGINX là HTTP server, Postfix là SMTP server thì đây là nameserver (DNS server).

[systemd] journalctl cho người mới tập chơi

Lên Ubuntu 16.04, hệ thống init Upstart đã được thay thế bằng hệ thống systemd, kèm theo nhiều thay đổi khác, trong đó đáng chú ý nhất là cách xem log trên server mãi mãi thay đổi từ đây. Không còn syslog, rsyslog ... nữa mà tất cả log đổ vào một chương trình duy nhất, có tên journald Tìm hiểu câu lệnh journalctl sử dụng các câu lệnh tìm hiểu câu lệnh $ for cmd in whatis whereis; do $cmd journalctl; done journalctl (1)       - Query the systemd journal journalctl: /bin/journalctl /usr/share/man/man1/journalctl.1.gz $ dpkg -S $(which journalctl) systemd : /bin/journalctl Vậy journalctl được cung cấp bởi package ``systemd``, nó là một cộng cụ để query (truy vấn) "the systemd journal" (journald). systemd journal là một daemon , một bộ phận của systemd, là một system service thực hiện thu thập và lưu trữ dữ liệu logging. Nó nhận dữ liệu từ nhiều nguồn như kernel log message (kmsg), system log messages (syslog), stdout/stderr của các system service,...

[Python] function là object

Nếu có coi function là một cái gì đó đặc biệt, khác biệt với mọi thứ còn lại trong Python thì có thể bạn đã sai, hay ít nhất cũng cần nghĩ lại sau khi xem các đặc điểm của function trong bài này. Python lambda Function là object, như mọi thứ khác trong Python. Integer là object, string là object, và function không phải ngoại lệ. $ python3 >>> type(5) <class 'int'> >>> type('http://pymi.vn') <class 'str'> >>> type(True) <class 'bool'> >>> type(len) <class 'builtin_function_or_method'> Nếu biết về lambda trong Python, bạn sẽ thấy rõ hơn function là cái gì: >>> double = lambda x: x*2 >>> type(double) <class 'function'> >>> double(21) 42 lambda tạo ra 1 object kiểu function (tưởng tượng ra 1 cục tròn tròn), sau đó ta gán (bind) tên ``double`` cho object đó. Nó tương tự như việc gán tên cho 1 string: >>> name = ...

Cấu hình hệ thống email để không bị quẳng vào Spam

Mail spam và OpenDKIM Cài đặt và vận hành 1 hệ thống email là một trong những thứ lằng nhằng nhất khi làm sysadmin . Một hệ thống email hoàn chỉnh hoạt động sẽ cần đến khoảng một chục thành phần khác nhau, nhưng hoạt động là chưa đủ, để email gửi ngon lành, không bị vào Spam thì phải hiểu thêm một đống thứ nữa. Khi gửi mail đến Gmail, hệ thống Gmail sẽ coi mail của bạn là spam nếu email đó chưa authenticated. Xem đầy đủ tại đây: https://support.google.com/mail/answer/81126?hl=en#authentication Google yêu cầu hệ thống của bạn khi gửi mail phải - "Sign message" bằng DKIM - Phải có SPF DNS record tương ứng với hệ thống mail - Phải có DMARC policy (DNS record) Một hệ thống mail chỉ có mỗi mail server (MTA-E.g: postfix) thì khả năng vào sọt rác là rất cao, thậm chí còn bị Gmail reject , không nhận mail. Cài đặt OpenDKIM Xem tại Ubuntu wiki và ArchLinux wiki chú ý: khi dùng với postfix, mặc dù đã config cho postfix đọc từ UNIX socket trong /var/run/opendkim nhưng sẽ báo ...

Dựng HTTP server bằng một câu lệnh

Đôi khi ta cần dựng 1 HTTP server, trong một nháy mắt 😎 Để: - xem nội dung 1 file html - chia sẻ file siêu tốc (tất nhiên không an toàn, ai có link cũng tải được) Giải pháp: - mọi giải pháp cần file config như NGINX, Apache đều bị loại do vượt quá yêu cầu thiết lập dưới 1 phút. Các giải pháp được đề cử 😍 busybox Nếu không có sẵn trên máy # apt-get install -y busybox $ busybox httpd -f -p 9999 -h -f : chạy foreground -p: port -h: home, thư mục sẽ phục vụ, mặc định là thư mục hiện tại Khi truy cập vào IP:9999, ta sẽ nhận được response 404 nếu không có file index.html nào trong thư mục được phục vụ. Để truy cập các file khác, ta phải tự chọn trên URL chứ không có danh sách. Ví dụ: để tải file destroy.mp4 trong thư mục phục vụ , truy cập vào http://IP:9999/destroy.mp4 Twisted  là một Python package trước tiên phải cài twisted: $ pip install twisted $ twistd -n web -p 8080 --path . Truy cập IP:8080 sẽ nhận được danh sách các file trong thư mục chỉ ra bởi...

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG