2016年6月11日 星期六

[QNAP NAS] Add items to crontab

1. Edit /etc/config/crontab and add your custom entry.
2. Run '/usr/bin/crontab /etc/config/crontab' to load the changes.
3. Restart cron, i.e. '/etc/init.d/crond.sh restart'
PS. Don't forget to make your scripts executable ! Otherwise they would not start!

chmod +x filename.sh



Reference Links:
http://wiki.qnap.com/wiki/Add_items_to_crontab

2016年4月10日 星期日

如何製作可以在 Windows OS 執行的 ipmitool

這篇文章的目的, 主要是記錄如何使用 Cygwin 產生出可以在 Windows OS 上執行的 ipmitool.
如果你是想要使用 Windows 原生的驅動程式, 如: Intel IMB IPMI driver (imbdrv.sys) / Microsoft IPMI driver (ipmidrv.sys), 那就要使用 ipmiutil.


0. 編譯 ipmitool 時的失敗記錄:
  • 0.1 ipmi_sunoem.c:1168:4: error: unknown type name 'fd_set'
  •     我的 Windows 7 x64 系統上不會出現這個錯誤, Windows 10 x64 上有看到
  •     Bug ID 440: 1.8.17 已解決這個問題
  • 0.2 Avast 免費家用版: 會造成錯誤
  • 0.3 沒有 include file: usb.c:43:21: fatal error: scsi/sg.h: No such file or directory
  •     Bug ID 410: 說明請看 7.0,  v1.8.17 已解決這個問題


1. 下載 32-bit 64-bit 的安裝程式
https://www.cygwin.com/setup-x86_64.exe

2. 安裝時選擇下列的套件, 相依性套件 Cygwin setup program 會幫你選好
改用參數選擇要安裝的套件
  • gcc-core
  • make
  • openssl-devel
  • libssl-devel  (Sheng 2019/10/18 補充: libssl-devel 取代 openssl-devel)
  • diff
  • Fisher 2017/08/17 補充: Windows 10 / Cygwin 64, 尚須
  • autoconf
  • automake
  • m4
  • libtool
  • Puwen 2018/03/02 補充: 如果需要支援 ipmishel
  • libncurses-devel
  • libreadline-devel

$ setup-x86_64 --quiet-mode --disable-buggy-antivirus --upgrade-also --wait --arch="x86" --root="c:\cygwin" --only-site --site="ftp://ftp.cse.yzu.edu.tw/pub/cygwin/" --packages="bash,p7zip,libssl-devel,git,gcc-core,make,diff,autoconf,automake,m4,libtool,libncurses-devel,libreadline-devel" --verbose --no-admin
$ setup-x86_64 --quiet-mode --disable-buggy-antivirus --upgrade-also --wait --arch="x86" --root="d:\cygwin" --only-site --site="http://ftp.ntu.edu.tw/pub/cygwin/" --packages="bash,p7zip,libssl-devel,git,gcc-core,make,diff,autoconf,automake,m4,libtool,libncurses-devel,libreadline-devel" --verbose --wait




3. 下載 ipmitool 的 source code




4. 開啟 [Cygwin Terminal] 後, 解壓縮 ipmitool-1.8.18.tar.bz2

$ git clone https://github.com/ipmitool/ipmitool.git
$ cd ipmitool


5. 設定要支援的 interface , 需要 disable usb 因為 Cygwin 中沒有 kernel header files.

$ ./bootstrap
$ ./configure IANADIR="./" IANAUSERDIR="./" DEFAULT_INTF="lanplus" --enable-intf-lan --enable-intf-lanplus --disable-intf-bmc --disable-intf-free --disable-intf-open --disable-intf-imb --disable-intf-usb --enable-intf-serial --enable-ipmishell
$ LANG=C make


6. 把下列目錄裡的檔案, 單獨複製到一個目錄即可在不同的 Windows 中使用

$ mkdir -p $HOME/ipmitool-1.8.18-bin
$ cp src/.libs/ipmitool.exe $HOME/ipmitool-1.8.18-bin
$ cd $HOME/ipmitool-1.8.18-bin
$ cp /bin/cygreadline7.dll .
$ cp /bin/cygwin1.dll .
$ cp /bin/cygcrypto-1.1.dll .
$ cp /bin/cyggcc_s-1.dll .
$ cp /bin/cygncursesw-10.dll .
$ cp /bin/cygz.dll .
$ curl https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers -o enterprise-numbers
$ 7za a "/cygdrive/c/Users/$(echo $USERPROFILE|awk -F\\ '{print $NF}')/Desktop/ipmitool-1.8.18-bin_$(date +%F).7z" "$PWD/*"


    PS. 根據參考網頁的說明, [ipmitool-1.8.XX\src\ipmitool.exe] is only a wrapper script

7. 附註

  • 7.1 沒有 [--disable-intf-usb] 會出現的錯誤訊息

without --disable-intf-usb
Interfaces
  lan : yes
  lanplus : yes
  open : no
  free : no
  imb : no
  bmc : no
  usb : yes
  lipmi : no
  serial : yes
  dummy : no
usb.c:43:21: fatal error: scsi/sg.h: No such file or directory


  • 7.2 Windows 7 64-bit compile 後的檔案在 Windows Server 2008 R2 Standard 64-bit with SP1 上的執行截圖


8. Binaries for Windows


參考網址:
How to compile ipmitool for Windows 32-bit (404)
https://www.rodneybeede.com/How_to_compile_ipmitool_for_Windows_32-bit.html
ipmitool for windows
https://stackoverflow.com/questions/12907005/ipmitool-for-windows

更新記錄:
2020/05/09 19:01, 最佳化 Cygwin 安裝流程, 使用 git 下載 ipmitool 的 source code.
2019/10/19 08:22, 加入 Sheng 與 Andy 的回饋.
2018/03/02 12:56, 更新成 ipmitool-1.8.18, 加入 --enable-ipmishell
2016/05/19 09:35, 加入 LANG=C
2016/05/19 09:26, 加入 ./bootstrap
2016/05/09 13:25, USB Issue been fixed by 1.8.17
2016/05/08 22:16, ipmitool-1.8.17 釋出, 加入 [Binaries for Windows]
2016/04/26 16:23, 加入 7.0/7.1
2016/04/24 23:16, 加入  Code Block CSS
2016/04/22 22:06, 更新 unknown type name 'fd_set'