5/25/2017

Zimbra : Zimbra sync USER เวลเปลี่ยน Diseplay Name

Zimbra : Zimbra sync USER เวลเปลี่ยน Diseplay Name เช่นกรณีเปลี่ยนตำแหน่ง
  1. su - zimbra
  1. zmgsautil forceSync -a galsync.zxqk9lahef@sci.com -n InternalGAL


เสร็จแล้วที่แต่ละ User กดลืม ชื่อเดิมออก

PHP : Export Data To Libreoffice Calc .ods

PHP : Export Data To Libreoffice Calc .ods
1. download และติดตั้ง tbs
http://www.tinybutstrong.com/download.php

2. download plugins และติดตั้ง
http://www.tinybutstrong.com/plugins.php

ไฟล์สำเร็จนำไปแตกไฟล์เรียกใช้ได้เลย


หลักการคือ
ทำ Template และใส่ชื่อ Block ไว้
แล้ว Select ข้อมูลเป็น Array ไปใส่

ตัวอย่าง Code ทำรายงาน
http://www.tinybutstrong.com/opentbs.php?demo
http://www.tinybutstrong.com/examples.php

Example :
  1. include_once('../tbs/tbs_class.php'); // Load the TinyButStrong template engine
  2. include_once('../tbs/plugins/tbs_plugin_opentbs.php'); // Load the OpenTBS plugin
  3.  
  4. // Initialize the TBS instance
  5. $TBS = new clsTinyButStrong; // new instance of TBS
  6. $TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN); // load the OpenTBS plugin
  7.  
  8. $DATA1 = array();
  9.  
  10. $template = 'Report_Template.ods';
  11. $TBS->LoadTemplate($template, OPENTBS_ALREADY_UTF8); // Also merge some [onload] automatic fields (depends of the type of document).
  12. // Merge data in the Workbook (all sheets)
  13. $TBS->MergeBlock('blk1', $DATA1);
  14.  
  15. // -----------------
  16. // Output the result
  17. // -----------------
  18. // Define the name of the output file
  19. $output_file_name = str_replace('.', '_'.date('Y-m-d').'.', $template);
  20.  
  21. // Output the result as a downloadable file (only streaming, no data saved in the server)
  22. $TBS->Show(OPENTBS_DOWNLOAD, $output_file_name); // Also merges all [onshow] automatic fields.
  23. exit();
  24.  
  25.  

Ubuntu : คำสั่งดูขนานไฟล์ ใน Usb Box Backup

Ubuntu : คำสั่งดูขนานไฟล์ ใน Usb Box Backup
ดูขนาดไฟล์ทั้งหมด ใน Box cd เข้า Usb Box ก่อน
  1. ls -lah
-rwxrwxrwx 1 root root 28M Mar 27 17:50 DataServer_20170327.full.0.BlankForm.tar.gz
-rwxrwxrwx 1 root root 3.2G Mar 27 22:57 DataServer_20170327.full.0.CEOs.tar.gz
-rwxrwxrwx 1 root root 44G Mar 27 19:00 DataServer_20170327.full.1.Team.tar.gz
-rwxrwxrwx 1 root root 28G Mar 27 19:33 DataServer_20170327.full.2.Quality.tar.gz
-rwxrwxrwx 1 root root 36G Mar 27 20:35 DataServer_20170327.full.3.SS.tar.gz
-rwxrwxrwx 1 root root 101G Mar 27 22:51 DataServer_20170327.full.4.e-document.tar.gz


ดูขนาดไฟล์รวมทั้งหมด
  1. cd -ch

root@ha1:/mnt/USB/20170327_Full# du -ch
74M ./DataServerSnap
643G .
643G total

ดูขาดไฟล์เฉพาะที่มีชื่อ ตรงกัน เช่น Department
  1. du -ch *Department*
root@ha1:/mnt/USB/20170327_Full# du -ch *Department*
8.7G DataServer_20170327.full.5.Department.00-Public.tar.gz
25G DataServer_20170327.full.5.Department.01-ฝข.1.tar.gz
3.5G DataServer_20170327.full.5.Department.01-งขต.1.tar.gz
1.6G DataServer_20170327.full.5.Department.01-งขต.2.tar.gz
86M DataServer_20170327.full.5.Department.01-งสข.tar.gz
202M DataServer_20170327.full.5.Department.01-งซต.tar.gz
1.5G DataServer_20170327.full.5.Department.02-งอบ.1.tar.gz
13G DataServer_20170327.full.5.Department.02-งอบ.2.tar.gz
3.9G DataServer_20170327.full.5.Department.02-ฝอบ.tar.gz
4.5G DataServer_20170327.full.5.Department.03-ฝจห.tar.gz
1.8G DataServer_20170327.full.5.Department.03-งจล.tar.gz
21G DataServer_20170327.full.5.Department.03-งจซ.tar.gz
8.2G DataServer_20170327.full.5.Department.04-ฝปค.tar.gz
20G DataServer_20170327.full.5.Department.05-รง.1.tar.gz
1.4G DataServer_20170327.full.5.Department.05-รง.2.tar.gz
89G DataServer_20170327.full.5.Department.05-ฝผล.tar.gz
91G DataServer_20170327.full.5.Department.06-ฝซร.tar.gz
2.8G DataServer_20170327.full.5.Department.06-งบก.tar.gz
8.7G DataServer_20170327.full.5.Department.06-งซร.tar.gz
7.7G DataServer_20170327.full.5.Department.07-ฝทง.tar.gz
35G DataServer_20170327.full.5.Department.07-งบง.tar.gz
5.1G DataServer_20170327.full.5.Department.07-งทส.tar.gz
19G DataServer_20170327.full.5.Department.08-ฝพอ.tar.gz
4.4G DataServer_20170327.full.5.Department.08-งสส.tar.gz
12G DataServer_20170327.full.5.Department.08-งสป.tar.gz
30G DataServer_20170327.full.5.Department.08-งพม.tar.gz
5.3G DataServer_20170327.full.5.Department.09-ฝข.2.tar.gz
481M DataServer_20170327.full.5.Department.10-ฝคส.tar.gz
4.6G DataServer_20170327.full.5.Department.10-งวผ.tar.gz
8.3G DataServer_20170327.full.5.Department.10-งคส.tar.gz
432G total

3/28/2017

ปัญหา Zimbra ใช้ syslog-ng แล้วไม่ส่ง Log ไปที่ LogServer

ปัญหา Zimbra ใช้ syslog-ng แล้วไม่ส่ง Log ไปที่ LogServer

แก้โดยใช้ rsyslog ส่งแทน
- ติดตั้ง
  1. apt-get install -f rsyslog

- แก้ config
  1. nano /etc/rsyslog.conf

แก้
ลบ # ออก
  1. # provides UDP syslog reception
  2. $ModLoad imudp
  3. $UDPServerRun 514


เพิ่ม
  1. *.*   @@192.168.2.108:514


- Run คำสั่ง
  1. /opt/zimbra/libexec/zmsyslogsetup



Ubuntu : คำสั่งดูขนานไฟล์ ใน Usb Box Backup

Ubuntu : คำสั่งดูขนานไฟล์ ใน Usb Box Backup
ดูขนาดไฟล์ทั้งหมด ใน Box cd เข้า Usb Box ก่อน
  1. ls -lah
-rwxrwxrwx 1 root root 28M Mar 27 17:50 DataServer_20170327.full.0.BlankForm.tar.gz
-rwxrwxrwx 1 root root 3.2G Mar 27 22:57 DataServer_20170327.full.0.CEOs.tar.gz
-rwxrwxrwx 1 root root 44G Mar 27 19:00 DataServer_20170327.full.1.Team.tar.gz
-rwxrwxrwx 1 root root 28G Mar 27 19:33 DataServer_20170327.full.2.Quality.tar.gz
-rwxrwxrwx 1 root root 36G Mar 27 20:35 DataServer_20170327.full.3.SS.tar.gz
-rwxrwxrwx 1 root root 101G Mar 27 22:51 DataServer_20170327.full.4.e-document.tar.gz


ดูขนาดไฟล์รวมทั้งหมด
  1. cd -ch
root@ha1:/mnt/USB/20170327_Full# du -ch
74M ./DataServerSnap
643G .
643G total


ดูขาดไฟล์เฉพาะที่มีชื่อ ตรงกัน เช่น Department
  1. du -ch *Department*
root@ha1:/mnt/USB/20170327_Full# du -ch *Department*
8.7G DataServer_20170327.full.5.Department.00-Public.tar.gz
25G DataServer_20170327.full.5.Department.01-ฝข.1.tar.gz
3.5G DataServer_20170327.full.5.Department.01-งขต.1.tar.gz
1.6G DataServer_20170327.full.5.Department.01-งขต.2.tar.gz
86M DataServer_20170327.full.5.Department.01-งสข.tar.gz
202M DataServer_20170327.full.5.Department.01-งซต.tar.gz
1.5G DataServer_20170327.full.5.Department.02-งอบ.1.tar.gz
13G DataServer_20170327.full.5.Department.02-งอบ.2.tar.gz
3.9G DataServer_20170327.full.5.Department.02-ฝอบ.tar.gz
4.5G DataServer_20170327.full.5.Department.03-ฝจห.tar.gz
1.8G DataServer_20170327.full.5.Department.03-งจล.tar.gz
21G DataServer_20170327.full.5.Department.03-งจซ.tar.gz
8.2G DataServer_20170327.full.5.Department.04-ฝปค.tar.gz
20G DataServer_20170327.full.5.Department.05-รง.1.tar.gz
1.4G DataServer_20170327.full.5.Department.05-รง.2.tar.gz
89G DataServer_20170327.full.5.Department.05-ฝผล.tar.gz
91G DataServer_20170327.full.5.Department.06-ฝซร.tar.gz
2.8G DataServer_20170327.full.5.Department.06-งบก.tar.gz
8.7G DataServer_20170327.full.5.Department.06-งซร.tar.gz
7.7G DataServer_20170327.full.5.Department.07-ฝทง.tar.gz
35G DataServer_20170327.full.5.Department.07-งบง.tar.gz
5.1G DataServer_20170327.full.5.Department.07-งทส.tar.gz
19G DataServer_20170327.full.5.Department.08-ฝพอ.tar.gz
4.4G DataServer_20170327.full.5.Department.08-งสส.tar.gz
12G DataServer_20170327.full.5.Department.08-งสป.tar.gz
30G DataServer_20170327.full.5.Department.08-งพม.tar.gz
5.3G DataServer_20170327.full.5.Department.09-ฝข.2.tar.gz
481M DataServer_20170327.full.5.Department.10-ฝคส.tar.gz
4.6G DataServer_20170327.full.5.Department.10-งวผ.tar.gz
8.3G DataServer_20170327.full.5.Department.10-งคส.tar.gz
432G total

3/20/2017

Axapta : Error Incorrect rounding of amount. ตอนจะ Post เอกสาร หรือ ตอน Validate

Axapta : Error Incorrect rounding of amount. ตอนจะ Post เอกสาร หรือ ตอน Validate


เกิดจาก
จำนวนเงินของยอดที่จองใน Line กับยอดเงินที่คงเหลืออยู่ใน On-hand คำนวณแล้วไม่ลงตัวหรือเหลือเศษใน Inventrory

แก้โดย
เวลาจองต้องแก้จำนวนให้เท่ากับราคาของที่เข้ามา หรือราคาเดียวกับยอดเงินใน batch ที่จะจอง แล้วจองใหม่
บางครั้งจองได้ราคาเดิมก็ต้องแก้ราคาเองให้ตรงกับความเป็นจริง เอาราคา Cost amount ที่ ปุ่ม Inventory ---> Transaction
จึงจะ Post ผ่าน

Ubuntu : cannot umount USB External

Ubuntu : cannot umount USB External
  1. umount /mnt/USB

show error :
umount: /mnt/USB: target is busy
(In some cases useful info about processes that
use the device is found by lsof(8) or fuser(1).)


เพราะว่ามี Processes อื่นใช้งานอยู่ ตั้ง kill processes นั่นก่อน
  1. sudo fuser -km /mnt/USB

show
/mnt/USB: 21038c 30447c

21038 is processes use USB Box.
  1. kill 21038



https://chrisjean.com/forcing-a-device-to-unmount-in-ubuntu-linux/

3/08/2017

Pfsense : ตั่งค่าให้มี Email เตือน Alert

Pfsense : ตั่งค่าให้มี Email เตือน Alert
Menu :
System --> Advanced --> Notifications

smtp server: smtp.gmail.com
Secure SMTP Connection:
Enable STARTTLS with ports 587
From e-mail address: xxx@gmail.com
E-Mail address (destination): xxx@yahoo.com
E-Mail auth username: xxx@gmail.com
E-Mail auth password: ***


ยังไม่มีวิธีเลือกให้แจ้งเตือน หรือแจ้งเตือนตอน Login ต้องรอ Update
https://www.bytesizedalex.com/pfsense-e-mail-notifications-with-google-gmail/

PHP : PHP TCPDF กำหนดชิดขอบบน และขอบล่าง

PHP : PHP TCPDF กำหนดชิดขอบบน และขอบล่าง
  1. /*set margins*/
  2. //$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
  3. $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP-15, PDF_MARGIN_RIGHT);
  4.  
  5.  
  6. /*set auto page breaks*/
  7. //$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
  8. $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM-15);
  9.  

3/04/2017

Line Notify

Line เปิดให้บริการที่ชื่อว่า Line Notify ซึ่งทำให้สามารถส่งข้อความหาบุคคลหรือกลุ่มได้
1.สมัครใช้บริการที่ https://notify-bot.line.me/my/
2.สร้าง Token โดยตั้งชื่อซึ่งจะใช้เป็นชื่อผู้ส่งข้อความ และเลือกบุคคลหรือกลุ่มที่ต้องการส่งข้อความถึง แล้วคลิก ออก Token
3.นำ Token ไปเขียน code สำหรับส่งข้อความ เช่น
  1. <?php
  2. define('LINE_API',"https://notify-api.line.me/api/notify");
  3.  
  4. $token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; //ใส่Token ที่copy เอาไว้
  5. //$str = "Hello"; //ข้อความที่ต้องการส่ง สูงสุด 1000 ตัวอักษร
  6. $str = $_GET["msg"];
  7.  
  8. $res = notify_message($str,$token);
  9. print_r($res);
  10. function notify_message($message,$token){
  11.  $queryData = array('message' => $message);
  12.  $queryData = http_build_query($queryData,'','&');
  13.  $headerOptions = array(
  14.          'http'=>array(
  15.             'method'=>'POST',
  16.             'header'=> "Content-Type: application/x-www-form-urlencoded\r\n"
  17.                       ."Authorization: Bearer ".$token."\r\n"
  18.                       ."Content-Length: ".strlen($queryData)."\r\n",
  19.             'content' => $queryData
  20.          ),
  21.  );
  22.  $context = stream_context_create($headerOptions);
  23.  $result = file_get_contents(LINE_API,FALSE,$context);
  24.  $res = json_decode($result);
  25.  return $res;
  26. }
  27. ?>

4.เพิ่ม Account ของ Line Notify เป็นสมาชิกในกลุ่มนั้น
5.เรียกใช้ code แล้วจะได้ json บอกผลลัพธ์มา

ตัวอย่างการใช้งาน :
6.แจ้งเตือนเมื่อมีการ login เข้า server (เพิ่ม code เข้าไปที่ .profile หรือ .bash_profile)
  1. curl -X POST -H 'Authorization: Bearer [xxxxxxxxxxxxxxxxxxx]' -F 'message=Somebody login to server' https://notify-api.line.me/api/notify

หรือ
  1. wget --no-check-certificate 'https://intranet.sci.com/sci/Line/notify.php?msg=Somebody%20login%20to%20Server'

หรือ
  1. curl --insecure 'https://intranet.sci.com/sci/Line/notify.php?msg=Somebody%20login%20to%20Server'

วิธีเปลี่ยน hostname ของ Raspberry Pi

วิธีเปลี่ยน hostname ของ Raspberry Pi
1. edit local host via sudo nano /etc/hosts
2. edit hostname via sudo nano /etc/hostname
3. update the hostname initialization via sudo /etc/init.d/hostname.sh

Axapta : คำสั่งผลิต Post Jobcard ไม่ได้ Error : Job does not exist

Axapta : คำสั่งผลิต Post Jobcard ไม่ได้ Error : Job does not exist. ตามรูป

เกิดจาก
การนำคำสั่งผลิตเก่าที่สร้างไว้นาน ๆและสร้าง Jobcard ไว้นาน ๆ มาทำต่อ
ทำให้ Job identification ไม่มี อาจจะเกิดจากการ Update start หรือ Update Job Scheduling ทำให้ Job identifation เปลี่ยนไป
ลอง New บรรทัดใหม่ แล้วเลือก Job identification จะได้เลขใหม่ ซึ่งเลขเดิมที่คีย์ไว้นั้นไม่มี

แก้โดย
วิธีที่ 1. ลบ Jobcard ใน Line ออกให้หมดแล้วคีย์ใหม่

วิธีที่ 2. แต่ถ้ามีเยอะ ใช้วิธีแก้ข้อมูลที่ Table ProdJournalRoute ก็ได้ (ทดลองทำใส Local ก่อนทำในของจริง ลอง Reports ดูด้วยว่าเกิดต้นทุนถูกต้องหรือไม่ใน Transaction ของ Item นั้น ๆ)
โดย
- จด Journal ID , Job identification ปัจจุบัน, Job identification ใหม่ที่ได้จากการ New Line ดูให้ดี ถ้ามีเลขเหมือนกันให้เข้าไปดู Job type ตรง Tab General
บาง Line จะเหมือนกัน แถวสุดท้ายจะไม่เหมือนจะเป็น Set up เลขจะเปลี่ยนไป
(จดให้เสร็จก่อนแล้วค่อยไปแก้ทีเดียวจะได้ไม่งง)
เช่น

- เข้า SQL Enterprise Manager เลือก Table ProdJournalRoute
ใช้คำสั่ง SQL โดยใช้ JorunalID ที่จดมา
  1.  
  2. SELECT * FROM PRODJOURNALROUTE
  3. WHERE (JOURNALID = ' JorunalID ที่จดมา ')
  4.  

- แก้ข้อมูลช่อง JOBID เป็นตัว Job identifcation ใหม่ ดูดี ๆ ให้ตรงกัน
- เสร็จแล้วลอง Validate ดู
แล้วแจ้งให้ User ดำเนินการต่อ

3/01/2017

Windows 10 : Driver Kyocera Mita KM-2050 สำหรับ Windows 10

Windows 10 : Driver Kyocera Mita KM-2050 สำหรับ Windows 10
นำ Driver จาก Web Kyocera มาติดตั้งแล้ว Font ที่เป็น Angsanaupc Print ออกมาเพี้ยนเป็นตัวหนาและเอียง
เป็น Driver Universal ถ้าบังคับหรือเปลี่ยนให้เป็น Driver KM-2050 ให้ตรงรุ่น LibreOffice จะ Print ไม่ได้จะปิดตัวเองเมื่อเลือก Printer
Driver :
https://www.kyoceradocumentsolutions.eu/index/service/dlc.false._.KM2050._.EN.html

วิธีแก้
- ลบ Printer ที่ติดตั้งตาม Driver ข้างบนออก
- ปล่อย IP ของเครื่องให้ออก Net ตรง เพื่อ Update Driver จาก Windows 10
- เข้า หน้า Printer เลือก Add Printer แล้วเลือก The printer that I want isn't listed
- Add Printer เลือก Add TCP/IP เพื่อใส่ IP ใหม่ หรือถ้ามีอยู่แล้วก็เลือก Add a local printer or network ...
- เลือก Device type เป็น TCP/IP Device แล้ว ใส่ Hostname or IP address ที่เราต้องการ


- เลือก Windows Update เพื่อให้ Download Driver จาก Windows 10 (จะใช้เวลาสักพักในการหา Driver ที่ต้องการ)

- เมื่อเจอ Driver ให้เลือก Kyocera และเลือก Printer เป็น Kyocera Mita KM-2050 KZ (KYOCERA Document Solutions) แล้วกด Next กด Finish ตามรูป
- เมื่อเสร็จแล้วจะได้ Printer ตรงรุ่น


สามารถ Print ได้ตามปกติ

2/24/2017

Raspberrypi : Error Lastversion 4.4

Raspberrypi : Error Lastversion 4.4

1. Error cannot download Adafruit_DHT.c




ให้ไปเอาจากนี้ https://code.ga-fl.net/cgz/jacuzzi/raw/913b3e809831b2e6a04f9e31c52bf03ea4176d38/var/jacuzzi/lib/Adafruit-Raspberry-Pi-Python-Code-master/Adafruit_DHT_Driver/Adafruit_DHT.c

ใช้ไฟล์นี้ไว้ที่ /tmp/ แล้วค่อยทำอย่างอื่นต่อ


2. Error Module SPI ให้เปิด SPI
http://piface.github.io/pifacecommon/installation.html#enable-the-spi-module
โดยลง
  1. sudo modprobe spi-bcm2708

ถ้า Error
Module i2c-bcm2708 not found
ให้เปิดใน ไฟล์ config.txt
  1. nano /boot/config.txt

แก้โดยเปิด
  1. dtparam=spi=on

แล้ว Reboot 1 ครั้ง
จะสั่งหรือใช้งานได้ต้องนำไปต่อเครื่อง piface ถ้าไม่ต่อจะไม่เจอ device

3. เวลาไม่ตรงต้องไปเลือก Time zone ใหม่
  1. sudo raspi-config
แล้วเลือกดังนี้
4 Internationalisation Options
I2 Change Timezone
Asia
Bangkok
<Finish>


4. ssh not auto start when reboot.
  1. sudo raspi-config
แล้วเลือกดังนี้
5 Interfacing Options
P2 SSH
<Yes>
<Ok>
<Finish>

Axapta : Job เรียก User Group ว่ามี User อะไรบ้าง เพื่อนำไปใช้งานต่อ

Axapta : Job เรียก User Group ว่ามี User อะไรบ้าง เพื่อนำไปใช้งานต่อ
- จะได้ User ใส่ ไฟล์ Text แล้วนำไปใส่ Office หรือไปใช้งานต่อ
  1. static void ExportUerFromGroup(Args _args)
  2.  
  3. {
  4.     UserGroupList   groups;
  5.     UserInfo        userInfo;
  6.  
  7.     AsciiIO         myFile;
  8.     str             strEmpId;
  9.     ;
  10.  
  11.     myFile=new AsciiIO("D:\\Full.txt","a");
  12.     WHILE
  13.     SELECT * FROM groups
  14.     ORDER BY groupId
  15.     WHERE groups.groupId == 'LG-E1'
  16.     ||  groups.groupId == 'LG-M'
  17.     ||  groups.groupId == 'LG-S1'
  18.     ||  groups.groupId == 'SS-E1'
  19.     ||  groups.groupId == 'SS-E2'
  20.     ||  groups.groupId == 'SS-M'
  21.     ||  groups.groupId == 'SS-S1'
  22.     ||  groups.groupId == 'SS-S2'
  23.     ||  groups.groupId == 'IF-E1'
  24.     ||  groups.groupId == 'IF-E2'
  25.     ||  groups.groupId == 'IF-M'
  26.     ||  groups.groupId == 'IF-S1'
  27.     ||  groups.groupId == 'IF-S2'
  28. //Mask View.
  29.     /*WHERE groups.groupId == 'DS-E1'
  30.     ||  groups.groupId == 'DS-E2'
  31.     ||  groups.groupId == 'IF-N03'
  32.     ||  groups.groupId == 'PD-E1'
  33.     ||  groups.groupId == 'PD-E2'
  34.     ||  groups.groupId == 'PD-N03'
  35.     ||  groups.groupId == 'QA-E1'
  36.     ||  groups.groupId == 'S2-E'
  37.     ||  groups.groupId == 'V_ALL'*/
  38.     {
  39.         //print groups.groupId;
  40.         WHILE
  41.         SELECT * FROM userInfo
  42.         WHERE userInfo.id == groups.userId
  43.         {
  44.             //info(strfmt("%1:%2", userInfo.id, userInfo.name));
  45.             myFile.write(strfmt("%1,%2,%3",userInfo.id, userInfo.name, enum2str(userInfo.enable)));
  46.             //strEmpId = strfmt("%1,%2", strEmpId, userInfo.id);
  47.            
  48.         }
  49.    
  50.     }
  51. //myFile.write(strEmpId);
  52. myFile = null;
  53. }


Example : https://community.dynamics.com/ax/f/33/t/144374

2/16/2017

Ubuntu : Ubuntu 16.04 Sent Squid Log To Server Syslog-ng

Ubuntu : Ubuntu 16.04 Sent Squid Log To Server Syslog-ng
การส่ง squid log จากเครื่อง squid ไปเก็บที่เครื่อง log server ไม่ผ่านโดยใช้ Squid ส่งไม่ผ่าน Program อื่น ๆ เช่น syslog-ng หรือ rsyslog

- แก้ไฟล์ squid.confi
  1. nano /etc/squid/squid.conf

- เพิ่ม ไว้ใต้ #Default: ของ logformat
  1. #SCI_EDIT Sent Log Squid To Log Server
  2. #Sent To access.log file. for lightsquid read access.log file show on lightsquid web.
  3. access_log /var/log/squid/access.log squid
  4.  
  5. #Sent To Log Server.
  6. logformat squid %tl %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
  7. access_log tcp:192.168.2.108:514 squid


- restart squid
  1. /etc/init.d/squid restart

แล้ว Log จะถูกส่งจากเครื่อง squid ไปเก็บที่เครื่อง Log server



2/14/2017

Raspberrypi : มีปัญหา อ่านค่าอุณหภูมิไม่ได้

Raspberrypi : มีปัญหา อ่านค่าอุณหภูมิไม่ได้
Run คำสั่ง
  1. Adafruit_DHT 22 23
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (38): 0x4 0x4 0x3 0x4f 0x18
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (39): 0x2 0x4 0x1 0xa7 0x57
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (37): 0x8 0x8 0x3 0x4f 0xb
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (39): 0x2 0x6 0x1 0xa7 0x58
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (38): 0x2 0x2 0x0 0xaf 0x17
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (38): 0x4 0x6 0x1 0xd3 0x19

แล้วไม่แสดงอุณหภูมิ ได้ค่าเป็นตัวเลขแทนตามรูป
เกิดจาก Motion กล้อง USB ใช้ CPU มากเกินไป ทำให้อุณหภูมิไม่ได้ และมีผลทำให้เครื่อง Raspberrypi ค้างด้วย หลังจากปิด Motion USB กล้อง Webcam สามารถทำงานได้ตามปกติ
Stop Motion
  1. /etc/init.d/motion stop
  1. Adafruit_DHT 22 23

จะได้อุณหภูมิตามรูป
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (40): 0x2 0x0 0x0 0xd1 0xd3
Temp = 20.9 *C, Hum = 51.2 %
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (40): 0x2 0x2 0x0 0xd0 0xd4
Temp = 20.8 *C, Hum = 51.4 %
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (40): 0x2 0x2 0x0 0xd0 0xd4
Temp = 20.8 *C, Hum = 51.4 %
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (40): 0x2 0x3 0x0 0xcf 0xd4
Temp = 20.7 *C, Hum = 51.5 %
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (40): 0x2 0x3 0x0 0xcf 0xd4
Temp = 20.7 *C, Hum = 51.5 %
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (40): 0x2 0x3 0x0 0xcf 0xd4
Temp = 20.7 *C, Hum = 51.5 %
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (40): 0x2 0x2 0x0 0xce 0xd2
Temp = 20.6 *C, Hum = 51.4 %
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (40): 0x2 0x2 0x0 0xce 0xd2
Temp = 20.6 *C, Hum = 51.4 %
root@raspberrypi:/home/pi# Adafruit_DHT 22 23
Using pin #23
Data (40): 0x2 0x3 0x0 0xcf 0xd4
Temp = 20.7 *C, Hum = 51.5 %

ข้อมูลจาก
https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=27215&sid=9513fdaf30f01e19bd51a3610343914d

Check CPU ด้วยคำสั่ง
  1. top
Use CPU
Start Motion

Use CPU
Stop Motion

ถอดโปรแกรม Motion
sudo apt-get remove motion

2/01/2017

Zimbra : Zimbra Delete All Email Contract All User.

Zimbra : Zimbra Delete All Email Contract All User.
Zimbra มีปัญหา จำ Email Contract เดิม ซึ่งแสดงชื่อตำแหน่งไม่ถูกต้อง จะต้องลบ Email Contract ของแต่ละ User ออก และ Reset RankingActionRequest เพื่อให้ Zimbra เรียนรู้ และจำ Contract ใหม่

** ใช้ Code นี้ Contract และ Contract Group ที่สร้างขึ้นเองยังอยู่ **

1. สร้างไฟล์ bash .sh สำหรับ Run คำสั่ง
https://forums.zimbra.org/viewtopic.php?t=28905

  1. #!/bin/bash
  2.  
  3. #for foo in `cat /usr/local/scripts/users.txt`
  4. #File User We Do It.
  5. for foo in `cat /home/sa/users.txt`
  6. do
  7.         echo $foo
  8.         echo "Verifting contacts from user $foo" >> /tmp/purge_emailed_contacts_log.txt
  9.  
  10.         /opt/zimbra/bin/zmmailbox -z -m $foo gact -f "/Emailed Contacts" | grep Id: | cut -d" " -f2 > /tmp/verContactos.txt
  11.         for contacto in `cat /tmp/verContactos.txt`
  12.         do
  13.                 /opt/zimbra/bin/zmmailbox -z -m $foo gct $contacto | grep email > /tmp/contacto_a_examinar.txt
  14.                 RESP=`grep sci.com /tmp/contacto_a_examinar.txt`
  15.                 if [ ${#RESP} -gt 1 ]
  16.                 then
  17.                         echo "Local Contact"
  18.                         echo "Deleting contact $RESP"
  19.                         /opt/zimbra/bin/zmmailbox -z -m $foo dct $contacto
  20.                         echo "Contact $RESP with ID $contacto has been deletec from account $foo" >> /tmp/purge_emailed_contacts_log.txt
  21.                         echo ""
  22.                 fi
  23.         done
  24.  
  25. /opt/zimbra/bin/zmsoap -z -m $foo RankingActionRequest/action @op=reset
  26. /opt/zimbra/bin/zmprov fc account $foo
  27.  
  28. done


2. นำไฟล์ User มาใส่ txt รูปแบบ เอา User มาเรียง เช่น


เอา User ที่เป็น Admin และพวกป้องกัน Virus , Spam ออก ให้เหลือเฉพาะ User ที่จะใช้งานจริง ๆ
https://community.bittitan.com/kb/Pages/How%20do%20I%20export%20a%20user%20list%20from%20Zimbra%20into%20a%20CSV%20file.aspx

https://wiki.zimbra.com/wiki/Reset_contact_Autocomplete_ranking

https://wiki.zimbra.com/wiki/King0770-Notes-Removal_of_Bad_Contact_Address

1/25/2017

Ubuntu : Ubuntu 16.04 cacher-ng for update upgrade

Ubuntu : Ubuntu 16.04 cacher-ng for update upgrade
- ติดตั้ง
  1. sudo apt-get install apt-cacher-ng


- snap เครื่องเดิม เพื่อเอา disk cache ไปใส่เครื่องใหม่
- download file vmdk
จะได้ไฟล์ 2 ไฟล์ .vmdk และ flat.vmdk
- upload ขึ้น folder ที่ต้องการ
- add disk ใส่ VMware
- ดู disk ว่าได้ dev อะไร
  1. fdisk -l

- สร้าง folder สำหรับ mount disk ใส่
  1. mkdir /cache-ng

- mount disk ใส่ /cache-ng
  1. mount /dev/sdc1/ /cache-ng

- auto mount
  1. nano /etc/fstab

เพิ่ม Code
  1. /dev/sdc1 /cache-ng    ext4    defaults         0       0


-แก้ไฟลื acng.conf เพื่อให้ไปใช้งาน disk cache-ng
  1. nano /etc/apt-cacher-ng/acng.conf

แก้
  1. CacheDir: /cache-ng/apt-cacher-ng
  2. Port:9999


- restart service
  1. /etc/init.d/apt-cacher-ng restart


ทดลองแก้ เครื่องอื่น
  1. nano /etc/apt/apt.conf

ใส่ ip ใหม่
  1. Acquire::http { Proxy "http://192.168.2.116:9999"; };

แล้วทดลอง update upgrade ดู

Lightsquid : Lightsquid On Ubuntu 16.04

Lightsquid : Lightsquid On Ubuntu 16.04
ต่อจากติดตั้ง Squid Proxy เสร็จ
http://porpramarn.blogspot.com/2017/01/proxy-ubuntu-1604-squid.html
ติดตั้ง Lightsquid ต่อเพื่อไว้ดูรายงานต่าง ๆ
- downlosd
http://sourceforge.net/projects/lightsquid/files/lightsquid/lightsquid-1.8.tgz

- เอาไว้ทีเครื่องอื่น แล้ว scp หรือ wget เอา
- cd เข้าไปใน Folder ที่ มีไฟล์ ightsquid-1.8.tgz
แตกไฟล์
  1. tar xvzf lightsquid-1.8.tgz

move file ไปไว้ที่ /usr/local/lightsquid
  1. mv lightsquid-1.8 /usr/local/lightsquid

- แก้ lightsquid.cfg
  1. nano /usr/local/lightsquid/lightsquid.cfg

แก้ Path
  1. #path to additional `cfg` files
  2. $cfgpath             ="/var/local/lightsquid";
  3. #path to `tpl` folder
  4. $tplpath             ="/usr/local/lightsquid/tpl";
  5. #path to `lang` folder
  6. $langpath            ="/usr/local/lightsquid/lang";
  7. #path to `report` folder
  8. $reportpath          ="/usr/local/lightsquid/report";
  9. #path to access.log
  10. $logpath             ="/var/log/squid";
  11. #path to `ip2name` folder
  12. $ip2namepath         ="/usr/local/lightsquid/ip2name";
  13.  
  14. $skipurl             = 'sci\.com|192\.168\.2\.';


- check ว่ามี error หรือไม่
  1. /usr/local/lightsquid/check-setup.pl


- สร้าง Link เข้า Web
  1. nano /etc/apache2/conf-available/lightsquid.conf

ใส่ Code เข้าไป
  1. Alias /lightsquid /usr/local/lightsquid/
  2.  
  3. <Directory "/usr/local/lightsquid/">
  4.     Options +Indexes +ExecCGI
  5.     AddHandler cgi-script .cgi .pl
  6.     AllowOverride All
  7.     Order allow,deny
  8.     Allow from all
  9.     Require all granted
  10. </Directory>


- Test เข้า lightsquid ip/lighsquid
  1. 192.168.2.116/lighsquid


Error
client denied by server configuration: /usr/local/lightsquid/

ต้อง run คำสั่ง
  1. a2enmod cgi
  2. a2enconf lightsquid
  3. systemctl restart apache2


- Test เข้า lightsquid ip/lighsquid
  1. 192.168.2.116/lighsquid


Error
Can't locate CGI.pm in @INC (you may need to install the CGI module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /usr/local/lightsquid/index.cgi line 19. BEGIN failed--compilation aborted at /usr/local/lightsquid/index.cgi line 19.


ต้องติดตั้งโปรแกรมเพิ่มเติม
  1. apt-get install libcgi-pm-perl


Thank This Web : https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1410241.html
- Restart apache2
- Test เข้า lightsquid ip/lighsquid

จะเข้าดูได้ ถ้าเข้าไม่ได้ ดู log ว่า Error อะไรใช้คำสั่ง
  1. tail /var/log/apache2/error.log


- ถ้าต้องการดู Graph ด้วย อาจจำเป็นต้องติดตั้ง GD.PM เพิ่มเติมด้วยคำสั่ง
  1. apt-get install libgd-gd2-perl


- ถ้าไม่ต้องการ ให้แก้ $graphreport ใน lightsquid.cfg เป็น
  1. $graphreport = 0


- Generate report
  1. /usr/local/lightsquid/lightparser.pl


- Test เข้า lightsquid ip/lighsquid
- Generate report ทุกวัน
  1. crontab -e

เพิ่ม Code
  1. 0 0 * * * /usr/local/lightsquid/lightparser.pl

หรือ
  1. @daily /usr/local/lightsquid/lightparser.pl


เสร็จการติดตั้ง Lightsquid on ubuntu 16.04

- copy report จากเครื่องเดิม มาใส่เครื่องใหม่ จะได้มีข้อมูลเก่าไว้ดู
ที่เครื่องเก่า
  1. cd /usr/local/lightsquid

scp ทั้งหมด folder report
  1. scp -r report/ sa@192.168.2.116:/home/sa


ที่เครื่องใหม่
- copy folder report ไปไว้ใน /usr/local/lightsquid/
  1. cp -r report/ /usr/local/lightsquid/


- เข้าดู lightsquid จะมีข้อมูลเก่าขึ้นมา
http://192.168.2.116/lightsquid/index.cgi

- copy folder it และไฟล์ it*.* ที่อยู่ใน folder lightsquid จากเครื่องเก่าไปเครื่องใหม่ เพื่อเข้าดูหน้า CHECK IP ว่าชื่อใครมีใช้ที่ ip ใดบ้าง
ที่เครื่องเก่า
  1. scp -r it/ sa@192.168.2.116:/home/sa

  1. scp it* sa@192.168.2.116:/home/sa


ที่เครื่องใหม่ copy ไฟล์เข้าไปไว้ /usr/local/lightsquid/
  1. cp -r it/ /usr/local/lightsquid/

  1. cp it* /usr/local/lightsquid/

- cd เข้า folder lightsquid
  1. cd /usr/local/lightsquid/

http://porpramarn.blogspot.com/2016/11/lightsquid-edit-file-and-use-phpmysql.html

- แก้ไฟล์ html สำหรับแสดงผลหน้า web ที่ /usr/local/lightsquid/tpl/base เพิ่มข้อความแก้ไขรูปแบบของ html
เช่น index.html เพื่อให้มี link คลิกไปดูหน้า php ที่สร้างขึ้นได้ เพิ่ม
  1. <TD width="33%" align="center"><FONT size="-1"><A HREF="it.php">CHECK IP</A></FONT></TD>


- ที่ folder ip2name ให้ copy ไฟล์ ip2name.simple --> ip2name.simpleNew แก้ Code เป็นดังนี้เพื่อให้ Show IP และชื่อร่วมกัน (ไม่ใช้ไฟล์เดิมร่วมกันเพราะมีปัญหาเรื่อง Link และไม่สามารถดูภาพรวมทั้งหมดเฉพาะชื่อได้จึงต้องแยก)
  1. #contributor: esl
  2. #do nothing
  3. #simple version
  4.  
  5. sub StartIp2Name() {
  6. }
  7.  
  8. sub Ip2Name($$$) {
  9.   # $Lhost,$user,$Ltimestamp
  10.   my $Lhost=shift;
  11.   my $user =shift;
  12.   #return $user.":".$Lhost
  13.   return $user.":".$Lhost if ($user ne "-"); #return user if defined !!!!!
  14.   #return $user if ($user ne "-"); #return user if defined !!!!!
  15.   return $Lhost;
  16. }
  17.  
  18. sub StopIp2Name() {
  19. }
  20.  
  21. #warning !!!
  22. 1;


- Run คำสั่ง สร้าง Report โดยใช้คำสั่ง
/usr/local/lightsquid/it_lightparser.pl

- นำคำสั่งไปใส่ใน crontab -e เพื่อจะให้ run auto กำหนดวันตามที่เราต้องการ เช่น
  1. 0 0,13 * * * /usr/local/lightsquid/it_lightparser.pl


-ติดตั้ง mysql
  1. sudo apt-get install mysql-server


- ติดตั้ง phpmyadmin และ Program ที่ต้องใช้ร่วมกับ phpmyadmin
  1. sudo apt-get install phpmyadmin php-mbstring php-gettext


- เข้า phpmyadmin สร้าง database it_report แล้วนำ database จากเครื่องเก่ามา imports เข้า
ถ้าไม่มีข้อมูลหรือไม่แสดงผล หรือมี error ต่าง ๆ ให้เข้าดู log ของ apache2
  1. tail /var/log/apache2/error.log

แล้วแก้ตามที่มี error เช่น คำสั่ง split ใช้งานไม่ได้แล้วให้แก้เป็น explode แทน
แล้วทดลองเข้า http://192.168.2.116/lightsquid/it.php

Proxy : Ubuntu 16.04 Squid

Proxy : Ubuntu 16.04 Squid
- ติดต้้่ง 16.04 Server set apt.conf update upgrade ให้เรียบร้อย
  1. apt nano /etc/apt/apt.conf

Acquire::http { Proxy "http://192.168.2.16:9999"; };
  1. apt-get update
  1. apt-get upgrade


- Generate locale perl: warning
  1. locale-gen en_US en_US.UTF-8 th_TH th_TH.UTF-8


- ติดตั้ง โปรแกรม
  1. apt-get install squid3
  1. apt-get install apache2


- join domain
  1. apt-get install krb5-user samba winbind


- แก้ไฟล์ krb5.conf
  1. nano /etc/krb5.conf

แทนที่ทั้งหมด
  1. [logging]
  2. default = FILE:/var/log/krb5.log
  3. [libdefaults]
  4. ticket_lifetime = 24000
  5. clock_skew = 300
  6. default_realm = SCI.COM
  7. krb4_config = /etc/krb.conf
  8. krb4_realms = /etc/krb.realms
  9. kdc_timesync = 1
  10. ccache_type = 4
  11. forwardable = true
  12. proxiable = true
  13. default_tgs_enctypes = aes256-cts arcfour-hmac-md5 des3-hmac-sha1 des-cbc-crc des-cbc-md5
  14. default_tkt_enctypes = aes256-cts arcfour-hmac-md5 des3-hmac-sha1 des-cbc-crc des-cbc-md5
  15. v4_instance_resolve = false
  16. v4_name_convert = {
  17. host = {
  18. rcmd = host
  19. ftp = ftp
  20. }
  21. plain = {
  22. something = something-else
  23. }
  24. }
  25. fcc-mit-ticketflags = true
  26. [realms]
  27. SCI.COM = {
  28. kdc = dc01.sci.com
  29. admin_server = dc01.sci.com
  30. default_domain = SCI.COM
  31. }
  32. [domain_realm]
  33. .sci.com = SCI.COM
  34. sci.com = SCI.COM
  35. [login]
  36. krb4_convert = true
  37. krb4_get_tickets = false
  38.  


- แก้ไฟล์ smb.conf
  1. nano /etc/samba/smb.conf

แทนที่ทั้งหมด
  1. [global]
  2. security = ads
  3. realm = SCI.COM
  4. password server = dc01.sci.com
  5. workgroup = SCI
  6. idmap uid = 10000-20000
  7. idmap gid = 10000-20000
  8. winbind enum users = yes
  9. winbind enum groups = yes
  10. template homedir = /home/%U
  11. template shell = /bin/bash
  12. client use spnego = yes
  13. client ntlmv2 auth = yes
  14. encrypt passwords = yes
  15. winbind use default domain = yes
  16. restrict anonymous = 2
  17. map acl inherit = yes
  18. nt acl support = yes
  19. disable spoolss = yes
  20. wins server = 192.168.0.253
  21.  


- join domain ด้วยคำสั่ง
  1. net rpc join ads SCI.COM -S dc01.sci.com -U Administrator

หรือ
  1. net ads join SCI.COM -S dc01.sci.com -U Administrator


- restart service
  1. /etc/init.d/smbd restart 
  1. /etc/init.d/winbind restart


- test kerberos
  1. kinit Administrator@SCI.COM  #domain ใช้ตัวพิมพ์ใหญ่
  2.     klist

ควรจะได้ผลลัพธ์ ประมาณนี้
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@SCI.COM

Valid starting Expires Service principal
02/24/11 13:31:44 02/24/11 20:11:44 krbtgt/SCI.COM@SCI.COM


- get group get user
  1. wbinfo -u
#แสดงรายการ user ใน domain
  1. wbinfo -g
#แสดงรายการ group ใน domain

- get password get group AD
  1. getent passwd
#จะเห็นรายชื่อบน AD
  1. getent group
#จะเห็น group บน AD

- แก้ squid.conf
  1. nano /etc/squid/squid.conf

copy config บางส่วนที่ใช้ block มา จากเครื่องเดิม

แก้ squid บางส่วน
  1. acl localnet src 192.168.0.0/24 192.168.100.0/24
  2. http_access allow localnet
  3. http_port 8080
  4.  


ส่วนของ Authentication แก้เป็นดังนี้ ส่วนที่ต่างจาก Version เก่า คือสีแดง
  1. auth_param basic program /usr/lib/squid3/basic_ldap_auth -R -b "dc=sci,dc=com" -D "cn=ldap-user,cn=Users,dc=sci,dc=com" -w "password" -f "sAMAccountName=%s" -h 192.168.0.254
  2.     auth_param basic children 5
  3.     auth_param basic realm Squid proxy-caching web server
  4.     auth_param basic credentialsttl 5 minutes


  1. external_acl_type InetGroup %LOGIN /usr/lib/squid3/ext_wbinfo_group_acl
  2. acl InetAccess external InetGroup InetAllow
  3. http_access allow InetAccess

  1. acl webblocked url_regex '/etc/squid/webblocked.txt'
  2. acl day_am time 08:00-12:00
  3. acl day_pm time 13:00-17:40
  4. http_access deny webblocked day_am
  5. http_access deny webblocked day_pm


- copy พวกไฟล์ webblocked.txt จากเครื่องเดิมมา

- restart service
  1. /etc/init.d/squid restart


- test Authen ว่าผ่านหรือไม่
  1. echo "suwit_j InetAllow" | /usr/lib/squid/ext_wbinfo_group_acl -d

ต้องได้ผลลัพท์แบบนี้
Debugging mode ON.
Got suwit_j InetAllow from squid
User: -suwit_j-
Group: -InetAllow-
SID: -S-1-5-21-2702268678-3437982827-1986072043-3107-
GID: -10019-
Sending OK to squid
OK


- Test Set proxy on browser.

นำ Cache จากเครื่องเดิมมาใช้งานต่อ
- snap เครื่องเดิม เพื่อเอา disk cache ไปใส่เครื่องใหม่
- download file vmdk
จะได้ไฟล์ 2 ไฟล์ .vmdk และ flat.vmdk
- upload ขึ้น folder ที่ต้องการ
- add disk ใส่ VMware
- ดู disk dev อะไร
  1. fdisk -l

- สร้าง folder สำหรับ mount disk cache
  1. mkdir /cache

- mount disk ใส่ /cache
  1. mount /dev/sdb1 /cache

- mount auto
  1. nano /etc/fstab
  1. /dev/sdb1 /cache reiserfs notail,noatime 1 2


- แก้ squid.conf
  1. nano /etc/squid/squid.conf

เพิ่ม
  1. cache_dir ufs /cache 10240 32 512
  2. cache_mem 64 MB
  3.  
  4. #cache_effective_user proxy
  5. #cache_effective_group proxy
  6.  
  7. maximum_object_size 64 MB
  8. maximum_object_size_in_memory 64 KB
  9.  
  10. memory_replacement_policy heap LFUDA
  11. cache_replacement_policy heap LFUDA


-restar service
  1. /etc/init.d/squid restart


- gen reports แล้วดู lightsquid ที่มี hit ว่ามีการใช้งานหรือไม่ถ้ามี แสดงว่าใช้งานจาก cache
  1. /usr/local/lightsquid/lightparser.pl

1/18/2017

Ubuntu : Ubuntu Backup To External Box.

Ubuntu : Ubuntu Backup To External Box.
1. สร้าง Folder สำหรับ mount box ใส่
  1. mkdir /mnt/USB


2. ต่อ USB External Box. แล้วดู ว่าได้ dev ที่เท่าไหร่ เช่น /dev/sda1, /dev/sda2 ,/dev/sdc1 ......
  1. fdisk -l


3. ใช้คำสั่ง Mount External Box ใส่ Folder ที่สร้างขึ้น เพื่อใช้งาน sdc1 ขึ้นอยู่กับ dev ที่ได้ในข้อ 2.
  1. mount -t ntfs-3g /dev/sdc1 /mnt/USB


4. แก้ไข้ Code ที่ใช้ Backup ใส dev ที่ได้จากข้อ 2.
  1. nano /DATA/backup-full.sh

  1. ###### Edit dev when dev dive change #######
  2. mount -t ntfs-3g /dev/sdc1 /mnt/USB


5. จะถอด External Box ต้องใช้คำสั่ง ก่อนถอด External Box
  1. umount /mnt/USB

1/11/2017

Scanner : Scanner Brother ADS-1100w FTP Function To Ubuntu

Scanner : Scanner Brother ADS-1100w FTP Function To Ubuntu
1. ติดตั้ง FTP ที่ Ubuntu Server ในที่นี้ใช้ Dataserver ซึ่งมีการใช้งาน Kerberos เพื่อดึงชื่อจาก AD จึ่งไม่สามารถสร้าง User และ เปลี่ยนรหัสผ่าน ได้ จึงต้องใช้ User จาก AD เพื่อใช้เป็น User สำหรับ FTP เลย
แต่ถ้า ไม่มีการใช้งาน Samba สามารถสร้าง User FTP เองได้เลย ตามนี้
http://porpramarn.blogspot.com/2016/06/ubuntu-ftp.html

(Dataserver)
รหัสผ่าน และ User ใช้จาก AD ได้เลย
2. add user สร้าง home และ chown
  1. sudo useradd -d /home/user1 user1
  2. sudo mkdir /home/user1
  3. sudo chown user1 /home/user1


3. สร้าง Folder SCAN ไว้ใน home/user
  1. sudo mkdir /home/user1/SCAN


4. เปลี่ยนสิทธิ์ Folder SCAN ให้เป็น 770 และกำหนดสิทธิ์ให้กับ Group ที่ต้องการให้เข้าและแก้ไขได้ และ Set ให้ไฟล์ข้างในได้สิทธิ์ตาม Folder หลัก
  1. chmod 770 /home/user1/SCAN
  2. chgrp -R if /home/user1/SCAN/
  3. chmod g+s SCAN/

มีปัญหา สิทธิ์ที่ไฟล์ PDF ที่ FTP มา ทำให้ User อื่น เปิดลบ ไม่ได้ แก้โดย
  1. cd /home/user1/SCAN/
  2. nano .cronChmod.sh
  3. chmod 777 .cronChmod.sh

ใส่ Code ให้ Run chmod ทุก ๆ 5 วินาที
  1. #!/bin/bash
  2. while true
  3. do
  4.  chmod 770 /home/suwit_j/SCAN/*.pdf
  5.  sleep 5
  6. done


ใช้ nohup ให้ Run เป็น Background คำสั่ง nohup http://linux.101hacks.com/unix/nohup-command/
  1. nohup /home/suwit_j/SCAN/.cronChmod.sh &


ใช้คำสั่ง ดูว่ามีการทำงานอยู่หรือไม่
  1. ps aus 
หยุดการทำงานด้วยการ kill proces
  1. kill -9 29187

5. shared folder เพื่อให้ User ใน IF เข้ามาเอาไฟล์ และลบได้ทิ้งได้
  1. nano /etc/samba/smb.conf

เพิ่ม Code
  1. [SCAN]
  2. comment = Folder SCAN FTP
  3. writeable = yes
  4. path = /home/suwit_j/SCAN
  5. delete readonly = yes
  6. force create mode = 770
  7. force directory mode = 770
  8. directory mode = 770
  9. create mode = 770


6. restart samba
  1. /etc/init.d/samba restart


7. เข้า IP ของเครื่อง Brother ADS-1100W (.33)
เข้าไปที่ Scan to FTP Profile -- > Profile 1

8. สร้าง Profile ตามที่ต้องการ โดย Username ใส่ ตามที่เราสร้างใน ข้อ 2.
ใส่ Directory ตามที่เราสร้างในข้อ 3. แล้วกด Submit

9. กด Yes เพื่อ Test FTP
10. ถ้า Test ผ่าน จะมีข้อความว่า Test OK ถ้าไม่ผ่านจะมี Error สีแดงแก้ไขตามที่ Error
11. ไปที่ Menu Scan to Network Device เลือก Type เป็น Scan To FTP และ Destination เป็นชื่อ Profile ที่เราสร้างขึ้น แล้วกด submit

12. ที่เครื่องจะมีไฟรูปคอม1 ขึ้น ทดลอง Scan และทดลองเข้าไปเอาไฟล์ ผ่าน Server ทดลองสิทธิ์ในการเข้าถึง
ตามที่กำหนดไว้ในข้อ 4.


** หรือจะใช้วิธีใหม่ แบบไม่ต้องเช็ค Run ทุก 5 วินาที ในไฟล์ batch **
แก้ไขใหม่ ใช้ setfacl ที่ Folder เพื่อให้ไฟล์ภายในได้ตามสิทธิ์ที่ Folder สร้างขึ้น
และสร้าง User ใหม่ ที่ AD ads1100w
setfacl -m g:if:rwx /home/ads1100w/SCAN
setfacl -d -m g:if:rwx /home/ads1100w/SCAN
chomod g+s /home/ads1100w/SCAN

ยกเลิกการ Run batch เช็คเวลา


1/10/2017

VMware : ติดตั้ง VMware Tools แบบ CLI

VMware : ติดตั้ง VMware Tools แบบ CLI
Ubuntu Server with only a command line interface
1.Go to Virtual Machine > Install VMware Tools (or VM > Install VMware Tools).
Note: If you are running the light version of Fusion, or a version of Workstation without VMware Tools, or VMware Player, you are prompted to download the Tools before they can be installed. Click Download Now to begin the download.

2.In the Ubuntu guest, run these commands:
Create a directory to mount the CD-ROM by running the command:

  1. sudo mkdir /mnt/cdrom

When prompted for a password, enter your Ubuntu admin user password.
Note: For security reasons, the typed password is not displayed. You do not need to enter your password again for the next five minutes.

Mount the CD-ROM by running the command:
  1. sudo mount /dev/cdrom /mnt/cdrom or sudo mount /dev/sr0 /mnt/cdrom


The file name of the VMware Tools bundle varies depending on your version of the VMware product. Run this command to find the exact name:
  1. ls /mnt/cdrom

Extract the contents of the VMware Tools bundle by running the command:
  1. tar xzvf /mnt/cdrom/VMwareTools-x.x.x-xxxx.tar.gz -C /tmp/


Note: x.x.x-xxxx is the version discovered in the previous step.

Change directories into the VMware Tools distribution by running the command:
  1. cd /tmp/vmware-tools-distrib/


Install VMware Tools by running the command:
  1. sudo ./vmware-install.pl -d

Note: The -d switch assumes that you want to accept the defaults. If you do not use -d, press Return to accept each default or supply your own answers.

Run this command to reboot the virtual machine after the installation completes:
  1. sudo reboot


http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1022525