Thứ Sáu, 27 tháng 12, 2019

Cách sao lưu và khôi phục lịch sử Linux Terminal (.bash_history)

Linux duy trì một bản sao lưu các dòng lệnh được sử dụng trong Terminal. Hướng dẫn này chỉ cho bạn cách sao lưu file lịch sử Linux Terminal. Sau đó, hướng dẫn bạn cách khôi phục các bản sao lưu đó.
Linux Terminal đi kèm với một tính năng tiện dụng có tên là “History”. Ví dụ, mỗi lệnh được nhập trong terminal sẽ được lưu trong một file có tên là .bash_history. Một file lịch sử được tạo cho mỗi người dùng và có thể được tìm thấy trong thư mục Home của người dùng, ví dụ “/home/username/.bash_history”.
Lưu ý rằng file lịch sử, .bash_history, không được bảo vệ với các quyền đặc biệt. Vì vậy, bất kỳ người dùng nào có tài khoản trên hệ thống Linux đó đều có thể xem file lịch sử của những người dùng khác.

Hiển thị nội dung file lịch sử

Bước 1: Để liệt kê nội dung file lịch sử, bạn có thể sử dụng một trong các phương pháp sau.
Phương pháp đầu tiên là sử dụng lệnh cat như sau:
cat /home/hendadel/.bash_history
Dùng lệnh cat
Phương pháp thứ hai, bạn có thể xem trước nội dung của file lịch sử bằng lệnh history như sau:
history
Dùng lệnh history
Bước 2: Bạn có thể tìm kiếm lịch sử bằng cách sử dụng lệnh grep với một trong các phương pháp sau.
Phương thức đầu tiên là sử dụng kill trong file .bash_history như sau:
cat /home/hendadel/.bash_history | grep 'kill'
Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, lệnh sẽ liệt kê tất cả các lệnh có chứa từ khóa “kill”.
Các lệnh có từ kill được liệt kê
Phương pháp thứ hai để tìm kiếm lịch sử là bằng cách sử dụng lệnh grep với lệnh history như sau:
history | grep 'kill'
Kết hợp grep và history

Sao lưu file lịch sử

Bước 1: Bây giờ để tạo bản sao lưu từ file lịch sử Linux Terminal, bạn có thể sử dụng một trong các phương pháp sau.
Phương pháp đầu tiên là sử dụng lệnh cat với biểu tượng “>”. Bước này sẽ chuyển hướng đầu ra đến file sao lưu.
cat /home/hendadel/.bash_history > history_backup
Như bạn có thể thấy trong ảnh chụp màn hình tiếp theo, một file sao lưu sẽ được tạo.
File sao lưu được tạo
Phương pháp thứ hai là sử dụng lệnh history cùng với biểu tượng “>”.
history > history_backup2
Phương pháp thứ hai là sử dụng lệnh history cùng với biểu tượng “>”
Bước 2: Để thực hiện sao lưu file lịch sử thuộc về người dùng khác, bạn có thể sử dụng lệnh sau.
cat /home/admin/.bash_history > admin_history_backup
Sao lưu file lịch sử thuộc về người dùng khác

Sao lưu các lệnh trong lịch sử cụ thể

Bước 1: Để sao lưu các lệnh cụ thể từ file lịch sử, bạn có thể sử dụng một trong các phương pháp sau.
Phương pháp đầu tiên là sử dụng lệnh grep, cùng với biểu tượng “>” hoặc “>>”. Sự khác biệt giữa các biểu tượng trước đó là:
  • >: Bất cứ khi nào biểu tượng này được sử dụng, nó sẽ ghi đè lên nội dung của file sau mỗi lần.
  • >>: Tuy nhiên, biểu tượng này nối thêm đầu ra vào file đã được tạo mà không cần ghi đè lên file.
cat /home/hendadel/.bash_history | grep 'kill' >> history_backup
Sử dụng lệnh grep, cùng với biểu tượng “>” hoặc “>>”
Phương pháp thứ hai là sử dụng các lệnh history và grep, cùng với biểu tượng “>>” như sau:
history | grep 'kill' >> history_backup2
Sử dụng các lệnh history và grep, cùng với biểu tượng “>>”
Bước 2: Trong trường hợp bạn cần sao lưu các lệnh cụ thể từ lịch sử người dùng khác, bạn có thể sử dụng lệnh sau.
cat /home/admin/.bash_history | grep 'sudo' >> admin_history_backup

Khôi phục file sao lưu lịch sử cho người dùng hiện tại

Bước 1: Để khôi phục file sao lưu lịch sử, tất cả những gì bạn cần chỉ là xóa file lịch sử ban đầu .bash_history, được đặt trong thư mục Home như sau:
rm /home/hendadel/.bash_history
Xóa file lịch sử ban đầu .bash_history
Bước 2: Bây giờ sử dụng lệnh mv để di chuyển file sao lưu lịch sử đến thư mục Home.
mv history_backup /home/hendadel/.bash_history
Sử dụng lệnh mv để di chuyển file sao lưu lịch sử đến thư mục Home
Bước 3: Sau khi di chuyển file sao lưu lịch sử, bạn phải load lại lịch sử bằng cách sử dụng lệnh sau.
history -r
Load lại lịch sử
Bây giờ, bạn có thể xem trước lịch sử của mình bằng một trong các lệnh được liệt kê trước đó.

Khôi phục file sao lưu lịch sử cho người dùng khác

Bước 1: Trong trường hợp bạn cần khôi phục file sao lưu lịch sử cho người dùng khác, bạn phải chuyển tài khoản sang người dùng đó bằng lệnh sau.
su admin
Bước 2: Sau khi đăng nhập thành công, xóa file lịch sử hiện tại.
rm /home/admin/.bash_history
Bước 3: Bây giờ, hãy di chuyển file sao lưu lịch sử đến vị trí mới.
mv /home/hendadel/admin_history_backup /home/admin/.bash_history
Bước 4: Load lại lịch sử bằng lệnh sau.
history -r
Chúc bạn thực hiện thành công!

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master