Skip to main content

Posts

Showing posts from April, 2015

[News] Ubuntu 15.04 ra lò - Vivid Vervet

Như thường lệ, mang tính chất truyền thống, mỗi khi Ubuntu release thì FAMILUG sẽ lên bài như một lời tri ân, cũng là dịp anh em kéo nhau đi uống bia cám ơn cuộc đời, đội ơn Ubuntu đã mang đến cho chúng em ngày hôm nay. Năm nay, khi tháng tư sắp đi qua, người ta bận rộn đi chơi để Ubuntu "ra" trong lặng lẽ. Sẽ có 1 buổi party, nhưng phải đợi tháng 5 :D ` Bản 15.04 có tên khá là buồn cười khi đọc lên "Vivid vervet" (vi vítđ vơ vít)

ghi chú nhanh về cron

1. cron gửi notification (email) cron gửi output (cả stdout và stderr) của file cronjob hay các câu lệnh trong crontab tới user đã được gán cho biến môi trường ``MAILTO`` của cron. Nếu câu lệnh fail nhưng không có output, syslog sẽ ghi lại lần chạy fail này nhưng KHÔNG CÓ output nào được gửi tới user cả (thường là root)  vẫn có email gửi về với tên của script đã fail và return code. Bản chất cron là một daemon đọc file cấu hình từ /etc/crontab và lên lịch để chạy các câu lệnh đó (cron.daily, cron.hourly ...) chỉ là các giá trị (thư mục chứa executable files) được config sẵn trong /etc/crontab 2. Không cần restart cron mỗi khi thêm/thay đổi một script vào một trong các thư mục chứa crontab file (/etc/cron\..+), không cần restart cron deamon vì cron sẽ tự động quét các thư mục này mỗi phút.  Thus  cron need not be restarted whenever a crontab file is modified. 3. Tên file cronjob 

Tạo file "backup" trước khi phá phách

Nhiều khi bạn sẽ cần sửa file trực tiếp trên 1 server, và việc tốt luôn nên làm là tạo một bản gốc để có thể hồi phục, phòng khi lỡ làm gì dại dột. Sau đây là vài tips giúp việc này trở nên dễ dàng: 1. cp  Hiển nhiên cách dễ nhất là tạo 1 bản sao của file mình sẽ sửa: # cp file_se_sua file_se_sua.orig # viết tắt của original  Nếu gõ lại tên file 2 lần thì hơi mỏi, hãy dùng tính năng của bash, ví dụ: $ cp states.py{,.orig}; ls states.py* states.py    states.py.orig Nhờ tính năng "brace expansion" của bash,  states.py{,.orig}  sẽ tự chuyển thành: states.py states.py.orig 2.  vim Nhỡ đã mở file ra bằng Vim rồi, có thể sử dụng lệnh sau để lưu file:

[Ebook] Sách học Lua

Lua là tên một ngôn ngữ lập trình. Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping. Cuốn sách Programming in Lua được liệt kê ngay trong phần document tại trang chủ của Lua và là một cuốn sách hay, kể cả cho những người không học Lua và nó free online: http://www.lua.org/pil/contents.html#P1 Ví dụ về sự hay: giải thích về tail call và tail recursion http://www.lua.org/pil/6.3.html

[CLI] top 10 process dùng nhiều tài nguyên nhất, tmux tip

Không có gì màu mè cả, đơn giản chỉ cần dùng top và cho sắp xếp theo một cột nào đó là xong, nhưng bài này dùng ps và sort. 1. top 5 dùng nhiều CPU nhất: $ ps xau | head -n1; ps xau | sort -nrk3 | head -n5 USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND root     28368  3.8  4.1 357208 41932 pts/4    Sl+  14:02   0:23 /usr/bin/python /usr/bin/salt-master -ldebug root     28744  1.8  5.4 523132 55292 pts/5    Sl+  14:07   0:05 /usr/bin/python /usr/bin/salt-run state.orch orchestration.es -ldebug root     28356  1.2  2.6 298472 27028 pts/4    Sl+  14:02   0:07 /usr/bin/python /usr/bin/salt-master -ldebug root     28801  1.0  3.3 372236 34168 ?    ...

[Sysad] một trận chiến giữa netcat và tcpdump

bình yên quá, dậy sóng thôi. Cài đặt hai bên chiến tuyến: # apt-get install -y tcpdump   netcat-openbsd Sau đây hai đấu thủ cùng ra chào khán giả: # for pkg in nc tcpdump; do whatis $pkg; whereis $pkg; done nc (1)               - arbitrary TCP and UDP connections and listens nc: /bin/nc /bin/nc.openbsd /usr/share/man/man1/nc.1.gz tcpdump (8)          - dump traffic on a network tcpdump: /usr/sbin/tcpdump /usr/share/man/man8/tcpdump.8.gz Bây giờ là phần quảng cáo bỉm sữa và bình luận trước trận đấu: - Bên công rõ ràng là nc, với khả năng tạo kết nối TCP/UDP tuỳ ý (ngoài ra có cả khả năng listen). - Bên thủ chính là tcpdump danh tiếng, với khả năng "dump" mọi traffic trên 1 network, tcpdump có thể xử lý rất nhiều protocol khác nhau: ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp and udp, rõ ràng là hơn nc vài bậc về dạng rộng. ($ man pcap-filter | s...

[Programming] coding styles

Programs must be written for people to read, and only incidentally for machines to execute. - H. Abelson and G. Sussman (in "The Structure and Interpretation of Computer Programs) 1. Python Pep8 : https://www.python.org/dev/peps/pep-0008/ 2. C Style cho C code để viết CPython: https://www.python.org/dev/peps/pep-0007/ Linux style: https://www.kernel.org/doc/Documentation/CodingStyle 3. Ruby  https://github.com/styleguide/ruby Có bản tiếng Việt: https://github.com/scrum2b/ruby-style-guide/blob/master/README-viVN.md 4. Javascript https://github.com/styleguide/javascript 5. Golang https://github.com/golang/go/wiki/CodeReviewComments 6. Bash http://wiki.bash-hackers.org/scripting/style

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