Chỉnh sửa ảnh crawl thành của mình

Trong quá trình làm quen với việc crawl dữ liệu của người khác, từ thực tiễn liên quan mình có một bài toán cần đặt ra với dữ liệu về ảnh.

Có mối liên quan đến ảnh có thể xử lý khi crawl như sau:

  • Crawl đường dẫn ảnh mà thôi, nghĩa là lấy một website lưu về trang của mình nhưng không lấy ảnh đó về. Người dùng khi xem ảnh trên trang clone của mình nhưng bản chất ảnh vẫn ở trang kia. Chẳng may ảnh nó die thì mình không hiển thị được. Tất cả băng thông hoặc mấy thứ khác nó sẽ chịu hết.
  • Crawl cả ảnh về server của mình, coi như đứt đoạn luôn. Thành của mình hết, nó có die thì mình chẳng ảnh hưởng gì.

Khi lấy cả ảnh lưu về server của mình nhưng ảnh đó đã được công cụ tìm kiếm (GOOGLE) đánh index. Liên quan đến bản quyền, xếp rank, chính sách… ta cần phải chỉnh sửa đi. Ta cần làm các thao tác sau:

  • Đổi tên ảnh: Cái này là cái nên làm đầu tiên
  • Đánh dấu nó là của trang mình (ăn cắp còn đánh dấu là của mình) bằng cách hiển thị text lên ảnh. Có thể là nội dung mình thích hoặc viết tên miền của mình lên.
  • Làm một số việc khác như: Chèn logo, lồng khung, thêm icon…
  • Tất nhiên xóa đánh dấu của nó đi nếu được nữa
  • Điều chỉnh lại kích thước của ảnh

Crawl đã tự động thì việc này ta cũng cần làm tự động luôn. Ý tưởng ban đầu nghĩ đến đó là sử dụng thư viện về chỉnh sửa ảnh như Opencv nổi tiếng. Code thì có thể dùng tự do nhưng đầu tiên cứ thử thằng Python cho đơn giản (có thể không đơn giản).

Clone trang web sau vài nốt nhạc

Vừa mới thử nghiệm với Python để crawl data có thể clone một trang web sau một nốt nhạc.

Mình sử dụng Anaconda để code Python, kết nối cơ sở dữ liệu MariaDB.

Các thành phần chính và công việc cần làm như sau:

Môi trường:

  • Ngôn ngữ lập trình Python
  • IDE sử dụng Anaconda
  • Database: MariaDB (tương tự MySQL) – để thử nghiệm cái mới vì nghe đồn MySQL dần dần mất tính nguồn mở
  • Một số thư viện chính: Kết nối giữa python và mysql, beautifulsoup để crawl.

Phương thức làm:

  • Khởi đầu là trang web của website hoặc blog là một link trong CSDL
  • Từ CSDL có link ta lấy toàn bộ link có cùng tên miền trong trang đó và lưu lại vào bảng
  • Lặp lại công việc trên với bảng trong CSDL. Việc lặp này tiệm cận đến việc lấy được toàn bộ trang web của nó (có thể không hết)
  • Từ danh sách các link này (loại bỏ trùng lặp) lần lượt lấy content của trang web và lưu lại vào CSDL của mình.

Tất nhiên nói đơn giản thì đơn giản nhưng sẽ vẫn có một số vấn đề cần phải giải quyết như tốc độ, các truy vấn mà trang đó cho phép…

Mình cũng đã thực hiện được một số thao tác cơ bản nhưng khá quan trọng và nói việc này trong tầm tay.

Backup blog theo cách điên rồ

Hôm vừa mình bước đầu viết được tool có thể crawl dữ liệu của một trang web, blog bất kỳ. Nay chợt nghĩ ra mình có thể dùng nó để backup một blog hay trang web nào đó của mình hay của người khác không?

Có thể chứ, dựa vào tên miền, tiến hành lấy toàn bộ link của tên miền, sau đó bóc tách toàn bộ nội dung và lưu lại. Cái này gọi là điên rồ vì các điểm:

  • Mất thời gian. Phải viết tools, script… để thực hiện toàn bộ các thao tác. Trong khi chỉ việc backup database và code đơn giản từ server về(đó là của mình). Còn của người khác thì đúng là chỉ có cách này.
  • Tốn băng thông và gây lỗi cho blog. Với cách này thì truy vấn đến trang rất nhiều như kiểu tấn công từ chối dịch vụ vậy. Hiện blog mình dùng cloudflare free, truy vấn nhiều nó báo lỗi 502 luôn

Đó chỉ là ý tưởng thôi nhưng cần kỹ thuật vài thứ, phải làm job các kiểu… Nhưng cứ coi đó là 1 slide project (pet project) cũng hay đó.

Danh sách link hay

Vẫn giữ ý tưởng rất rất lâu rồi mong muốn làm mà vẫn chưa thành công, vì chưa quyết tâm…

Đây sẽ là nơi lưu trữ danh sách các link mà mình cảm thấy hay muốn lưu lại để dùng lại, đọc lại về sau. Thôi bỏ qua những thứ lằng nhằng vẽ vời khác. Đơn giản chỉ lưu lại url, tittle và sau đó hiển thị random ra mà thôi.

Có lẽ đơn giản thì nên làm thủ công với wordpresss là lưu thành bài viết vậy… Vẫn thuộc dạng bỏ ngỏ.

MySQL 1045 – Access denied for user

Mấy hôm nay cần cài wordpress ở máy tính cá nhân của mình để triển tool crawl dữ liệu. Các hạng mục crawl dữ liệu khá ok rồi, bây giờ mình muốn dựng wordpress để hiển thị thành quả. Mục tiêu là clone một trang web trong vòng 1 nốt nhạc và còn phương án cập nhật dữ liệu hàng ngày nữa.

Ở công ty cài anh bạn Wampserver cũng khá là suôn sẻ, tất nhiên phải đổi một số port mặc định cho apache, mysql… vì đã bị trùng cổng các phần mềm khác. Nhưng tới máy nhà mình thì cài Wampserver thì bị thiếu file dll gì đó, đành chuyển sang anh bạn Xampp mình biết từ lâu rồi.

Nhưng cũng chưa yên, cài xong thì bị trùng cổng của anh bạn Skype, đành phải gỡ Skype. Thế nhưng vẫn dính lỗi 1045 – Access denied for user, đổi sang cổng khác cổng 3306 thì MySQL đã chạy nhưng phpMyadmin lại lỗi vì không kết nối được. Mặc dù thử vài cách trên mạng nhưng vẫn không ăn thua. Mãi mới tìm thấy một cách xử lý mà mình đã nghi ngờ đó là sửa port trong file config của phpMyadmin.

Địa chỉ file config: C:\xampp\phpMyAdmin\config.inc.php

Thêm port cho nó: :3309

/* Bind to the localhost ipv4 address and tcp */
$cfg[‘Servers’][$i][‘host’] = ‘127.0.0.1:3309’;

Thế là xong, mặc định pass root của MySQL vẫn trống.

Quản lý tài khoản đặc quyền với CyberArk

Hôm nay đối tác CyberArk giới thiệu và đào tạo công ty mình chuẩn bị sử dụng CyberArk để quản lý tài khoản đặc quyền. Theo mình hiểu CyberArk cung cấp một giải pháp quản lý và bảo mật hạ tầng CNTT của doanh nghiệp nói chung. Bao gồm các thiết bị phần cứng, hạ tầng mạng, các server (vật lý và ảo hóa), các data center, cơ sở dữ liệu…

Trước đây đối với các công ty mà mình từng làm việc quản lý server khá thủ công. Mặc dù một số nơi có sử LDAP để quản trị user nhưng đối với mỗi server thì đều phải tự cài đặt và quản trị riêng cho nó. Đội ngũ phần cứng nắm giữ một user admin có quyền cao nhất và riêng biệt. Sau đó trưởng mỗi server sẽ được cung cấp một user admin cũng có quyền cao nhất sau đó là các nhân viên khác có quyền thấp hơn. Như vậy đối với mỗi server việc quản lý sẽ độc lập, từng người dùng phải server và tài khoản của mình. Như mình một lúc quản lý dưới chục server đã rất hay bị quên và thường xuyên phải dùng chung một mật khẩu duy nhất. Biết là thiếu tính bảo mật nhưng không còn cách nào khác, lưu ra một nơi riêng cũng không an toàn. Lưu trạng thái đăng nhập thì lại càng không an toàn nữa. Nói chung là khá bất cập.

Hơn nữa với việc quản lý cũ việc tra lại lịch sử thao tác tới server là hoàn toàn bất khả thi. Việc truy xuất thời gian đăng nhập đã là khó khăn, việc xem người dùng làm những gì thì hầu như không thể nào biết được.

CyberArk là giải pháp hữu hiệu có thể đáp ứng hầu như hoàn toàn cách quản lý trên. CyberArk được cài đặt trên ít nhất 1 server để có thể quản lý các tài khoản đặc quyền riêng. Mặc dù mới chỉ được giới thiệu và đào tạo nhưng mình có thể thấy được một số ưu nhược điểm như sau:

  • CyberArk được cài đặt trên server riêng và bán licensen theo số lượng user của hệ thống để thực hiện thao các trên các server.
  • Người dùng CyberArk có thể được cung cấp tài khoản riêng biệt hoặc sử dụng LDAP để xác thực như xác thực email, xác thực vào máy tính cá nhân, xác thực wifi công ty…
  • Từ CyberArk người dùng không phải nhớ bất kỳ IP cũng như tài khoản server nào. Tất cả sẽ được hiển thị hết trong danh sách các server được phép sử dụng.
  • CyberArk không chỉ quản trị server mà còn quản trị được nhiều các phần mềm khác nhau. CyberArk có tác dụng như là một server trung gian, phần mềm trung gian. Người dùng qua đó xác thực và sử dụng như trên chính thiết bị của mình.
  • Ví dụ remote hoặc SSH vào server thì nó đứng ở trung gian xác thực mình. Mình chỉ cần bấm vào là remote được luôn, không cần gõ mật khẩu hoặc tài khoản gì cả.
  • Ví dụ connect phần mềm quản trị Database Oracle là Toad. Bình thường máy cá nhân mình phải cài Toad để kết nối tới Oracle. Khi dùng CyberArk thì trên server cài CyberArk cũng phải cài Toad. Khi mình đăng nhập vào CyberArk, tìm đến phần Toad thì mình chỉ cần chọn, CyberArk sẽ tự động mở Toad ở máy mình, xác thực qua đó là mình đã có thể sử dụng được.
  • CyberArk tiến hành quay lại màn hình toàn bộ các thao tác của người dùng tác động lên server. Vì là đi qua nó nên nó bắt được toàn bộ các sự kiện click, các cửa sổ được mở, các lệnh được gõ vào server. Nó lưu lại vừa dưới dạng file text vừa dưới dạng video để người quản trị cao hơn có thể xem lại.
  • Vì nó có thể ghi nhận được các thao tác nên nó hoàn toàn có thể can thiệp được những lệnh, thao tác nguy hiểm hoặc không được phép lên hệ thống. Nó có thể quyết định không thực thi hoặc kết thúc phiên làm việc ngay lập tức.
  • Đối với các server đặc biệt, nó còn có tính năng yêu cầu quyền truy cập để cấp trên có thể phê duyệt thời gian vào để làm việc. Việc này rất tốt để lên kế hoạch bảo trì hoặc nâng cấp hệ thống.
  • Mặc dù test qua nhưng có một số vấn đề mà nó chưa thể xử lý được ngay cần phải check lại:
    — Đối với Linux, công việc thường ngày khi SSH vào hệ thống thì thường xuyên phải thay đổi vai trò lúc thì user thường lúc thì user root. Hiện tại nó không cho phép sự thay đổi này. Nhưng họ nó có 1 add-on cho phép làm việc này nên để nó test trước và thông tin lại.
    — Đối với Window, mỗi user thường tạo ra các schedule thực hiện các công việc khác nhau. Việc đổi pass liên tục sau mỗi phiên sẽ gây các schedule không thực hiện được cũng như những người khác muốn sửa sẽ rất khó khăn. Nó sẽ check lại giải pháp.
    — Đối với cả Linux và Window, nếu người dùng run một bath hoặc crontab, schedule thực thi các lệnh nguy hiểm thì CyberArk cũng không phát hiện và ngăn chặn được. CyberArk chỉ phát hiện được khi người dùng gõ hoặc dùng chuột. Cái này thì là hạn chế, nó không thể có giải pháp được.

Tất nhiên sâu, chi tiết và thực tế thì cần tìm hiểu và sử dụng thêm. Những cái này chỉ mà mới nhận định ban đầu sau một buổi nghe giới thiệu và đào tạo(chưa được thực hành).

Nhìn chung là khá tiên tiến, mặc dù nó lưu vết và quản trị rất khắt khe gây cảm giác khó chịu và luôn bị soi mói thao tác. Nhưng buộc phải chấp nhận thôi nhất là đối với các server product cần phải làm vậy để quy trách nhiệm cũng như đảm bảo an toàn hệ thống. Các công ty vừa và lớn nên mua và sử dụng vì nó cũng nằm một phần trong tiêu chuẩn ISO.

Tự động chuyển link qua index.html

Số là mình mua một tên miền và thuê một host của BKNS. Trên đó mình tạo khá nhiều website. Mặc định khi truy cập vào tên miền thì nó sẽ vào file index.html ở thư mục gốc.

Với mỗi thời điểm mình thích lên thì để file index.html chuyển đến các website khác nhau của mình. Mình cũng không muốn đặt subdomain để chuyển tiếp mà muốn trỏ trực tiếp vào các thư mục khác nhau chứa các website hoặc tính năng khác nhau. Nhưng đối với tên miền khác mình thì mình đặt luôn website ở thư mục gốc nên mình sẽ luôn mặc định vào website này.

Lan man đủ rồi. Để chuyển tự động sang một website qua file index.html mình sử dụng code sau:

 

<html>
<head>
<meta http-equiv="refresh" content="0;url=https://trituenhantao.info/posts">
</head>
<body>
Trí tuệ nhân tạo
</body>
</html>

Như vậy mình đang cấu hình khi truy cập tên miền trituenhantao.info sẽ tự động chuyển tiếp sang trang https://trituenhantao.info/posts

Tham số 0 kia là chuyển ngay, nếu mình muốn chờ một khoảng thời gian là t giây nào đó thì mình nhập vào.

Tất nhiên là có nhiều cách khác nhau nhưng mình lựa chọn cách Tự động chuyển link qua index.html cho đơn giản nhất.