Monday, 19 September 2022

Lompat-lompat dengan SSH Tunnel dan Jump Host



Kita boleh gunakan SSH Tunnel untuk mencapai servis yang terhalang oleh firewall sekiranya SSH ada kebenaran.

1. [anda] -> [pelayan]

Arahan berikut membolehkan untuk access port 80 di pelayan pada port 8080 di komputer sendiri

ssh pengguna@pelayan.com -L 8080:localhost:80

2. Jika perlu guna Jump Host : [anda] -> [Jump Host] -> [pelayan]
Arahan berikut membolehkan untuk access port 80 di pelayan pada port 8080 di komputer sendiri melalui Jump Host
 ssh -J penggunajh@jumphost.com pengguna@pelayan.com -L 8080:localhost:80
Semoga bermanfaat

Wednesday, 24 August 2022

interactive comments di macbook

 Kalau nak 

setopt interactive_comments

Kalau nak perment kena letak kat zshrc or profile

Kalau tak nak 

unsetopt interactive_comments
Contoh:
❯ echo "Hello World" # interactive comments
Hello World # interactive comments
❯ setopt interactive_comments
❯ echo "Hello World" # interactive comments
Hello World
❯ unsetopt interactive_comments
❯ echo "Hello World" # interactive comments
Hello World # interactive comments

Sunday, 21 August 2022

Tak payah pakai watch bagai untuk kubectl

Arahan kubectl ada build in watch untuk melarikan dirinya secara berterusan. Ini sama macam guna arahan "watch kubectl ....". 

kubectl <arahan yang di kehendaki> --watch

Contoh:

root@controlplane ~ ➜  kubectl get pod -n kube-flannel --watch
NAME                    READY   STATUS    RESTARTS   AGE
kube-flannel-ds-hxt6x   1/1     Running   0          10m
kube-flannel-ds-xcm8b   1/1     Running   0          10m

Semoga bermanfaat. Sekian

Thursday, 18 August 2022

kesana-kesini pada terminal

 



Kadang-kadang letih nak tekan-tekan anak panah dari hujung ke hujung arahan yang panjang. ZSH dan BASH ada shortcut yang kita boleh pakai

control+A : Pergi ke awal arahan

control+E: Pergi ke akhir arahan.



Tuesday, 9 August 2022

Domain bodo-bodo ( dummy domain ) untuk digunakan

 Hari ni saya terjumpa domain localtest.me dalam macbook. Pening jugak dari celah mana datang domain ni pasal tak ada dalam DNS and /etc/hosts. Rupa-rupanya semua OS modern ada benda ni. Domain ni boleh digunakan oleh pembangun (developer) untuk test apa-apa aplikasi yang perlukan domain tanpa susah-susah nak kena edit /etc/hosts.

Semua *.localtest.me boleh digunakan. Cuba yang berikut di OS anda

ping  localtest.me

ping apa-apa.localtest.me

ping kl.localtest.me

Screenshot dari macbook saya 




 Semoga bermanfaat.

Monday, 25 July 2022

/var/lib/docker/volume hilang di macOS M1?

 Kalau korang buat docker inspect <volume> kat macOS M1 nanti dapat output seperti dibawah:

❯ docker inspect pg-data
[
    {
        "CreatedAt": "2022-07-25T18:38:04Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/pg-data/_data",
        "Name": "pg-data",
        "Options": {},
        "Scope": "local"
    }
]
Tapi bila ls /var/lib/docker/volume tak ada?....
❯ ls -lah /var/lib/docker/volumes
ls: /var/lib/docker/volumes: No such file or directory
Hilang? Tak hilang cuma kita cari kat salah tempat. Docker kat macOS M1 tidak menggunakan macOS M1 sebagai host seperti Linux. Docker kat macOS M1 menggunakan VM Linux arch64 sebagai Docker host. Nak dapatkan volume tu kena masuk kat dalam VM tu. Cara nak masuk ker VM tu ialah dengan menggunakan image Debian dengan privilege mode seperti berikut
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
Kemudian boleh ke directory volume tu
~ # cd /var/lib/docker/volumes/pg-data
/var/lib/docker/volumes/pg-data # ls
_data
/var/lib/docker/volumes/pg-data # cd _data
/var/lib/docker/volumes/pg-data/_data # ls
PG_VERSION            pg_commit_ts          pg_ident.conf         pg_notify             pg_snapshots          pg_subtrans           pg_wal                postgresql.conf
base                  pg_dynshmem           pg_logical            pg_replslot           pg_stat               pg_tblspc             pg_xact               postmaster.opts
global                pg_hba.conf           pg_multixact          pg_serial             pg_stat_tmp           pg_twophase           postgresql.auto.conf  postmaster.pid
/var/lib/docker/volumes/pg-data/_data # uname -a
Linux docker-desktop 5.10.104-linuxkit #1 SMP PREEMPT Thu Mar 17 17:05:54 UTC 2022 aarch64 Linux
/var/lib/docker/volumes/pg-data/_data #
Rujukan

Thursday, 14 July 2022

Macam mana nak baca keseluruhan fail di Python

Untuk baca keseluruhan fail di Python kita boleh guna fungsi open untuk dapatkan file object dan kemudian boleh guna method read untuk dapatkan keseluruhan kandungan fail tersebut.

myfile = open("rickrolled.txt", "r").read()
print(myfile)
Contoh:



Wednesday, 6 July 2022

VIM sebagai pembunuh VScode

Macam mana nak dapatkan vim macm ni?


 

Letakan nilai2 tersebut di .vimrc

syntax on
let g:netrw_banner = 0
let g:netrw_liststyle = 3
let g:netrw_browse_split = 4
let g:netrw_altv = 1
let g:netrw_winsize = 25

Bila buka VIM larikan command berikut untuk dapatkan Tree sebelah kiri
Vexplore

Pergerakan dalam Skrin 
  1. Dari tingkap kiri ke kanan : Ctrl+w + l 
  2. Dari tingkap kanan ke kiri : Ctrl+w + h
  3. Nak naik pokok: j
  4. Nak turun pokok: k

Penerangan berkenaan nilai2 di .vimrc
  1. syntax on = untuk warnakan perkataan berdasarkan kata kekunci sesuatu format
  2. tak mau banner kat tree tu
  3. nak tree yang cantik . Paparan 3 tiga macam "NerdTree"
  4. nak file dibuka di tetingkap belah kanan
  5. nak file yang baru dibuka di tetingkap belah kanan
  6. nak tetingkap belah kiri 25% daripada saiz

Bonus:
Macam mana nak dapat terminal?
Saya suka suspend VIM (Ctrl+z) dan masuk balik ke VIM pakai (fg)

Monday, 4 July 2022

Macam mana nak buat tetikus boleh menatal ( scroll ) pada semua pane tmux

 Jika korang nak buat tetikus boleh menatal pada semua pane ialah dengan memasukan tetapan berikut pada .tmux.conf

set-option -g mouse on
Contoh:


Rujukan Scroll = tatal 


Saturday, 2 July 2022

macam mana nak tau app apa running kat port apa di linux?

 Kena ada root access !


 netstat -ntlp
Contoh:
root@controlplane  netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.11:41859        0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:10248         0.0.0.0:*               LISTEN      4261/kubelet        
tcp        0      0 127.0.0.1:10249         0.0.0.0:*               LISTEN      5454/kube-proxy     
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      3592/etcd           
tcp        0      0 10.16.229.12:2379       0.0.0.0:*               LISTEN      3592/etcd           
tcp        0      0 10.16.229.12:2380       0.0.0.0:*               LISTEN      3592/etcd           
tcp        0      0 127.0.0.1:33645         0.0.0.0:*               LISTEN      4261/kubelet        
tcp        0      0 127.0.0.1:2381          0.0.0.0:*               LISTEN      3592/etcd           
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      766/ttyd            
tcp        0      0 127.0.0.1:10257         0.0.0.0:*               LISTEN      3468/kube-controlle 
tcp        0      0 127.0.0.1:10259         0.0.0.0:*               LISTEN      3784/kube-scheduler 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      449/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      768/sshd            
tcp6       0      0 :::10250                :::*                    LISTEN      4261/kubelet        
tcp6       0      0 :::6443                 :::*                    LISTEN      3422/kube-apiserver 
tcp6       0      0 :::10256                :::*                    LISTEN      5454/kube-proxy     
tcp6       0      0 :::22                   :::*                    LISTEN      768/sshd            
tcp6       0      0 :::8888                 :::*                    LISTEN      4680/kubectl 

Macam mana nak resize pane di tmux

 Bila tmux dah terbelah sana-sini, kemungkinan nak resizekan pane tersebut amat besar. Berikut adalah arahan-arahan untuk resize pane tmux. 

Untuk resize pane ctrl + b pastu...
:resize-pane -D (Resizes the current pane down)
:resize-pane -U (anjakan sempadan ke atas sikit)
:resize-pane -D (anjakan sempadan ke bawah sikit)
:resize-pane -L (anjakan sempadan ke kiri sikit)
:resize-pane -R (anjakan sempadan ke kanan sikit)

Dan kita boleh letak berapa baris anjakan yang dibuat. Arahan di bawah ialah untuk 10 baris anjakan
:resize-pane -D (Resizes the current pane down)
:resize-pane -U 10 
:resize-pane -D 10
:resize-pane -L 10
:resize-pane -R 10

Contoh: Sebelum anjakan 






 Selepas anjakan sempadan 10 baris ke atas dari pane bawah 
ctrl + b 
:resize-pane -U 10




Memantau Linux dengan atop

Katakan kita nak tau aplikasi apa yang guna CPU tinggi pada 3 pagi tadi.Cara paling mudah ialah dengan menggunakan atop. atop macam top tapi...