Thông tin file mới nhất được sửa đổi là bao giờ

Hệ thống của mình cập nhật thông tin vào một file khi có sự kiện xảy ra. Nếu hệ thống gặp trục trặc sẽ không cập nhật thông tin và sẽ gây lỗi hệ thống sau đó. Thỉnh thoảng sẽ bị lỗi như vậy mà không rõ nguyên nhân.
Mình đành viết một đoạn Script chạy 15 phút 1 lần kiểm tra xem thời gian cuối cùng nó được sửa và gửi email cho mình. Nếu vài lần liên tiếp mà file không được cập nhật thông tin thì khả năng có chuyện xảy ra và cần vào server để kiểm tra.

 import os
 from subprocess import Popen, PIPE
 import smtplib
 import sys
 from datetime import datetime, timedelta
 import os.path, time
 now = datetime.now()
 yesterday=datetime.strftime(datetime.now() - timedelta(1), '%Y%d%m')
 subject = "Last modified file Z:\TRITUE.R.S.sec" + '\n\r'
 msg = "Last modified: " + str(datetime.fromtimestamp(os.path.getmtime("Z:\TRITUE.R.S.sec")))
 msg = "ABC-"+ str(datetime.fromtimestamp(os.lstat('Z:\TRITUE.R.S.sec').st_mtime))
 sender = '[email protected]'
 message = 'From: Mail [email protected] ' + '\n' + 'To: '
 receivers = ['[email protected]','[email protected]']
 receivers = ['[email protected]']
 count = 0
 receipent_list = ''
 for each_receipent in receivers:
     if count < len(receivers) -1:
         receipent_list = receipent_list + each_receipent + ','
     else:
         receipent_list = receipent_list + each_receipent
     count = count + 1
 message = message + receipent_list + '\n'
 message = message + 'Subject: ' + subject + '\n\r'
 message = message + msg + '\n'
 try:
    smtpObj = smtplib.SMTP('mail.trituenhantao.org')
    smtpObj.sendmail(sender, receivers, message)         
    print("Successfully sent email")
 except SMTPException:
    print("Error: unable to send email")

Check và bật ứng dụng exe nếu bị tắt trên Window

Trên server Window của mình có một ứng dụng exe mình viết bằng C# luôn cần phải được bật. Thỉnh thoảng không rõ tại sao nó bị tắt (có thể việc logout chưa đúng cách). Vì chưa có thời gian kiểm tra nguyên nhân sâu xa để fix mà ứng dụng thì vẫn cần phải bật. Mình đành viết một đoạn Script bằng Python để kiểm tra xem nó có chạy hay không? Nếu không chạy thì tiến hành bật nó lên.
Trước đây mình chỉ viết phần gửi email nếu nó bị tắt thôi, nhưng đằng nào cũng phải vào bật nên mình để nó bật luôn nếu bị tắt. Mình dùng Task Schedule để thực thư file bath gọi đoạn lệnh Python.

 import win32ui
 import subprocess
 def WindowExists(classname):
     try:
         win32ui.FindWindow(None,classname)
     except win32ui.error:
         return False
     else:
         return True
 TRITUEdiff
 if WindowExists("TRITUEdiff 1.8.4"):
     print "TRITUEdiff is running, sir."
 else:
     print "TRITUEdiff is not running and start again."
     subprocess.Popen([r"C:\TRITUEdiff.exe"])  
 os.spawn("C:\TRITUEdiff.exe")

Check if directory mounted with Python

Sever Window bên mình luôn cần phải mount một directory tại một server Linux và một directory tại một server Window khác. Nhưng Server Window thỉnh thoảng bị mất mount các thư mục này. Nguyên có thể do đường mạng trục trặc, server chứa thư mục cần mount gặp trục trặc hoặc do việc logout không đúng cách. Việc không mount được gây nên một số job copy file hoặc ghi file bị lỗi nên việc mount cần phải được theo dõi liên tục.

Mình đã viết một đoạn Script Python làm nhiệm vụ check các directory có còn được mount hay không? Nếu không có tức là đã bị mất mount thì mình sẽ gửi email cảnh báo để vào mount lại. Code mình viết bằng Python, server là Window nên mình dùng Task Schedule để thực thư file bath gọi đoạn lệnh Python.

 import os
 from subprocess import Popen, PIPE
 import smtplib
 import sys
 from datetime import datetime, timedelta
 now = datetime.now()
 yesterday=datetime.strftime(datetime.now() - timedelta(1), '%Y%d%m')
 subject = "Check folder remote mount of server" + '\n\r'
 msg = "1"
 if  os.path.exists("Y:")== False or os.path.exists("X:")== False:
     msg = "Forder Y or X not mounted. Please remote server to check."
 sender = '[email protected]'
 message = 'From: Mail1 [email protected] ' + '\n' + 'To: '
 receivers = ['[email protected]','[email protected]']
 receivers = ['[email protected]']
 count = 0
 receipent_list = ''
 for each_receipent in receivers:
     if count < len(receivers) -1:
         receipent_list = receipent_list + each_receipent + ','
     else:
         receipent_list = receipent_list + each_receipent
     count = count + 1
 message = message + receipent_list + '\n'
 message = message + 'Subject: ' + subject + '\n\r'
 message = message + msg + '\n'
 if msg != '1':
     try:
        smtpObj = smtplib.SMTP('mail.trituenhantao.org')
        smtpObj.sendmail(sender, receivers, message)         
        print("Successfully sent email")
     except SMTPException:
        print("Error: unable to send email")

Check file exists on server

Hàng ngày hệ thống backup ra file và sau đó được chuyển sang một ổ SAN backup lại thuộc một dải mạng khác. Job chuyển file này hoạt động tốt nhưng thỉnh thoảng bị lỗi do mạng có trục trặc. Việc check xem file có được gửi sang hay không rất quan trọng để đảm bảo an toàn hệ thống. Trước đây ở công ty cũ toàn check thủ công bằng cách FTP vào ổ SAN để kiểm tra, sang công ty mới mình quyết định viết job kiểm tra việc này.

Job này hàng ngày chạy có nhiệm vụ kiểm tra file sáng sớm nay có được copy thành công sang ổ SAN hay không. Code mình viết trên Python, server là Window nên mình dùng Task Schedule để thực thư file bath gọi đoạn lệnh Python. Dù có hay không nó sẽ gửi email thông báo tới cho mình, việc hàng ngày của mình giờ chỉ là check email và thỉnh thoảng vào kiểm tra xem job chạy có ổn định hay không.

Hiện tại đã có job xóa các file backup cũ cách đây 1 tuần, nhưng nếu có trường hợp đột xuất việc file backup có dung lượng bất thường hoặc ổ cứng đầy (vì 1 lý do nào đó) thì mình vẫn chưa có job cách bảo.

 import os
 from subprocess import Popen, PIPE
 import smtplib
 import sys
 from datetime import datetime, timedelta
 now = datetime.now()
 yesterday=datetime.strftime(datetime.now() - timedelta(1), '%Y%d%m')
 abc="G:\Export_COSREP\cosrep_exp_full"+str(yesterday)+".dmp"
 subject = "Bios server export " + '\n\r'
 msg = "1"
 if os.path.exists(abc) == False:
     msg = "File export is not OK. Not found file: " + abc
 else:
     msg = "File export is OK. Found file: " + abc
 sender = '[email protected]'
 message = 'From: Mail [email protected] ' + '\n' + 'To: '
 receivers = ['[email protected]','[email protected]']
 receivers = ['[email protected]']
 count = 0
 receipent_list = ''
 for each_receipent in receivers:
     if count < len(receivers) -1:
         receipent_list = receipent_list + each_receipent + ','
     else:
         receipent_list = receipent_list + each_receipent
     count = count + 1
 message = message + receipent_list + '\n'
 message = message + 'Subject: ' + subject + '\n\r'
 message = message + msg + '\n'
 try:
    smtpObj = smtplib.SMTP('mail.trituenhantao.org')
    smtpObj.sendmail(sender, receivers, message)         
    print("Successfully sent email")
 except SMTPException:
    print("Error: unable to send email")

Noance open source, Noance sclose, AI, speech recogition

https://www.nuance.com/for-developers.html

https://www.quora.com/What-are-some-open-source-alternatives-to-Nuance-speech-recognition-software

Ngày công nghệ FPT, hội thảo FPT, Smart City

https://techinsight.com.vn/techday2018/

ASEAN 4.0, cách mạng 4.0, Open forum, Smart City, IoT

https://www.weforum.org/events/world-economic-forum-on-asean/sessions/open-forum-asean-4-0-for-all

http://cafef.vn/cau-hoi-can-nao-cua-ban-tre-viet-nam-cho-google-khien-bo-truong-malaysia-bat-cuoi-tan-thuong-20180911115728318.chn