Recently in Tutorial Category

Windows 10 的 Linux 子系統 (Windows subsystem for Linux, WSL) 因為不是走一般的開機流程,
所以服務都不會啟動, 也包含了 /etc/rc.local
若要在開啟 WSL 視窗時執行 rc.local, 做法如下(Ubuntu環境)

# 設定 sudo 免密碼
echo "yourusername ALL=(root) NOPASSWD: ALL" >> /etc/sudoers
# 在 bash.bashrc 最後觸發啟動 rc.local
echo "sudo /etc/rc.local &" >> /etc/bash.bashrc

建立 ssh host key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

建立 /etc/rc.local, 下面內容是啟動 sshd 及 Apache 的範例, 每開一次視窗, 就會被觸發執行.
加在這裡的 script, 需考慮到多開視窗, 就會啟動多次的情況, 所以用 pidof 判斷服務是否已經在跑了, 沒有才啟動服務.

範例:
#!/bin/bash
mkdir -p /run/sshd
pidof -s sshd > /dev/null || /usr/sbin/sshd
pidof -s apache2 > /dev/null || service apache2 start 2>/dev/null

BASH regular expression

user-pic
Vote 0 Votes

e.g. Get http://mirror01.idc.hinet.net/CentOS/ first 7.x dir name

RE=">(7[0-9\.]+)"
[[ `curl -s http://mirror01.idc.hinet.net/CentOS/` =~ $RE ]]
echo ${BASH_REMATCH[1]}

Output:
7.0.1406

因為 PuTTY 的 Private Key 格式, 跟 OpenSSH 的不太一樣, 若兩邊要共用同一把 Key,
Key 要從 OpenSSH 那邊產生, 再用 puttygen.exe 匯入 Key, 用 Load an existing private key file

再 Save public key, Save private key

rsync only some extension

user-pic
Vote 0 Votes

e.g. Just rsync *.jpg and *.png
rsync -avz --include '*/' --include '*.jpg' --include '*.png' --exclude '*' source/ destnation/

--include '*/' match all directories (include sub-directories)

Build LINE API with AutoHotkey

user-pic
Vote 0 Votes

本篇不是講 carpedm20 用 Python 寫的那個非官方 LINE API
那個非官方的 API 似乎被 LINE 封鎖了, 2015-08-26 開始就不能使用
替代方案是用電腦版 LINE + AutoHotkey 自己做
簡單講就是把使用電腦版 LINE 的動作, 寫成一個 AutoHotkey Script , 帶參數進去就成了土法 API

Script 如下, 其中的座標要用 AutoIt3 Window Spy 進行調整成適合自己的環境, 每台電腦狀況不太一樣
CoordMode, Mouse, Screen ; 螢幕絕對座標
MouseClick, left, 944, 754, 2 ; 點兩下 LINE tray icon
CoordMode, Mouse, Relative ; 視窗相對座標
Sleep, 400
MouseClick, left, 70,66 ; 點「好友」圖示
MouseClick, left, 240,112 ; 點到搜尋欄
Send {BS 20}%1% ; 送出 20 個 Backspace (刪除上一個收訊者名稱) 及收訊者名稱
Sleep, 200
MouseClick, left, 100, 190, 2 ; 滑鼠到收訊者名稱點兩下
Sleep, 200
Send %2%{Enter} ; 輸入訊息及 Enter 送出
Sleep, 600 ; 這邊的停頓很重要, 停太少時間會導致訊息還沒送出就關閉視窗
Send ^w ; 關閉聊天視窗
return

存成 SendMessage.ahk
送訊息 SendMessage.ahk {個人或群組名稱} {訊息}
例如: SendMessage.ahk Pank 測試

這個方法的優點是不會被封鎖, 缺點是送訊息的速度沒辦法太快, 最快要 1 秒多
LINE 有改版時需留意 Layout 是否有變, 可能需要微調座標

進階一點可以用 Apache + PHP 弄個 API 遠端呼叫
訊息量多的話還需要弄個 Queue 來管理, 才不會有兩筆 Request 同時進來時,
造成 AutoHotkey Script 同時執行或執行時間有重疊而游標錯亂

The "-append" option appends vertically, while the plus form "+append" appends horizontally.

convert 1.jpg 2.jpg -append 1-2.jpg
convert 1.jpg 2.jpg +append 1+2.jpg

2x2 image
convert \( 1.jpg 2.jpg +append \) \( 3.jpg 4.jpg +append \) -append 1234.jpg

CSV Tips for Excel

user-pic
Vote 0 Votes

輸出 UTF-8 格式 CSV, 讓 Excel 能正常讀取, 需加 BOM 檔頭
PHP: echo "\xEF\xBB\xBF"
BASH: echo -n $'\xEF\xBB\xBF'
這種方式只有 Excel 2007 會亂碼, 應該是 Exel 2007 本身的問題, 需用這種方式開啟

有換行的資料用 "" 包起來
例:
ABC,"123
456
789"

第一碼為 0 的一串數字, 讓 0 正常顯示
="0123",="0456"

資料中間有 ", 需用 "" 包起來, 兩個 "" 代表一個 ", 若 " 在文字中間, 可以不用包起來, 一個 " 代表一個 "
例:
"""","ABC""123",ABC"123

可以使用 Excel 函式及儲存格代碼
例:
1.61803398,=INT(A1),"=ROUND(A1,2)"

若 Firefox 連某個網頁出現:
您收到無效的憑證,請與伺服器管理員或郵件聯絡人聯絡,並提供下列資訊:
您的憑證內含與其他憑證機構所簽發憑證相同的序號,請用不同的序號產生新的憑證。
(錯誤碼: sec_error_reused_issuer_and_serial)

解決方法:
工具/進階/加密/檢視憑證清單
把該網頁所屬的憑證刪除重連即可
(網頁的憑證可以用憑證名稱或伺服器識別)

XCache 1.3.2

user-pic
Vote 0 Votes

XCache 1.3.2 Release date: 2011-06-04

Apache in /usr/local/apache
php.ini in /usr/local/etc/php.ini

wget http://xcache.lighttpd.net/pub/Releases/1.3.2/xcache-1.3.2.tar.bz2
tar jxf xcache-1.3.2.tar.bz2
cd xcache-1.3.2
phpize --clean
phpize
./configure --enable-xcache --with-php-config=/usr/local/bin/php-config
make
make install
cat xcache.ini >> /usr/local/etc/php.ini

edit /usr/local/etc/php.ini
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20060613/xcache.so
xcache.size = 64M

xcache.so path may different from yours

To check if XCache enabled

# php -i |grep XCache
with XCache v1.3.2, Copyright (c) 2005-2011, by mOo
XCache
XCache Support => enabled

先開命令提示字元視窗(CMD)
netstat -an 看一下 session, 若看到超多 session (超過1000),
Foreign Address 後面都是 :25
那 99% 是中了發送圾垃郵件的木馬,
開機後木馬開始運作, 等 session 都被佔滿了就無法上網.

解決方式:
netstat -anb 看一下是那個執行檔(木馬)在寄 mail,
用 dir/a/s {執行檔名}找出木馬位置,
然後用 unlocker 砍掉, unlocker 會顯示需要重開機,
重開機後應該就會正常了,
木馬的檔名通常會魚目混珠跟系統的程式一樣,
上次處理的 Case 檔名是 winlogon.exe, 正常的 winlogon.exe 在 \windows\system32,
若是在其他位置, 很可能就是木馬.

About this Archive

This page is an archive of recent entries in the Tutorial category.

Travel is the previous category.

Windows is the next category.

Find recent content on the main index or look in the archives to find all content.

Monthly Archives