2017年11月25日 星期六

Windows Subsystem for Linux 脫離Beta

Windows Subsystem for Linux脫離Beta惹

What’s new in WSL in Windows 10 Fall Creators Update

Windows 10版本更新至1709

>更新...
>更新......
>更新.........跑很久

在Windows 10更新版本後,啟用 WSL 不需要再使用開發者模式

控制台\程式集\程式和功能
>開啟或關閉Windows功能
>適用於 Linux 的 Windows 子系統


>啟用後重新啟動系統

Microsoft Store
>Ubuntu
即可直接下載啟用

打開時需要一段時間安裝

然後設置使用者帳號以及密碼

>安裝完成
>lsb_release -a 查看Ubuntu Version
Distributor ID: Ubuntu
Description:     Ubuntu 16.04.3 LTS
Release:           16.04
Codename:       xenial

接著即可直接安裝所需的開發套件,而GUI目前在WSL尚不支援

在WSL上啟用的服務並不會持續在背景執行,當Session皆關閉後即會關閉

重新開啟後,也並不會自動啟動,所以不太適合當作常駐的環境使用

而在WSL下,本機的磁碟會被掛載在/mnt目錄下

很適合Windows開發環境部署測試使用,可以直接以WSL執行所需測試的程式

減少開發環境差異所造成的一些低能問題...

至今我還是很納悶某些人開發環境的配置

之前曾參與的專案有個很莫名的配置↓↓↓

開發機環境(Windows) = 測試機環境(Windows) ≠ 正式機環境(Linux)

常常碰到上頭很臨時的要求部署上新功能

然後開發機和測試機都沒問題,一上正式機就碰釘子,而且屢試不爽

開發測試和正式機環境皆一致當然是最好

但開發機很難更換,畢竟還是會受限於公司會綁定一些軟體僅限於Windows,且內部伺服器大部分皆為Windows Server的時候,也只能照著公司的配置使用。

雖然曾提議將測試機改用Linux環境,卻得到"太麻煩"、"有必要嗎?"等回應

開發環境不先搞好出問題卻又怪東怪西#$%^&*...唉...

至少搭配WSL多少可以減少一些環境差異的變異因子,在開發時就能提早發現

(不過我的還是Windows 7 QQ,公司換新機前我應該早就已經離開了...)

搭配VS Code

在終端機設定加入
"terminal.integrated.shell.windows": "C:\\Windows\\Sysnative\\bash.exe",
即可直接以WSL的shell啟用,取代原先的windows powershell

其餘問題可以在 Microsoft github WSL issues 尋找或提出

2017年11月17日 星期五

Smokeping 簡單使用

SmokePing官方網站

SmokePing 是一個監測網路延遲並且呈現視覺化圖表的開源軟件 開發者為Tobi Oetiker
以下以GCP上的VM環境做安裝,OS為Debian GUN/Liunx 9.2
首先檢查更新並安裝所需工具
sudo apt-get update
sudo apt-get install smokeping
sudo apt-get install curl
至smokeping資料夾目錄底下
cd /etc/smokeping/config.d/
在此需要修改pathnames、Probes、Targets主要的三個檔案

*** pathnames ***

將sendmail註解(在此不使用通知功能)
#sendmail = /usr/sbin/sendmail


使用Fping來做檢測,可在此新增檢查執行的時間間隔或次數的設定
在此每隔300秒為一區間,做10次檢測

*** Probes ***

+ FPing
binary = /usr/bin/fping
offset = 50%
step = 300
pings = 10

+ Curl
binary = /usr/bin/curl
forks = 5
offset = 50%
step = 300

urlformat = http://$host$/
因為一些網路環境比較嚴謹會擋掉封包而ping不到,但我們又需要檢測網站是否穩定
我在這增加了Curl的參數設定,為了可以針對特定port號像是網站的80或8080去監測
urlformat這邊相關設定說明可以查看官方的範例
*** Targets ***
主要設定Smokeping要監控的主機
 probe = Curl
 menu = Top
 title = Network Latency Grapher
 remark = Welcome to this SmokePing website.
 + HTTP
 menu = http
 title = HTTP latency 
 ++ myhost1
 menu = myhost1
 title = HTTP latency for myhost1
 host = myhost1.example
 ++ myhost2
 menu = myhost2
 title = HTTP latency for myhost2
 host = myhost2.example
 ++ myhost3
 menu = myhost3
 title = HTTP latency for myhost3 (port 8080!)
 host = myhost3.example
 urlformat = http://%host%:8080/
依照需要偵測的IP或者網站去設定
如果只需要監控一般網路延遲的話可以不用用到Curl
需要偵測網站特定port號即需要使用Curl
Targets內的設定,+即為用來區別階層以及各個項目
可以同時顯示多個監控結果或是只顯示一個
像是上面例子中HTTP僅為一個分類項目,並無設置監控
在頁面中點開即可看到階層內會有三個項目myhost1~myhost3
menu 為選單上顯示名稱
title 為該監控項目標題名稱
host 要監控的主機
urlformat 要偵測的網頁網址,可自動帶入host參數,這樣之後要更動會比較方便
若不需要直接在前面加上#註解掉即可

2017年10月26日 星期四

Google Annotation Chart

2017年10月11日 星期三

在Linux純文字介面下瀏覽網頁

透過lynx在liunx文字命令底下瀏覽網頁
sudo apt-get install lynx
lynx https://lanlanlue.blogspot.tw/
選項:
- case: 在搜索字串時,區分大小寫;
- ftp: 關閉ftp功能;
- nobrowse: 關閉目錄瀏覽功能;
- noclor: 關閉色彩顯示模式;
- reload: 更新代理服務器的緩存, 只對首頁有效;
--color: 如果系統支持彩色模式, 則使用彩色模式;
--help: 顯示指令的幫助信息;
--versiom: 顯示指令的版本信息。

2017年10月4日 星期三

使用paping來檢測特定port連線 (Linux)

優點:跨平台以及比內建ping好一點的UI

由於在windows和liunx系統內,一個常用ping另一個常用telnet檢測

不過偵錯port號的時候,在windows ping後面是加冒號,liunx的telnet用空白

而且telnet比較沒辦法得知詳細的連線狀況

可以使用paping來做為偵測port號的方便工具

官方來源:https://code.google.com/archive/p/paping/
確認有安裝基本工具
apt-get update
apt-get -y install wget bash
下載最新檔案(至官網抓取符合系統版本的檔案)
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/paping/paping_1.5.5_x86-64_linux.tar.gz
解壓縮
tar zvxf paping_1.5.5_x86-64_linux.tar.gz
加入paping命令並移至bin目錄
chmod +x paping
mv paping /bin
檢測80 port
paping lanlanlue.blogspot.tw -p 80

結果

2017年10月1日 星期日

銀行利息試算

新臺幣:

期間:

年利率: %

        
本利和=本金*(1+月利率)^期數
本金=存戶於期初所約定一次存入之金額
月利率=年利率/12

本利和={{all}}

2017年9月29日 星期五

CCMakeFiles failed

CCMakeFiles / xmr-stak-cpu.dir / build.make: 182: recipe for target 'CMakeFiles / xmr-stak-cpu.dir / executor.cpp.o' failed
make [2]: *** [CMakeFiles / xmr-stak-cpu.dir / executor.cpp.o] Interrupt
CMakeFiles / Makefile2: 104: recipe for target 'CMakeFiles / xmr-stak-cpu.dir / all' failed
make [1]: *** [CMakeFiles / xmr-stak-cpu.dir / all] Interrupt
Makefile: 127: recipe for target 'all' failed
make: *** [all] Interrupt
use swap:
 sudo dd if=/dev/zero of=/swapfile bs=64M count=16
 sudo mkswap /swapfile
 sudo swapon /swapfile
順利編譯過後,用不到的話可以移除
rm swap:
 sudo swapoff /swapfile
 sudo rm /swapfile

2017年8月6日 星期日

Google Cloud Platform (GCP) 筆記


--申請帳戶(需信用卡資訊)

--建立一個VM

關於VM永久免費限制如下:
  • 需使用微型CPU規格,計算放置地區僅限US(台灣也有機房,有考慮之後付費使用的話可以設置在東亞地區(Taiwan)的)
  • 30GB儲存空間(一般硬碟)
  • 5GB快照儲存空間
  • 1GB流量,但是不包含往澳洲以及中國的流量
Always Free Usage Limits
  • 1 f1-micro VM instance per month (US regions, excluding Northern Virginia).
  • 30 GB of HDD persistent disk storage per month.
  • 5 GB of snapshot storage per month.
  • 1 GB egress from North America to other destinations per month (excluding Australia and China).
使用ubuntu:
sudo apt-get update
sudo apt-get -y dist-upgrade
sudo apt-get install zip unzip 
sudo apt-get clean

GUI安裝
1
2
3
sudo apt-get update
sudo apt-get install ubuntu-desktop
只裝GUI,不裝多餘套件:
1
sudo apt-get install --no-install-recommends ubuntu-desktop
安裝MySQL(可改用Cloud SQL執行個體即可建立)
安裝Nodejs
安裝npm
設置防火牆規則 (需設置網路標籤)
MySQL
sudo apt-get -y install mysql-server
sudo mysql
sudo service mysql status 
sudo service mysql restart
mysql -u root -p
ERROR 1130: Host '*.*.*.*' is not allowed to connect to this MySQL server 

1 可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"

mysql -u root -pvmwaremysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

2. 例如,你想myuser使用mypassword從任何主機連接到mysql伺服器的話。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允許使用者myuser從ip為192.168.1.2的主機連接到mysql伺服器,並使用mypassword作為密碼

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'newpassword' WITH GRANT OPTION;


GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql>flush privileges; 這句一定要加上。
npm相關套件:
pm2 類似forever的管理處理程序套件,可自動重啟也可設置監控

pm2 start app.js
pm2 update
pm2 stop 0
pm2 list
pm2 delete all
pm2 kill
NODE_ENV=production pm2 start app.js

nginx相關
sudo nginx -t #測試
sudo service nginx restart #伺服器重啟
cd /etc/nginx/sites-enabled
sudo vim domain1

server {
    listen 80;
    server_name *.*.*.*; #domain或IP
    access_log /var/log/nginx/domain1.access.log;
    location / {
        proxy_pass http://127.0.0.1:8080/; #server的位址
    }
}

月球的重力島

月球的重力島 💡 你知道嗎? 月球有看不見的低空山脈 標籤:月球, 重力, GRAIL 📖 真相大揭密 阿波羅與月球重力探測任務在月球下方發現所謂的「mascons」(質量濃集區):在 凸起的古老隕石坑中心,地下密度比周圍高,讓衛星速度突然加...