Giải thích log của lệnh sendmail

Bài này sẽ dịch lại một phần của trang: http://sendmail.org/~ca/email/doc8.12/op-sh-2.html Về nội dung liên quan đến format log của sendmail cũng ý nghĩa của từng trường. 0. Sendmail là gì Một phần mềm chạy trên hệ thống Linux (hoặc là *Nix). Có nhiệm vụ gửi mail - ta nên dùng từ phân phối (delivery) thì sẽ chuẩn xác hơn. Gửi mail (hay phân phối mail) nói đơn giản là sử dụng kết nối mạng (có thể là internet hoặc không) thực hiện gửi nội dung có định dạng bằng giao thức như SMTP,… đến máy chứa tài khoản người nhận. Nội dung mail sẽ được máy chủ phía nhận phân phối đến đúng user ta đã gửi. Nó chẳng khác gì một ứng dụng mạng bằng Socket mà nhiều người vẫn học. Nó chỉ khác là có các giao thức cụ thể để gửi dữ liệu (là các mail) đi thôi. Thường sẽ có 2 hình thức: Gửi trực tiếp và Gửi gián tiếp. Gửi trực tiếp: Gửi mạil từ máy đang chạy phần mềm sendmail đến máy chủ của người nhận mail, một phát đến luôn. Gửi gián tiếp: Chuyển mail đến một máy khác và nhờ máy đó đại diện gửi đến máy chủ của người nhận mail. Ví dụ: ta có thể gửi mail thông qua server của Google mail (tất nhiên là có thông tin tài khoản Google rồi) đến một địa chỉ bất kì ta muốn. Khi đó, mail đó sẽ giống như ta gửi trực tiếp từ tài khoản Google Mail trên web thôi. Tức là gửi 1 mail từ máy chạy sendmail đến máy chủ của người nhận thông qua Google Mail server. 1. Nói về syslog Hệ thống log hệ thống trong Linux được quản ly (thực ra là được vận chuyển) bởi phần mềm có tên syslog. Sẽ có một chương trình chạy ngầm (dạng daemon) gọi là syslogd. Chương trình này sẽ tiếp nhận hầu hết các log được đẩy ra từ các phần mềm hệ thống đang chạy rồi đẩy ra một đầu ra khác (thường luôn là file) Log của phần mêm sendmail cũng vậy. 2. Format Mỗi dòng log cho ứng dụng sendmail trong hệ thống gôm : timestamp, tên của máy đã tạo ra nó (để phân biệt với trường hợp log được tạo từ máy khác trong mạng), từ sendmail:, và một message đi kèm. Hầu hết các message bao gồm một dãy các cặp name = value. ...

tháng 11 2, 2019

Tensorflow và AVX

1. Lỗi liên quan đến CPU instruction của tensorflow Định cài đặt tensorflow-gpu trên con máy già chạy Intel Xeon X5672 và có gắng GTX 1060 3G để nghịch chút. Nhưng khi kiểm tra xem có chạy được không: >>> import tensorflow as tf Illegal instruction (コアダンプ) Vâng, là lỗi run-time - chỉ xảy ra khi chạy, chứ cài thì chưa xuất hiện vấn đề. 2. AVX là gì Ta tìm hiểu một chút về lỗi kể trên, thì hầu hết đề nói rằng: máy sử dụng CPU không hỗ trợ đầy tập lệnh mà tensorflow đang dùng. Phổ biến là thiếu là AVX - Advanced Vector Extension. Theo wikipedia: Advanced Vector Extension là phần mở rộng cho bộ vi xử lý kiến trúc x86 (cả Intel và AMD), được Intel đề xuất năm 2008. Lần đầu tiên được hỗ trợ trên bộ xử lý Sandy Bridge năm Q1/2011. Sau đó đến Q3/2011 thì AMD cũng hỗ trợ. AVX cung cấp tính năng mới cùng các lệnh mới và cấu trúc thực hiện cũng khác. ...

tháng 10 31, 2019

Chuyển sang site mới, tên miền mới

1. Lý do chuyển sang Wordpress hỗ trợ không tốt việc viết bằng markdown Cần một site nhẹ hơn Cần một cách quản lý bài viết dễ hiểu và rõ ràng hơn Chuyển hẳn sang một domain mới để dễ dang 2. Nền tảng sử dụng Lưu trữ: Github page Bộ sinh HTML : Hugo Tên miền: AWS 53

tháng 10 24, 2019

Bắt đầu về Docker

Docker, là công nghệ rất nổi và có ảnh hưởng đến hầu hết developer. Được coi là một công nghệ ảo hóa ở mức hệ điều hành khi so với các phương pháp ảo hóa phần cứng khác. Theo mình hỏi, kĩ thuật để làm việc này không mới, nó dựa trên kĩ thuật chroot có được sử dụng từ khá lâu trong linux. Nói là vậy, nhưng học để sử dụng thì cần bài bản chút, bài này mình sẽ tóm tắt lại trang Overview từ trang của Docker ...

tháng 2 6, 2019

Pickle - Thư viện Serialization/Deserialization trong Python

Gần đây khi chạy thử một vài thuật toán Deep Learning, đặc biệt là các thuật toán cung cấp source code sử dụng thư viện Caffe, có gặp một vài vấn đề liên quan đến module Pickle trong Python. Thực ra, bình thường cũng không định viết gì cả. Nhưng chợt nhớ ra mình cũng quan tâm đến chủ đề Serialization/Deserialization này. Nó có vai trò giống như ASN.1 mà có tìm hiểu hồi trước, hay phổ biến nhất của thể loại này là Protocol Buffer của Google, hay Apache Thrift. Thế là note lại cái để quên nó đi. ...

tháng 5 24, 2018

Khóa học online đầu tiên về Machine Learning (note 2) - Khó ~~

Tiếp theo bài trước trong loạt note về khóa học online đầu tiên về Machine Learning. Tuần 4 : Neurtal Networks : Biểu diễn Như đã biết, khi nói về dữ liệu, ta thường nói đến một loạt đặc trưng. Ví dụ: người thì có chiều cao, cân nặng, sở thích, etc. Và ta cũng đã biết về tạo cá đặc trưng đa thức khi các đặc trưng bậc 1 không đủ để miêu tả tốt dữ liệu. ...

tháng 5 23, 2018

Khoá học online đầu tiên về Machine Learning ( note 1) - Khó ~~

Cuối cùng cũng kết thúc khoá học Online đầu tiên về Machine Learnning. Do tiếng Anh cùi, nên dù nhìn sub liên tục nhưng vẫn vô số lần tua lại để xem. Khoá học rất hay, thầy Andrew NG giảng khá kĩ các khái niệm quan trọng. Dù mình biết Machine Learning nặng về Toán, đặc biệt Toán Tối ưu như machinelearningcoban.com viết, nhưng khoá này không tập trung vào những cái đó. Nó tập trung vào việc Intuition - Trực giác về Machine Learning. Ví dụ như giải quyết vấn đề gì. Quá trình Train là đi tìm cái gì. Quá trình Test làm gì. Rồi cách đánh giá một mô hình Machine Learning. ...

tháng 5 23, 2018

Thực hiện 3 phép tập hợp trên bash

Gần đây do phải làm việc crawling dữ liệu, nên có một chút ít động đến các phép toán tập hợp. Bài này sử dụng để note lại các câu lệnh để thực hiện các phép toán phổ biến với tập hợp. Nội dung được dịch từ bài viết khá chi tiết của pro Peter Krumins chủ trang http://www.catonmat.net/ 1. Phép giao Có rất nhiều cách để tìm giao của 2 tập hơn trong bash. ...

tháng 11 3, 2017

Một số thứ khi sử dụng command, viết script trong bash

Bài này xin được trích rút một số thứ hữu ích từ bài viết rất hay tên The art of command line và mình cũng đã dịch thử (chưa được review) ở Nghệ thuật sử dụng dòng lệnh 1. Hạn chế gõ lại câu lệnh cho dù là rất ngắn Hãy sử dụng chức năng tìm đoạn đang gõ trong history để làm giảm công gõ lại Hai chức năng tìm xuôi và tìm ngược được bash cung cấp rồi. Chỉ việc gán phím tắt là sử dụng được thôi. Cách làm được miêu tả trong bài Phím tắt cho bash. Đơn giản là thêm đoạn sau vào ~/.bashrc ...

tháng 11 3, 2017

Ví dụ cơ bản với pthread trên Linux

1. Tạo và dừng thread Source code gốc lấy từ link /****************************************************************************** * FILE: hello.c * DESCRIPTION: * Chuong trinh demo thao tac tao thread, tat thread * AUTHOR: Blaise Barney * LAST REVISED: 08/09/11 * * TRANSLATE to Vietnamese by Minatu * COMPILE CMD : $gcc -o hello hello.c -lpthread ******************************************************************************/ // #include <pthread.h> #include <stdio.h> #include <stdlib.h> #define NUM_THREADS 5 void *PrintHello(void *threadid) { long tid; tid = (long)threadid; printf("Hello World! Thread #%ld o day !!!n", tid); pthread_exit(NULL); } int main(int argc, char *argv[]) { pthread_t threads[NUM_THREADS]; int rc; long tId; for (tId = 0; tId < NUM_THREADS; tId++) { printf(" Ham main() : Thread Main : Tao...thread moi: %ldn", tId); rc = pthread_create(&threads[tId], NULL, PrintHello, (void *)tId); if (rc) { printf("ERROR; loi khi chay pthread_create(), ma loi: %dn", rc); exit(-1); } } /* Last thing that main() should do */ pthread_exit(NULL); } } Kết quả sau khi biên dịch và chạy: ...

tháng 5 20, 2017