Chủ Nhật, 1 tháng 11, 2020

Ý Tưởng: 

    Tạo ra một trợ lý ảo có thể giao tiếp được với con người bằng những câu hỏi -  trả lời đã được lên kịch bản sẵn; Đó là bước đầu để tạo ra một AI Trợ Lý Ảo riêng cho mình.

Yêu Cầu:

  • Cài đặt môi trường cũng như sử dụng Python3
  • Máy tính có Microphone và Speaker

Trợ lý ảo đơn giản với Python

Diagram:

Diagram Trợ Lý Ảo Đơn Giản Với Python

Thực Hiện:
    Phân tích việc tạo ra một Robot có thể giao tiếp đơn giản với mình ta có thể mỗ xẻ nó được theo những phần như sau:

A. Nghe - Xử lý ngôn ngữ tự nhiên - Natural Language Processing 



  
 Nghe là việc máy tính sẽ nghe âm thanh và chuyển nó về dạng text; từ text ta mới có data để tiếp tục quá trình xử lý

    Có thể dụng thư viện SpeechRecognition 3.8.1 (tham khảo thêm: )bằng cách cài đặt thêm gói bằng cách chạy lệnh sau trong chương trình CMD với Windows và Terminal với những hệ đều hành khác:

pip install SpeechRecognition

    Tiếp theo đó là code giúp ta chuyển được từ âm thanh sang text

import speech_recognition

robot_ear = speech_recognition.Recognizer() # khởi tạo biến cho robot có thể nghe
with speech_recognition.Microphone() as mic: #việc dùng with sẽ có tác dụng bật mic lên cho nói xong rồi sẽ tự động tắt mic
print("Robot: I'm listening..")
audio = robot_ear.listen(mic) # âm thanh sẽ được nghe bởi robot thông qua microphone
print("Robot: ... ")

try:
content = robot_ear.recognize_google(audio) # nội dung có được là bởi robot nghe được cái âm thanh được lấy từ trên
except:
content=""
print("You:" + content)

B. Xử Lý - với While - If - Elif - Else - Đưa Ra Dữ Liệu Mong Muốn

from datetime import date, datetime

robot_brain = "" #não robot ban đầu sẽ rỗng chẳng có gì

if content in "":
robot_brain = "I can't hear you, try again..." # nếu không có nói gì thì sẽ in câu này
elif "hello" in content:
robot_brain = "Hello Sang" # nếu trong câu nói của bạn có bắt được chữ hello thì sẽ ra vầy
elif "today" in content:
today = date.today()
robot_brain = today.strftime("%B %d, %Y") # nếu câu nói của bạn có today thì sẽ trả về thời gian hiện tại
elif "time" in content:
now = datetime.today()
robot_brain = now.strftime("%H hours %M minutes %S seconds") # nếu câu nói của bạn có time thì sẽ trả về giờ phút giây hiện tại
elif "bye" in content:
robot_brain = "Bye Sang" # khi gặp bye thì robot sẽ hiểu bạn muốn dừng..
print("Robot: "+robot_brain) #line1
robot_mouth.say(robot_brain) #line2
robot_mouth.runAndWait() #line3
break # lệnh break sẽ thoát khỏi vòng lặp đồng nghĩa dừng chương trình luôn.. không xử lý khúc sau nữa;
# nên phải chèn line1;line2;line3 lên trước break, cho robot chào tạm biệt rồi mới thoát chương trình
else:
robot_brain = "Yes, Good..."

C. Nói -  Biến đổi text thành giọng nói - Text to Speech

    Có thể dụng thư viện pyttsx3 2.90 (tham khảo thêm: )bằng cách cài đặt thêm gói bằng cách chạy lệnh sau trong chương trình CMD với Windows và Terminal với những hệ đều hành khác:

pip install pyttsx3

import pyttsx3

robot_mouth = pyttsx3.init() # khởi tạo biến cho robot có thể nói

print("Robot: "+robot_brain)
robot_mouth.say(robot_brain) # robot nhận được cái cần nói
robot_mouth.runAndWait() # robot sẽ nói

D. Code Tổng Thể - Chạy Chương Trình

     Việc muốn chương trình chạy liên tục được đến khi ta muốn nó tắt bởi lệnh mong muốn vd: "bye" thì ta dùng thêm cấu trúc while True: và break để dừng...
Tổng hợp code ta được như sau:
import pyttsx3
import speech_recognition
from datetime import date, datetime

robot_ear = speech_recognition.Recognizer() # khởi tạo biến cho robot có thể nghe
robot_mouth = pyttsx3.init() # khởi tạo biến cho robot có thể nói
robot_brain = "" #não robot ban đầu sẽ rỗng chẳng có gì

while True: #chương trình sẽ chạy đến khi break mới dừng
with speech_recognition.Microphone() as mic: #việc dùng with sẽ có tác dụng bật mic lên cho nói xong rồi sẽ tự động tắt mic
print("Robot: I'm listening..")
audio = robot_ear.listen(mic) # âm thanh sẽ được nghe bởi robot thông qua microphone
print("Robot: ... ")

try:
content = robot_ear.recognize_google(audio) # nội dung có được là bởi robot nghe được cái âm thanh được lấy từ trên
except:
content=""
print("You:" + content)

if content in "":
robot_brain = "I can't hear you, try again..." # nếu không có nói gì thì sẽ in câu này
elif "hello" in content:
robot_brain = "Hello Sang" # nếu trong câu nói của bạn có bắt được chữ hello thì sẽ ra vầy
elif "today" in content:
today = date.today()
robot_brain = today.strftime("%B %d, %Y") # nếu câu nói của bạn có today thì sẽ trả về thời gian hiện tại
elif "time" in content:
now = datetime.today()
robot_brain = now.strftime("%H hours %M minutes %S seconds") # nếu câu nói của bạn có time thì sẽ trả về giờ phút giây hiện tại
elif "bye" in content:
robot_brain = "Bye Sang" # khi gặp bye thì robot sẽ hiểu bạn muốn dừng..
print("Robot: "+robot_brain) #line1
robot_mouth.say(robot_brain) #line2
robot_mouth.runAndWait() #line3
break # lệnh break sẽ thoát khỏi vòng lặp đồng nghĩa dừng chương trình luôn.. không xử lý khúc sau nữa;
# nên phải chèn line1;line2;line3 lên trước break, cho robot chào tạm biệt rồi mới thoát chương trình
else:
robot_brain = "Yes, Good..."

print("Robot: "+robot_brain)
robot_mouth.say(robot_brain) # robot nhận được cái cần nói
robot_mouth.runAndWait() # robot sẽ nói


Hoặc bạn có thể download source code của chương trình tại đây: 

E. Những Lỗi Hay Gặp Phải

1. Module Not Found Error : No module named 'speech_recognition'

Module Not Found Error : No module named 'speech_recognition'
    Đây là lỗi thiếu thư viện bên ngoài mà ta chưa cài đặt, cần cài thêm để có thể hoạt động
Ta cài thêm như sau:
cài đặt gói pip install 

2. Đối với máy Windows ta cần cài thêm hai gói liên quan đến âm thanh:

pip install pipwin
pipwin install pyaudio

3. OSError: No Default Input Device Available

    Lỗi khi không xác định được thiết bị, đây là Microphone
OSError: No Default Input Device Available

    Tùy vào từng thời điểm và thực tế sẽ có những lỗi cũng như sự thay đổi; ta cứ dùng cấu trúc lỗi gõ trên tìm kiếm google search sẽ có nhé.

==================================================================================

Chủ Nhật, 25 tháng 10, 2020

 Yêu Cầu:

  • Đã cài đặt môi trường Python và hoạt động tốt
  • Đã có tài khoản gmail cá nhân ( cho phép ứng dụng không tin tưởng)

Ý Tưởng: Việc tự động gửi email bằng code thông qua gmail sẽ giúp hỗ trợ nhiều việc như report, thông báo tự động khi có sự cố....

Gửi email với gmail và python

Thực Hiện:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

#---------------------VIẾT HÀM SEND_MAIL-------------------#
def Send_Mail(sender_email,password_sender,subject_email,text_email,rec_email):
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = rec_email
msg['Subject'] = subject_email
msg.attach(MIMEText(text_email, 'plain'))
text=msg.as_string()

server = smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login(sender_email,password_sender)
server.sendmail(sender_email, rec_email, text)
server.quit()
#------------------KẾT THÚC HÀM SEND_MAIL-------------#

#tùy vào dữ kiện ta muốn gửi sẽ sinh ra content cho email
content = "Nguyễn Hoàng Sang"

#gọi hàm Send_Email và truyền các tham số vào --> Send Mail
Send_Mail("[nhập gmail từ người gửi]","[nhập password gmail từ người gửi]","THIS IS EMAIL TO CHECK SEND BY PYTHON",content,"[nhập email sẽ nhận]")

================================================================================== 


Chủ Nhật, 18 tháng 10, 2020

Yêu Cầu:

  • Đã được cài đặt và thực hiện được file python trước đó
  • Sử dụng Project củ với "Game Mini Random" >>>tại đây<<<

Ý Tưởng:

     Do Python là ngôn ngữ thông dịch (interpretation) nên việc muốn chạy một file python ta cần phải thiết lập môi trường và những cấu hình khá rắc rối, việc convert được một file từ python sang exe sẽ là đều thuận lợi, exe có thể chạy độc lập trên hệ đều hành windows..

Thực Hiện:

A. Cài Đặt PyInstaller

     Ta sử dụng Command Prompt (nên chạy với quyền Administrator) và thực hiện với cú pháp

pip install pyinstaller

     và đợi cho việc download cũng như cài đặt thành công.

Series Python for Live - 03 - Convert py to exe run alone with PyInstaller
Cài đặt PyInstaller bằng Command Prompt trong Windows


B. Thực Hiện Convert File Py Thành EXE

     Đầu tiên ta phải di chuyển đến thư mục đang được chứa project python với:

cd "Đường Dẫn"

     Tiếp theo sử dụng cú pháp như sau:

pyinstaller -F --hidden-import "babel.numbers" XXX.py

     với XXX là tên chương trình python vd: game.py

Series Python for Live - 03 - Convert py to exe run alone with PyInstaller
Thực hiện covert file python thành exe

     Sau quá trình convert ta thấy được dòng Completed Successfully là ta đã hoàn thành

C. Kết Quả

     Việc còn lại chúng ta sẽ truy cập vào thư mục Dist trong Project Python ban đầu và ta sẽ thấy file exe

Series Python for Live - 03 - Convert py to exe run alone with PyInstaller
Convert hoàn thành file python thành exe


==================================================================================


Thứ Tư, 14 tháng 10, 2020

Giới Thiệu:

giới thiệu ngắn gọn về FTP, lợi ích

Yêu Cầu:

Diagram:

Thực Hiện:

A. CÀI ĐẶT FTP SERVER VÀ CẤU HÌNH BAN ĐẦU

1. Cài Đặt FTP Server

cài đặt về các roles, feature...

tạo 1 group bên AD để sử dụng

tạo dns trên DC để truy cập

2. Cấu Hình FTP Server Sau Khi Cài Đặt - Đổi Port Mặc Định

vào iis tạo FTP, với tài khoản ở bước trên với quyền R,W, port thay đổi so với mặc định

cấu hình isolate: chọn dòng Username directory để cho việc..nếu tài khoản cùng với thư mục vật lý thì sẽ chuyển vào và có quyền thực hiện trên thư mục đó... ngược lại những tài khoảng không có cùng tên thư mục thì sẽ thấy được tất cả thư mục nhưng chỉ thao tác được trên thư mục mình được quyền

3. Mở Port Cho Firewall Trên Windows

truy cập vào windows firewall; tạo inbound và outbound allow cho port mà ta đã cấu hình ở trên

B. CẤU HÌNH TRONG LÚC SỬ DỤNG

1. Cấp Tài Khoản Cho Người Sử Dụng

User phải có tài khoản trong AD

Tài khoản phải thuộc cái group đã tạo trong AD ở bước A.1 (FTPGroup)

Tạo 1 folder trong FTProot->localusers->folder cùng tên alias tài khoản 

Phải xác định được User có quyền và hoạt động Folder thế nào.. mà phân quyền

2. Tạo Folder Và Phân Quyền Theo Quyền Hạn Của Tài Khoản

phân quyền security cho folder đó được sử dụng bởi ai và thế nào
lưu ý: quyền wirte tức là được ghi.. được xóa..nhưng chỉ xóa nhưng cái do chính bản thân tạo ra...
còn thêm quyền modify sẽ xóa luôn được những folder file cùng cấp do người khác tạo

C. NAT PORT TRÊN FIREWALL ĐỂ SỬ DỤNG TỪ BÊN NGOÀI

Cấu Hình Trên Thiết Bị Firewall: NAT port bình thường với port là FTP đã được đổi


Chủ Nhật, 11 tháng 10, 2020

 Mục Đích: 

  • Hiểu và luyện tập về vòng lặp for trong Python
  • Hàm random trong Python

Ý Tưởng:
     Thực hiện một game mini nhỏ với yêu cầu sẽ xuất ra số random từ khoảng dãy số cho trước, và tính tổng của mỗi người đạt được theo tổng lượt chơi

Minh Họa:
Series Python for Live - 02 - Game Mini Random By Python
Minh họa Game Mini Radom bằng Python đơn giản

Code Thự Hiện:
import random
import time


print("*"*20,"MINI GAME RANDOM","*"*20)
print()

songuoi = int(input("Nhập vào số người chơi:"))
soluot = int(input("Nhập vào số lượt muốn chơi:"))
print("*"*10,"Thông Tin Cấu Hình","*"*10)

tuso = int(input("Nhập vào số bắt đầu trong dãy:"))
denso = int(input("Nhập vào số kết thúc trong dãy:"))

if(tuso==denso):
print("Không Thể Bắt Đầu Và Kết Thúc Cùng Một Số")
time.sleep(5)
exit()
elif(tuso>denso):
print("Không Thể Bắt Đầu Lớn Hơn")
time.sleep(5)
print()

tong = 0
for x in range(0,songuoi):
for i in range(0,soluot):
so=random.randrange(tuso, denso, 1)
print("{0:>2}".format(so) ,end="\t")
tong += so
time.sleep(5)
print("Tổng:","{0:>3}".format(tong), "Của Người Thứ ",x+1)
tong=0
print()

input()

==================================================================================

Chủ Nhật, 4 tháng 10, 2020

Yêu Cầu:

  • Hướng dẫn và sử dùng trên hệ đều hành Windows + Web Browser Chrome
  • Cài đặt Python3 + Chương trình Code (VSCode) --- (tham khảo >>>tại đây<<<)
  • Cài đặt Selenium --- (tham khảo >>>tại đây<<<)

Ý Tưởng:
Mỗi video trên youtube sẽ có một ID riêng, với thường sẽ có url dạng như sau "https://www.youtube.com/watch?v=7VaYiHadnPc" .. bằng thủ công hoặc công cụ chúng ta hãy lấy tất cả những ID mà chúng ta muốn tăng view, sau đó chuyển chúng vào cùng 1file videolist.txt với mỗi dòng là 1 cứu pháp và ID như lúc nãy...
  • Sau khi đã có file videolist.txt chứa danh sách ID video, ta viết 1 chương trình với ngôn ngữ python với ý tưởng như sau:
  • chrome sẽ mở từng tab và chạy ID video youtube được lấy từ từng dòng trong file videolist.txt, chúng ta có thể chạy 4 hoặc 5 hay nhiều hơn số tab và sau mỗi thời gian chúng ta quy định...
  • tiếp theo sau khoản thời gian chúng ta mong muốn vd là 1 phút thì quay lại tab đầu tiên và đổi nó thành video khác.. và tiếp tục cho những tab còn lại...
Digram:


Thực Hiện:

1. Mở File VideoList.txt Và Lấy Thông Tin

import time
from selenium import webdriver

#txt chứa đường link video youtube
VideoFileName = "videolist.txt"
ViewCountFileName = "videolog.txt"

#selector id nút playvideo trên youtube
btnSelector = "#movie_player > div.ytp-cued-thumbnail-overlay > button"

#mở file videolist và lấy đường link từ nội dung trong file
videofile = open(VideoFileName)
listvideo = videofile.readlines()

2. Khởi Chạy Video

videoIndex = 0
tabIndex = 0
tabCount = 1
viewCount = 0

#khai báo biến số tab để sau này tiện thay đổi
NUMBER_OF_TAB = 4
NUMBER_OF_VIDEO = len(listvideo)
LOOP_TIME = 15

#khởi chạy video lên
browser = webdriver.Chrome()
browser.get(listvideo[videoIndex])

#tìm tới cái selector play video
time.sleep(5)
playbutton = browser.find_element_by_css_selector(btnSelector)

#tìm được rồi thì play cái video bằng cách click vào nó
playbutton.click()

'''
Đến đây là ta có thể chạy chương trình với lấy 1 ID đầu tiên của file và chạy thành công...
.
.
còn nhiều hơn tiếp tục thêm phần bên dưới nhé
'''

3. Tạo Vòng Lặp Và Những Cấu Hình Cân Chỉnh Cho Hoàn Chỉnh

#tạo vòng lặp đến khi nào ta tắt thì chương trình mới dừng
while True:
videoIndex = (videoIndex +1) % NUMBER_OF_VIDEO
tabIndex = (tabIndex +1) % NUMBER_OF_TAB

if(tabCount < NUMBER_OF_TAB):
tabCount+=1
browser.execute_script("window.open('"+listvideo[videoIndex].strip()+"')")
else:
browser.switch_to_window(browser.window_handles[tabIndex]) #chuyển về tab củ đã mở
time.sleep(5) # ngưng 5s rồi chạy video
browser.get(listvideo[videoIndex]) # chạy video

#ghi ra file log đã chạy được bao nhiêu vòng lặp
viewCount +=1
saveFile = open(ViewCountFileName,"w")
saveFile.write(str(viewCount))
saveFile.close()

#sau thời gian LOOP_TIME thì sẽ quay về vòng lặp
time.sleep(LOOP_TIME)

Code Hoàn Chỉnh:

import time
from selenium import webdriver

#txt chứa đường link video youtube
VideoFileName = "videolist.txt"
ViewCountFileName = "videolog.txt"

#selector id nút playvideo trên youtube
btnSelector = "#movie_player > div.ytp-cued-thumbnail-overlay > button"

#mở file videolist và lấy đường link từ nội dung trong file
videofile = open(VideoFileName)
listvideo = videofile.readlines()

videoIndex = 0
tabIndex = 0
tabCount = 1
viewCount = 0

#khai báo biến số tab để sau này tiện thay đổi
NUMBER_OF_TAB = 4
NUMBER_OF_VIDEO = len(listvideo)
LOOP_TIME = 15

#khởi chạy video lên
browser = webdriver.Chrome()
browser.get(listvideo[videoIndex])

#tìm tới cái selector play video
time.sleep(5)
playbutton = browser.find_element_by_css_selector(btnSelector)

#tìm được rồi thì play cái video bằng cách click vào nó
playbutton.click()

'''
Đến đây là ta có thể chạy chương trình với lấy 1 ID đầu tiên của file và chạy thành công...
.
.
còn nhiều hơn tiếp tục thêm phần bên dưới nhé
'''


#tạo vòng lặp đến khi nào ta tắt thì chương trình mới dừng
while True:
videoIndex = (videoIndex +1) % NUMBER_OF_VIDEO
tabIndex = (tabIndex +1) % NUMBER_OF_TAB

if(tabCount < NUMBER_OF_TAB):
tabCount+=1
browser.execute_script("window.open('"+listvideo[videoIndex].strip()+"')")
else:
browser.switch_to_window(browser.window_handles[tabIndex]) #chuyển về tab củ đã mở
time.sleep(5) # ngưng 5s rồi chạy video
browser.get(listvideo[videoIndex]) # chạy video

#ghi ra file log đã chạy được bao nhiêu vòng lặp
viewCount +=1
saveFile = open(ViewCountFileName,"w")
saveFile.write(str(viewCount))
saveFile.close()

#sau thời gian LOOP_TIME thì sẽ quay về vòng lặp
time.sleep(LOOP_TIME)



Bạn có thể download trọn bộ file code tại đây 

==================================================================================

Ý Tưởng: 

  • Tạo USB Boot có thể cài đặt được nhiều hệ điều hành khác nhau như Windows, Lunix, Unix hay thậm chí là VMware ESXi...; 
  • Miễn phí, dễ cài đặt và nhanh chống...

Chuẩn Bị: 

  • Truy cập tại  để lấy công cụ Ventoy
  • Chuẩn bị IOS của hệ điều hành ( tùy vào HDH chúng ta cần mà lên trang chủ download về)
  • USB ( càng nhiều dung lượng ta có thể chứa nhiều file ios)

Tạo USB Boot Nhiều Hệ Điều Hành Chỉ 3 Giây - How To Create USB Boot Multi OS only 3 seconds
Ventoy Boot USB với nhiều hệ điều hành

Thực Hiện:

Tạo USB Boot Nhiều Hệ Điều Hành Chỉ 3 Giây - How To Create USB Boot Multi OS only 3 seconds
Những hệ điều hành được Ventoy hỗ trợ


1. Download công cụ Ventoy

    Truy cập vào đường link  ... lựa chọn phiên bản mới nhất và hệ điều hành phù hợp (hệ điều hành ở đây là máy hiện tại chúng ta đang sử dụng)

Tạo USB Boot Nhiều Hệ Điều Hành Chỉ 3 Giây - How To Create USB Boot Multi OS only 3 seconds
Download tool tạo USB Boot nhiều hệ điều hành

2. Tạo môi trường trên USB

    Sau khi Download chương trình, ta giải nén và thực hiện chạy
"Ventoy2Disk.exe"
Chương trình xuất hiện ta chỉ cần làm theo hình - lựa chọn
Device (USB)
và nhấn
Install
(Lưu ý: những dữ liệu trong USB sẽ mất hết nhé)
Tạo USB Boot Nhiều Hệ Điều Hành Chỉ 3 Giây - How To Create USB Boot Multi OS only 3 seconds
Cài đặt môi trường trên USB Boot nhiều hệ điều hành

3. Hoàn Thành 

  • Chép file IOS HDH vào USB
  • Khởi chạy trên máy tính (Chế độ Boot từ USB)
Tạo USB Boot Nhiều Hệ Điều Hành Chỉ 3 Giây - How To Create USB Boot Multi OS only 3 seconds
USB Boot được nhiều hệ điều hành 

=========================================== Good Luck==========================================


Thứ Hai, 21 tháng 9, 2020


Write Protection, đúng như tên gọi của nó, ngăn bất kỳ hệ thống nào thêm dữ liệu mới vào ổ. 

Sau khi kiểm tra điều này, bạn cũng nên gỡ bỏ tính năng chống ghi phần mềm trên ổ. Để thực hiện việc này, hãy nhấn 
Win+R
để mở hộp thoại Run và nhập 
diskpart. 
Xác nhận lời nhắc UAC nếu xuất hiện, sau đó bạn sẽ thấy giao diện Command Prompt.

Tại đây, nhập 
list disk 
và nhấn Enter. Bạn sẽ thấy danh sách các ổ đĩa và có thể xác định ổ di động theo dung lượng. Nhập: 
select disk X 
(với X là số ### thể hiện) để thực hiện các thay đổi đối với thiết bị phù hợp.

Khi bạn thấy xác nhận đã chọn đúng ổ đĩa, hãy nhập
attributes disk
để xem thông tin về nó. Nếu bạn thấy Yes bên cạnh Current Read-only State, thì ổ đang được kích hoạt Write Protection.
Nếu bạn thấy Yes bên cạnh Current Read-only State, thì ổ đang được kích hoạt Write Protection
Nếu bạn thấy Yes bên cạnh Current Read-only State, thì ổ đang được kích hoạt Write Protection

Để loại bỏ tính năng này, hãy nhập 
attributes disk clear readonly 
Windows sau đó hiển thị thông báo rằng các thuộc tính đã được xóa thành công. Nhập lệnh
exit
để thoát khỏi cửa sổ.

Bây giờ không còn Write Protection nữa, hãy thử format lại ổ là dùng được


==================================================================================

Chủ Nhật, 20 tháng 9, 2020


Chúng ta sẽ tìm hiểu một số phương thức điều khiển từ xa tới CentOS

1. SSH

Sử dụng những lệnh sau đây để enable tính năng SSH để truy cập đến CentOS từ xa:

su
sudo yum install -y openssh-server;
sudo systemctl start sshd.service
sudo systemctl enable sshd
Thực hiện các bước lệnh:
nhung-tinh-nang-dieu-khien-tu-windows-toi-centos7-ssh-xrdp--how-to-config-to-remote-from-windows-to-centos7-ssh-xrdp
Bật tính năng SSH để điều khiển từ xa đến CentOS

Xem địa chỉ IP Address bằng lệnh: ifconfig
nhung-tinh-nang-dieu-khien-tu-windows-toi-centos7-ssh-xrdp--how-to-config-to-remote-from-windows-to-centos7-ssh-xrdp
Lệnh ifconfig để xem địa chỉ IP của card mạng trong CentOS
Dùng phần mềm remote tới máy CentOS, bạn có thể dùng bất cứ phần mềm nào có chức năng tương tự, ở đây chúng tôi dùng SecureCRT 8.5 ( bạn có thể tham khảo cách cài đặt SecureCRT 8.5 Full >>> tại đây <<<)
nhung-tinh-nang-dieu-khien-tu-windows-toi-centos7-ssh-xrdp--how-to-config-to-remote-from-windows-to-centos7-ssh-xrdp
Từ Windows dùng phần mềm điều khiển (SecureCRT 8.5) kết nối SSH tới CentOS

Kết quả đạt được sau khi đã kết nối thành công tới CentOS thông qua SSH
nhung-tinh-nang-dieu-khien-tu-windows-toi-centos7-ssh-xrdp--how-to-config-to-remote-from-windows-to-centos7-ssh-xrdp
Ảnh sau khi đã kết nối thành công tới CentOS bằng SSH

2. XRDP

Sử dụng những lệnh sau đây để enable tính năng XRDP Remote desktop từ Windows đến CentOS:

su
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

yum -y install xrdp tigervnc-server
systemctl start xrdp.service
systemctl enable xrdp.service
Thực hiện các lệnh trên:
nhung-tinh-nang-dieu-khien-tu-windows-toi-centos7-ssh-xrdp--how-to-config-to-remote-from-windows-to-centos7-ssh-xrdp
nhung-tinh-nang-dieu-khien-tu-windows-toi-centos7-ssh-xrdp--how-to-config-to-remote-from-windows-to-centos7-ssh-xrdp
Cài đặt XRDP dùng remote từ Windows tới CentOS

Ta phải tắt hoặc cho phép sử dụng XRDP bới firewall trên CentOS:
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload

nhung-tinh-nang-dieu-khien-tu-windows-toi-centos7-ssh-xrdp--how-to-config-to-remote-from-windows-to-centos7-ssh-xrdp
Cấu hình trên firewall của CentOS để có thể sử dụng được XRDP

Sau khi cài đặt hoàn thành ta có thể dùng lệnh sau để kiểm tra trạng thái:
netstat -antup | grep xrdp
nhung-tinh-nang-dieu-khien-tu-windows-toi-centos7-ssh-xrdp--how-to-config-to-remote-from-windows-to-centos7-ssh-xrdp
ảnh thể hiện tcp:3389 đã được chuyển trạng thái sang LISTEN

Kết nối với CentOS thông qua Remote Desktop Connection
nhung-tinh-nang-dieu-khien-tu-windows-toi-centos7-ssh-xrdp--how-to-config-to-remote-from-windows-to-centos7-ssh-xrdp
Dùng Remote Desktop Connect để kết nối tới CentOS




==================================================================================

Chủ Nhật, 30 tháng 8, 2020



          Hôm nay chúng ta sẽ tìm hiểu vài lệnh Command Prompt để kiểm tra những thông tin chi tiết về wlan như: SSID, Authentication, Encryption, MAC... quan trọng hơn bạn có thể biết được SSID nào đủ mạnh với Signal, Receive rate và Transmit rate...


I. LẤY THÔNG TIN SIGNAL BIẾT ĐƯỢC SÓNG WIFI MẠNH YẾU

Bước 1: Ta sử dụng cú phạm lệnh bên dưới vào Command Prompt (cmd)
netsh wlan show network MODE=BSSID
netsh-lay-thong-tin-manh-yeu-song-wifi-trong-windown
lệnh netsh wlan show network MODE=BSSID

Bước 2: Việc của ta bây giờ chỉ là đối chiếu so sánh những thông tin mà ta nhận được từ kết quả:
netsh-lay-thong-tin-manh-yeu-song-wifi-trong-windown
Kết quả danh sách các SSID 


  • SSID (Service Set Identifier) nó là tên chính của mạng cục bộ không dây
  • Network type : cấu trúc hạ tầng mạng
  • Authentication: cách thứ chứng thực mạng
  • Encryption: CCMP (Counter Cipher Mode with Block Chaining Message Authentication Code Protocol)
  • Signal : X%
netsh-lay-thong-tin-manh-yeu-song-wifi-trong-windown
Thông tin tham khảo cho Signal %
     ** TA SO SÁNH SIGNAL GIỮA CÁC SSID:

netsh-lay-thong-tin-manh-yeu-song-wifi-trong-windown
So sánh Signal giữa các SSID lựa chọn Signal có % lớn nhất

KẾT LUẬN: Ta Nên Chọn SSID có Signal cao nhất (xét về độ mạnh yếu sóng) => SSID: USV Staff
II. LẤY THÔNG TIN CHI TIẾT CỔNG

Thực hiện như trên với cú pháp lệnh trong Command Prompt:
netsh wlan show interface

netsh-lay-thong-tin-manh-yeu-song-wifi-trong-windown
Lấy những thông tin quan trong của interface
KẾT LUẬN: ta sẽ lấy được những thông tin quan trong như Receive rate, Transmit rate hay Signal...
III. NHỮNG LỆNH MỞ RỘNG LIÊN QUAN NETSH

================== Còn Tiếp =====================================

Thứ Ba, 11 tháng 8, 2020

Vào một ngày đẹp trời chúng ta phát hiện rằng switch hoặc thiết bị định tuyến router của cisco gặp lỗi… nhưng nó lại không ở mode rommon ... vậy sao ta có thể load lại ios cho nó đây???
Yêu Cầu:
Bài viết được thực hiện trên thiết bị Cisco Switch 2960
Cần có flash ios đúng phiên bản thiết bị hiện tại.
Chương trình code và truyền file đang sử dụng là SecureCRT 8.5 có thể tham khảo tại đây
     
Ta nhận được hiện tượng khi connect vào thiết bị thông qua cổng consol:
set flash for cisco ios 2960 without mode rommon
Ảnh show khi ở mode switch:
Hiện tượng của việc lỗi trong quá trình tự load vào hệ đều hành của Cisco
         Ta tiếp tục show flash xem kết quả; với cú pháp switch: dir flash:


set flash for cisco ios 2960 without mode rommon
Ảnh show flash:
=> chúng  ta đã mất flash của thiết bị.. => ta cần nạp lại chúng…

        Có nhiều cách để nạp lại Flash của thiết bị.. đây là cách có thể sử dụng trong trường hợp này… truyền IOS qua Xmodem

B1: VÌ Ở BAUDRATE 9600 MẶC ĐỊNH SẼ CHẠY RẤT CHẬM TA CHUYỂN SANG 115200 VỚI CÚ PHÁP
switch: set BAUD 115200
B2: TRUYỀN FILE IOS CHO THIẾT BỊ:
Switch: copy xmodem: flash:[filename] 
Vd: ta có file c2960-lanbasek9-mz.122-52.SE.bin là file ios trước đó chúng ta đã backup hoặc từ  nguồn khác…
switch:copy xmodem: flash:c2960-lanbasek9-mz.122-52.SE.bin
Trên màn hình sẽ xuất hiện

Begin the Xmodem or Xmodem-1K transfer now...
CCC

        Bây giờ ta sử dụng chương trình để truyền file ở đây tôi sử dụng SecureCRT 8.5 và tôi khuyến nghị các bạn sử dụng chúng.
 Chọn Menu Tranfer -> Send Xmodem (tùy theo chương trình mà bạn tìm chức năng này) -> chọn tới images -> Send…
        Quá trình truyền file đang diễn biến:

set flash for cisco ios 2960 without mode rommon
quá trình truyền file iso flash cho thiết bị

Khi có thông báo SUCCESSFUL có nghĩa đã hoàn thành bước nạp IOS

B3: HOÀN TẤT
        Sau khi truyền file thành công ta cần set lại Baudrate để có thể sử dụng và không bị lỗi ký tự.

switch: set BAUD 9600
        Sau đó là dùng cú pháp sau để khởi động lại thiết bị
switch: reset

CHÚ Ý: một số trường hợp lỗi hay gặp khi làm

1. Tại bước 2 ta có xuất hiện lỗi như hình: 

ảnh lỗi khi nạp ios flash
Cách Giải Quyết: chạy lệnh switch: flash_init sau đó thực hiện lại các bước.

2. Sau Bước 2 hoàn tất… ta nên switch: dir flash: xem kết quả ra sao.. và lưu ý chỉ nên giữ 1 bản flash, cái nào sai nên xóa bỏ.. xóa flash ta dùng cú pháp: switch: delete flash:[ten_flash]

3. Sau Bước 3 ta khởi động lại thiết bị… nhưng thiết bị cứ khởi động lại liên tục lặp lại; nhìn kỹ sẽ có dòng báo error not support firmware… => Cách giải quyết ta chọn 1 ios flash khác…



==================================================================================

 
background image