Tuyển tập lệnh Linux by sincos

Discussion in 'Linux - PHP - Python - C# - Java' started by sincos, Apr 18, 2019.

  1. sincos

    sincos Bang Chúng

    Nghĩ đi nghĩ lại chả có gì chia sẻ vì trong này toàn cao thủ. Thôi thì có mỗi cái này do mình sưu tập và note lại thành file dùng dần phòng khi quên đỡ mất công search lại. Nay chia sẻ với anh em.

    Code:
    # Monitor traffic and http request -  cái này rất hay dùng theo dõi dạng realtime trên terminal các request tới server nhé
    # Cài đặt
    yum install tcpdump -y
    # tcpdump filter for HTTP GET
    tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
    
    # Theo dõi card mạng
    yum install nethogs -y
    nethogs
    
    yum -y install nload
    nload venet0 -u M
    nload venet0 -u M devices eth2
    
    # Xem tổng số connection tới server - realtime
    watch -n 1 'netstat -an | grep :80 | wc -l'
    
    # Xem số connection ứng với từng IP
    netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -n 30
    
    # Xem số connection ứng với từng port
    netstat -tuna | awk -F':+| +' 'NR>2{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
    
    # Change hostname <= https://support.rackspace.com/how-to/centos-hostname-change/
    # Đổi trong file sau và reboot lại
    vi /etc/sysconfig/network
    # Nếu không muốn reboot thì set hostname lại bằng lệnh sau và mở terminal khác lên để thấy sự thay đổi
    hostname new_name
    
    # Lệnh đồng bộ lại hostname của DigitalOcean khi restore từ mộ snapshot
    # Vì khi restore thì vps mới sẽ vẫn bị set hostname theo vps đã tạo ra snapshot đó
    
    HNAME="$(cat /etc/hosts | grep "127.0.0.1 www" | awk '{print $2}')" && sed -i -E "s/HOSTNAME=[^\n]+/HOSTNAME=$HNAME/g" /etc/sysconfig/network && hostname $HNAME && hostname
    
    # Test syntax of bash file before run
    sh -n script-name
    # Fix error: /bin/bash^M: bad interpreter
    # Mở file bằng vi hoặc vim để ở chế độ lệnh và gõ một trong 2 lênh sau rồi lưu lại
    # https://stackoverflow.com/a/5514351
    :set fileformat=unix
    :set ff=unix
    
    # wget save với chỉ định tên file
    wget -O example.html https://www.electrictoolbox.com/wget-save-different-filename/
    # wget with ipv4 - ipv6
    wget -4 -O example.html https://www.electrictoolbox.com/wget-save-different-filename/
    wget -6 -O example.html https://www.electrictoolbox.com/wget-save-different-filename/
    
    
    # Lấy danh sách filename
    ls -lA | awk -F':[0-9]* ' '/:/{print $2}'
    
    # Xóa hết danh sách file
    cat 1.txt | xargs echo rm | sh
    
    # Lọc hết những file rỗng (empty)
    find  /tmp -type f -empty
    
    # Lọc hết file có chứa keyword, từ khóa, nội dung
    find / -type f -exec grep -H 'keyword' {} \;
    
    
    # Xem 1 file liên tục từ dòng 30 đến dòng 60
    watch -n 1 "sed -n '30,60p' nginx.conf"
    # Xem 1 file liên tục 30 dòng đầu tiên
    watch -n 1 "head -30 nginx.conf"
    # Xem 1 file liên tục 30 dòng cuối cùng
    watch -n 1 "tail -n 30 /home/nginx/logs/nginx-error.log"
    watch -n 1 "tail -n 35 1.txt"
    watch -n 1 "tail -n 35 2.txt"
    watch -n 1 "tail -n 35 3.txt"
    watch -n 1 "tail -n 35 4.txt"
    
    
    # Limit open file
    # Các ứng dụng hay bị lỗi: Too many open files
    # nginx với traffic cao hoặc các ứng dụng ghi nhiều file
    vi /etc/security/limits.conf
    # Thêm cái này vào cuối file - logout và login lại
    *         hard    nofile      500000
    *         soft    nofile      500000
    root      hard    nofile      500000
    root      soft    nofile      500000
    
    # Kiểm tra việc limit
    ulimit -Hn
    ulimit -Sn
    
    
    # Kiểm tra port được sử dụng bởi thằng nào
    netstat -nlp | grep :80
    # Kiểm tra toàn bộ
    netstat -tulpn
    
    # Đếm tổng số file trong thư mục hiện tại
    find . -type f | wc -l
    
    cp -a /source/. /dest/
    
    # List all user
    cat /etc/passwd
    
    # mysql import
    mysql -u username -p database_name < file.sql
    mysql -u root -p < database.sql
    # Mysql export
    mysqldump -u root -p database-name > backup.sql
    mysqldump -u root -p --all-databases > database.sql
    # Mysql repair all table
    mysqlcheck -A --auto-repair -u root -p
    
    
    # Hardlink và Softlink trong hệ thống file của linux
    # 2 cái đều trỏ về một vùng nhớ chứa dữ liệu
    # Softlink là 1 dạng shortcut nên khi xoá source thì sẽ mất dữ liệu
    # Hardlink khi xoá 1 trong 2 (Hardlink hoặc source) thì dữ liệu vẫn còn nguyên và thằng còn lại vẫn còn dữ liệu
    # Ứng dụng khi cần di chuyển dữ liệu nhưng vẫn muốn giữ lại cấu trúc đường dẫn thư mục (ví dụ thư mục: uploads, images.....)
    #     Source                             SoftLink
    ln -s /home/jake/doc/test/2000/something /home/jake/xxx
    
    #   Source                             HardLink
    ln /home/jake/doc/test/2000/something /home/jake/xxx
    
    
    
    # Test tốc độ ổ cứng
    dd if=/dev/zero of=/1GB bs=1024 count=1024k
    dd if=/dev/zero of=/512MB bs=512 count=1024k
    
    # Check KMV or Openvz => nếu file sau có thì là openvz
    cat /proc/user_beancounters
    
    # Kiểm tra phiên bản của Centos version
    rpm --query centos-release
    
    # Kill process
    kill -SIGTERM PID
    
    for pid in $(ps -ef | grep "ffmpeg" | awk '{print $2}'); do echo $pid & kill -9 $pid; done
    for pid in $(ps -ef | grep "abc.com" | awk '{print $2}'); do echo $pid && kill -9 $pid; done
    
    # Zip toàn bộ thư mục hiện tại
    zip -r sincos.zip ./*
    # Zip toàn bộ thư mục hiện tại bỏ qua 1 số thư mục con
    zip -r sincos.zip ./* -x ./bo-qua-1/**\* ./bo-qua-2/**\*
    
    # Khắc phục lỗi unknown host trong terminal khi ssh tới 1 server lần đầu tiên
    # Các 1:
        ssh -oStrictHostKeyChecking=no [email protected]
    # Cách 2: Vào ~/.ssh/config thêm dòng nội dung sau:
        StrictHostKeyChecking no
    
    
    # Hiện ngày giờ theo timezone
    echo `TZ=Asia/Saigon date`
    
    # Update date and time => Nhiều khi server sai giờ
    yum install ntp
    ntpdate pool.ntp.org
    
    # Nếu muốn tự động sync thì thêm phần sau
    chkconfig ntpd on
    ntpdate pool.ntp.org
    service ntpd start
    
    
    # Fix Centos: BAD PASSWORD: it is based on a dictionary word
    # https://www.linuxquestions.org/questions/linux-software-2/bad-password-it-is-based-on-a-dictionary-word-449149/
    
    vi /etc/pam.d/system-auth
    
    The original file looks like this
    ------------------------------------------------------------------------------------
    password requisite pam_cracklib.so try_first_pass retry=3
    password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
    password required pam_deny.so
    ------------------------------------------------------------------------------------
    
    Comment all the three lines
    ------------------------------------------------------------------------------------
    # password requisite pam_cracklib.so try_first_pass retry=3
    # password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
    # password required pam_deny.so
    ------------------------------------------------------------------------------------
    
    Add this line
    ------------------------------------------------------------------------------------
    password sufficient /lib/security/$ISA/pam_unix.so nullok md5 shadow
    ------------------------------------------------------------------------------------
    
    It will look like this now
    ------------------------------------------------------------------------------------
    # password requisite pam_cracklib.so try_first_pass retry=3
    # password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
    # password required pam_deny.so
    password sufficient /lib/security/$ISA/pam_unix.so nullok md5 shadow
    ------------------------------------------------------------------------------------
    
    Note:
    ------------------------------------------------------------------------------------
    If you run authconfig, the file /etc/pam.d/system-auth will be overwritten
    ------------------------------------------------------------------------------------
     
    Last edited: Apr 18, 2019
    hyperlight, EDM, Le Hieu and 6 others like this.
  2. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Like vì tinh thần chia sẻ.
     
  3. money

    money Hương Chủ

    Linux có lệnh nào chạy 1 phát là có $ chuyển vào Paypal không chỉ anh với :D
     
  4. Nai

    Nai MiddleMan Staff Member

    Em nghĩ chắc chắn có, mà môi trường và điều kiện chạy thì hơi khắc nghiệt: Ví dụ như chạy trên server của paypal và biết user chứa $ chẳng hạn :D
     
    money likes this.
  5. sincos

    sincos Bang Chúng

    Có anh...... em đang phát triển. :))
     
  6. money

    money Hương Chủ

    Đợi mấy năm rồi méo thấy :D
     
  7. no-reply

    no-reply Bang Chúng

    E thấy hình như Paypal nó có python api mà a. A thử lên mạng search thêm xem sao. E đoán là khả thi thôi.
     
    console likes this.
  8. money

    money Hương Chủ

    {doubt}
     
  9. automan

    automan Hương Chủ

    {matrix}
     
  10. console

    console Bang Chúng

    Search đi a rồi em đưa id paypal em cho a test haha
     
  11. money

    money Hương Chủ

    Để anh send cho em cái invoice nhé {canny}
     
  12. automan

    automan Hương Chủ

    em send ké cái nhé hihi
     
    money likes this.