星期六, 4月 30, 2016

IIS 主機上「其他」檔案存取

為了要取得 IIS 主機上的一些「非」網站內檔案(例如紀錄檔),過去的經驗都是另開遠端桌面,但限於授權數量,當很多人都需要的時候就不方便了。
其實早就有 WebDAV 可以利用,但只能開放網站所在位置的實體目錄?如果紀錄檔在 D:\ 而網站在 C:\inetpub\wwwroot?不是問題,可以在網站上掛虛擬目錄。
在使用端如何掛 WebDAV 分享出來的目錄?設「網路連線磁碟機」,在資料夾的設定不同於常見的 \\server\share 形式,而是像 http://host/share 這樣。
WebDAV 設定需要注意的是:
  • 需要開啟 Enable
  • 編寫規則
  • 相關設定
  • 授權給匿名或特定角色、使用者
  • 搭配網站的認證授權設定

讓 Linux 認得 Windows 主機

有些內部網站像是 http://hostname 而不是 http://www.domain.com 這種形式,通常較多人用 Windows,瀏覽器找得到 http://hostname 這種位置,但在 Linux 上就不行了。只好先查 hostname 對應的私有 IP 位址,瀏覽器再找 http://x.x.x.x 才行,有沒有更好的解法呢?

首先要知道一般 Windows 為什麼認得較短的電腦名稱?這種是 NetBIOS name,與較長的 FQDN 不同,只要在內網唯一就可以了,負責管理的是 WINS。

在 Linux 上要認得 WINS 可以透過安裝 SAMBA(這是個逆向工程的經典),然後在 smb.conf [global] 設定 wins server = x.x.x.x 就可以了,其他常用的 workgroup、netbios name 或是 security 都與主題無關,注意不要設 wins support = yes。

在驗證效果時我也一直有個錯誤的觀念,以為在 Linux 應該可以 ping hostname?但還不行,nsswitch.conf 也要改,其中有一項 hosts: 必須把 wins 加進去。

[2018/05/21]
如果在 Linux 上僅安裝 samba-client 也是可以的,例如先查好 WINS 的位址在 172.16.1.2,要找的機器名稱為 Win10,指令是:
  • nmblookup -U 172.16.1.2 -R 'Win10'

星期五, 4月 22, 2016

Excel 的日期舊臭蟲

聽說有人用 KendoGrid 從 SQL Server 抓資料呈現沒問題,但再匯出 Excel 時竟有些日期會自動加一天,懷疑 KendoGrid 有問題?深入追查後發現:SQL Server 日期欄位沒資料時的 1900/1/1 竟然撞上 Excel 繼承 Lotus 1-2-3 留下的一個 bug,能活這麼久,這應該算程式界的小強吧?這篇有許多詳盡又有意思的說明。

星期三, 4月 20, 2016

SonarQube 5.x upgrade

為了升級 SonarQube 4.5 -> 5.4,被眾插件卡了蠻久的:
  • 過去 LDAP plugin 1.5 的設定不能只照搬到 1.5.1,要額外加上 ldap.windows.auth=false。
  • 因為架構改變,還蠻多插件不能在新版繼續使用的,詳情可參考這篇
  • 其實 JIRA plugin 只支援到 SonarQube 4.x LTS,新版遙遙無期。雖然開單是沒問題,但寫入 JIRA 的 SonarQube 連結是連不回來的。原來舊版網址 http://${host}/issue/show/${uuid} 之中的 issue 在 SonarQube 5.x 已悄悄改成 issues,就這樣!改人家已 Deprecated 的程式似乎也不好,後來請出 Nginx 做 URL Rewrite 解決。

星期五, 4月 15, 2016

MySQL 資料復原

最近一直被逼著玩我不太欣賞的 SonarQube,因為太慢所以想升級,因為版本跳得多所以升了之後有一堆問題,煩到打算先降回來擇日再看,結果竟然遇到 MySQL 備份無法還原?資料弄得不上不下,SonarQube 新舊版同時罷工!
還原的錯誤訊息是「Unknown command '\''」,幸好是有解。有說法是備份資料庫有中文就會這樣?陽春的還原指令不行:
  • mysql -u root -p dbName < backup.sql
改這樣就可以了:
  • mysql -u root -p --default-character-set=latin1 dbName < backup.sql

星期四, 4月 07, 2016

Extra Packages for Enterprise Linux (EPEL)

為了補充官方版套件的不足,由 SIG 維護的 EPEL 也是重要的安裝來源。現在 CentOS 要啟動是再簡單不過了:yum install epel-release。