01/10/2018, 17:13
Hướng dẫn cách viết 1 đoạn bashscript ngắn cho linux
Mọi người cho mình nhờ chút, hiện tại server Centos bên mình đang lưu log dưới dạng:
server.log.2018-08-19-01
nghĩa là theo định dạng : server.log.yyyy-mm-dd-hh và có khoảng vài ngàn file log như này trên server
Bây giờ mình muốn zip các log này lại theo định dạng server.log.yyyy-mm.zip vào 1 thư mục khác và đồng thời xóa những file log đó đi. Nhờ mọi người chỉ cách với mình xin cảm ơn
Bài liên quan
mình có thể chỉnh sửa biến môi trường
$DATE
.Bạn thử câu lệnh sau:
sẽ thấy dòng đại loại như:
thì giờ nếu bạn muốn sửa được cái DATE như định dạng mong muốn của bạn là yyyy-mm thì chèn đoạn này vào file ~/.bashrc(~/.zshrc nếu bạn dùng zsh):
sau đó dùng lệnh sau để reload lại shell nếu không muốn thoát ra vào lại(mặc dù thoát ra vào lại cũng là 1 cách ):
source ~/.bashrc
Nếu thấy có vấn đề gì thì hỏi tiếp
Nhận thấy tên file zip trùng với phần đầu của log filename nên ta cắt phần đầu của log filename.
Không rõ là bạn muốn zip như thế này
hay
?
Vậy thì
Kiểu này bạn ơi
Mình làm theo kiểu 1 của bạn mà không được, nó hiện ra như này này
Bạn chạy
thì mới được nhé.
Và đừng quên:
chmod a+x nenfile.sh
để cấp quyền sử dụngViết như này được không mọi người review giúp với, em chạy test ok rồi nhưng lên thật dữ liệu nó lớn không biết có hiểm họa gì không ạ
Sửa lại code cho, bạn chưa biết cách markdown rồi:
Bạn cứ viết tách ra. Bash hiểu hết mà.
Dòng
mkdir
cần chú ý vì$daybackup
không phải lúc nào cũng không tồn tại, việcmkdir
nhiều lần không cần thiết gây lãng phí tài nguyên, bash báo lỗi (directory existed), thậm chí có thể dẫn đến những tổn hại lớn hơn.Bài toán tạm ôn rồi, cảm ơn mọi người nhiều ạ
Hi mọi người, hiện tại mình đặt file này trên server chạy được 1 thời gian rồi, tuy nhiên đang gặp phải 1 vấn đề là khi nó chạy để nén, nó nén luôn các file đã zip đặt trong cùng thư mục ấy, nhờ mọi người hỗ trợ chỗ này với, vì mô hình chung mỗi ngày nó đang nén đi nén lại các file đã zip rồi
thì bỏ file zip ra thư mục khác?
Bên trong vòng for các file thì bạn kiểm tra thêm điều kiện phải không có đuôi .zip mới được nhé.