2021年5月6日 星期四

linux 常用指令

shutdown now

poweroff

reboot


ls -al    # -a: 顯示全部(包含隱藏檔);-l: 只是輸出格式不同


ln    # 建立捷徑


uname -a    # 查看系統資訊


df -h    # 查看磁碟使用量


du -sh    # 目前目錄占用的容量

du -sh *



free -h    # 記憶體耗用


lsof -p 12345    # 查看PID=12345的程式 占用資源的情況

lsof {路徑名稱}    # 查看某目錄中 檔案被開啟的情況

lsof -nPi | grep LISTEN    # 查看有哪些連線服務正在聽取連線


ip a    # 列出所有網卡

ifconfig eth0 192.168.50.88/24    # 指定IP和遮罩

dhclient {網卡名稱}    # 向DHCP server要IP




2021年5月5日 星期三

build aircrack-ng

 sudo apt-get install build-essential autoconf automake libtool pkg-config libnl-3-dev libnl-genl-3-dev libssl-dev ethtool shtool rfkill zlib1g-dev libpcap-dev libsqlite3-dev libpcre3-dev libhwloc-dev libcmocka-dev hostapd wpasupplicant tcpdump screen iw usbutils


 wget https://download.aircrack-ng.org/aircrack-ng-1.6.tar.gz


 tar -zxvf aircrack-ng-1.6.tar.gz
 cd aircrack-ng-1.6


 autoreconf -i
 ./configure --with-experimental
 make


 make install
 ldconfig



https://github.com/aircrack-ng/aircrack-ng
https://www.aircrack-ng.org/~~V:/doku.php?id=install_aircrack


2021年4月26日 星期一

golang 類似 override 概念的東東


package main

import (

"fmt"
)

type I interface {
Fa()
Fb()
}
type C1 struct {
}
func (c *C1) Fa() {
fmt.Println("C1.Fa()")
}
func (c *C1) Fb() {
fmt.Println("C1.Fb()")
}
type C2 struct {
C1
}
func (c *C2) Fb() {
fmt.Println("C2.Fb()")
}
func main() {
c1 := C1{}
c1.Fa()
c1.Fb()
c2 := C2{}
c2.Fa()
c2.Fb()
c2.C1.Fb()
}







2021年4月20日 星期二

Install MySQL on Ubuntu 20.04

sudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
sudo mysql_secure_installation


sudo mysql

SHOW VARIABLES LIKE 'validate_password%';
SET global validate_password.length=4;

CREATE USER 'kh'@'localhost' IDENTIFIED BY '1234';
DROP USER 'kh'@'localhost';

CREATE USER 'kh'@'192.168.50.219' IDENTIFIED BY '1234';
DROP USER 'kh'@'192.168.50.219';
# 請參考下方的允許遠端存取
CREATE USER 'kh'@'%' IDENTIFIED BY '1234';
DROP USER 'kh'@'%';

# REVOKE ALL ON *.* FROM 'kh'@'localhost';

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'kh'@'localhost';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'kh'@'192.168.50.219';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'kh'@'%';

FLUSH PRIVILEGES;
SHOW GRANTS FOR 'kh'@'localhost';

source /home/kh/XXX/scripts/mysql.sql;

EXIT


mysql -u kh -p


# ref:
# https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04

允許遠端存取:

  • sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
  • sudo systemctl restart mysql

  • ref:
  • https://www.digitalocean.com/community/tutorials/how-to-allow-remote-access-to-mysql


2021年4月14日 星期三

ubuntu sudo 免密碼 - visudo

 sudo visudo

%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

myuser ALL=(ALL:ALL) NOPASSWD:ALL

       kh ALL=(ALL:ALL) NOPASSWD:ALL

順序有差 建議放最後

2021年4月10日 星期六

Jenkins 與 Github 重點筆記

GitHub 帳號申請 Personal access tokens 

Developer settings → Personal access tokens






放到 Jenkins 的GitHub Plugin設定那邊

Manage Jenkins → Configure System → GitHub

Add → Add Credentials → Kind → Secret text → 貼上剛剛申請到的access token





-----


到 GitHub Repo 設定:

 GitHub的Webhooks (http://xxx.yyy.zzz:8080/github-webhook/)






 GitHub的deployee key 設定 public key

到Jenkins設定private key




主機記得裝git


Credentials新增SSH private key

(頭尾那兩行也要進去"-----BEGIN RSA PRIVATE KEY-----" "-----END RSA PRIVATE KEY-----")



參考資料:

https://medium.com/@BuzonXXXX/ci-%E8%A8%AD%E5%AE%9Ajenkins%E9%80%A3%E7%B5%90github-private-repo-111c53d29047

http://mis101bird.js.org/cd/




使用 Docker 安裝 Jenkins

指令:


sudo docker network create jenkins
sudo docker volume create jenkins-data
sudo docker volume create jenkins-docker-certs


sudo docker container run \
  --name jenkins-docker \
  --rm \
  --detach \
  --privileged \
  --network jenkins \
  --network-alias docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume jenkins-docker-certs:/certs/client \
  --volume jenkins-data:/var/jenkins_home \
  --publish 2376:2376 \
  docker:dind


sudo docker container run \
  --name jenkins-blueocean \
  --rm \
  --detach \
  --network jenkins \
  --env DOCKER_HOST=tcp://docker:2376 \
  --env DOCKER_CERT_PATH=/certs/client \
  --env DOCKER_TLS_VERIFY=1 \
  --publish 8080:8080 \
  --publish 50000:50000 \
  --volume jenkins-data:/var/jenkins_home \
  --volume jenkins-docker-certs:/certs/client:ro \
  jenkinsci/blueocean


sudo docker exec jenkins-blueocean cat /var/jenkins_home/secrets/initialAdminPassword


參考資料:

https://blog.cloudware.bg/en/what-is-jenkins-and-how-to-install-it-on-your-server/

https://davelms.medium.com/run-jenkins-in-a-docker-container-part-1-docker-in-docker-7ca75262619d

https://www.cnblogs.com/esofar/p/11163583.html



2021年4月9日 星期五

sudo 免密碼

sudo visudo

最後面加入

myuser ALL=(ALL) NOPASSWD: ALL for a single user

%sudo  ALL=(ALL) NOPASSWD: ALL for a group.

注意:config的順序會影響,所以要放在最後面

2021年4月4日 星期日

備份到NAS

備份到 Samba 的指令

robocopy  D:  \\192.168.50.100\nas_900g\E3_Disk-D_Backup  /mt  /mir


如果要管理登入身分的話 可到:

控制台\使用者帳戶\認證管理員

優雅的Code


2021年4月1日 星期四

Golang 安裝 筆記

環境:

ubuntu 20.04.2.0 LTS

go 1.16.3

vscode


安裝指令:

先到官網下載壓縮檔

sudo tar -C /usr/local -xzf go1.16.3.linux-amd64.tar.gz


vim ~/.bashrc 

# golang

export GOROOT=/usr/local/go

export GOPATH=$HOME/go

export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

source ~/.bashrc

reboot


go env -w GO111MODULE=off


範例程式:

package main

import "fmt"

 

func main() {

     fmt.Println("Hello, World!")

}