banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Tự động xóa data bằng crontab  XML
  [Question]   Tự động xóa data bằng crontab 24/08/2009 10:59:25 (+0700) | #1 | 190957
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]
mình đang sử dụng centos 4.5 và webmin 1.3, mình dự định tạo crontab để nó tự động xóa data của field recording mà time quá 7 ngày? mình phải làm ntn? mong dc giúp đỡ?
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 24/08/2009 11:15:20 (+0700) | #2 | 190958
[Avatar]
Mr.Kas
Member

[Minus]    0    [Plus]
Joined: 22/07/2009 14:36:56
Messages: 209
Offline
[Profile] [PM]
Nói một tí về crontab, cron là một công cụ cho phép thực hiện các công việc một cách tự động một cách định kỳ, ở chế độ nền của hệ thống. Crontab là một file chứa đựng bảng biểu (schedule) của các entries được chạy.

Để xóa data của field recording mà time quá 7 ngày thì trước tiên bạn phải viết 1 script xóa data của field recording, cái này chắc bạn tự viết được. Giả sử bạn có file script đó là del.sh. Tiếp theo bạn tạo một file crontab. Thông tin nội dung về việc định danh thời gian của file crontab có dạng sau.

Code:
*     *     *     *     *     command to be executed
 -     -     -     -     -
 |     |     |     |     |
 |     |     |     |     +----- day of week (0 - 6) (Sunday=0)
 |     |     |     +------- month (1 - 12)
 |     |     +--------- day of month (1 - 31)
 |     +----------- hour (0 - 23)
 +------------- min (0 - 59)


dựa vào đây bạn xác định thời gian để file crontab được chạy. Và tạo file crontab, trong trường hợp của bạn thì chạy thế này:
Code:
$ crontab -e
0 0 * * 0 sh /[link]/del.sh


Cuối cùng, nhớ khởi động lại cron daemon:
Code:
/etc/init.d/crond restart
Treo chuột, gác phím, cất modem, cắt NET. Lên núi luyện công chờ ngày trở lại ...
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 24/08/2009 13:21:11 (+0700) | #3 | 190972
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]
thanks you very much, mình chưa viết đoạn script bao giờ, mới tìm hiểu nó và thấy nó cũng giống như javascript nhưng để viết dc nó cũng ko dễ, mình chỉ có thể hiểu dc tới đây thôi:
#start code
#!/bin/sh
MyUSER="test" # USERNAME
MyPASS="1234" # PASSWORD
MyHOST="192.168.0.250" # Hostname

# Linux bin paths, change this if it can't be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"

# Get data in dd-mm-yyyy format
NOW="$(date +"%d-%m-%Y"smilie"

# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST

# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'tintuc')"#csdl là tintuc
...........
..........
..........

#End code

vd: có table tên thoisu(ms,ten,loai,ngayphat),phải làm thế nào để delete ms from thoisu where ngayhtai-ngayphat>=7(tất nhiên phải dùng hàm for)

Có rất nhiều thứ để viết trong đó nhưng mình ko biết viết tiếp thế nào?

[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 24/08/2009 15:59:00 (+0700) | #4 | 190985
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

thanh_hien73 wrote:
mình chưa viết đoạn script bao giờ, mới tìm hiểu nó và thấy nó cũng giống như javascript
 

Bạn thấy nó giống ở chỗ nào vậy?

thanh_hien73 wrote:

...
vd: có table tên thoisu(ms,ten,loai,ngayphat),phải làm thế nào để delete ms from thoisu where ngayhtai-ngayphat>=7(tất nhiên phải dùng hàm for)
 

Có 2 việc cần làm:
1. Viết được câu query trên
2. Từ shell, gọi câu query đó bằng lệnh mysql với tham số -e

thanh_hien73 wrote:

Có rất nhiều thứ để viết trong đó nhưng mình ko biết viết tiếp thế nào?
 

Muốn viết tiếp được thì cần nắm MySQL và đọc tài liệu về shell script.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 24/08/2009 16:14:24 (+0700) | #5 | 190991
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

thanh_hien73 wrote:
thanks you very much, mình chưa viết đoạn script bao giờ, mới tìm hiểu nó và thấy nó cũng giống như javascript nhưng để viết dc nó cũng ko dễ, mình chỉ có thể hiểu dc tới đây thôi:
#start code
#!/bin/sh
MyUSER="test" # USERNAME
MyPASS="1234" # PASSWORD
MyHOST="192.168.0.250" # Hostname

# Linux bin paths, change this if it can't be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"

# Get data in dd-mm-yyyy format
NOW="$(date +"%d-%m-%Y"smilie"

# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST

# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'tintuc')"#csdl là tintuc
...........
..........
..........

#End code

vd: có table tên thoisu(ms,ten,loai,ngayphat),phải làm thế nào để delete ms from thoisu where ngayhtai-ngayphat>=7(tất nhiên phải dùng hàm for)

Có rất nhiều thứ để viết trong đó nhưng mình ko biết viết tiếp thế nào?

 


Không nên lưu username và password trong script như thế vì quá nguy hiểm cho chuyện bảo mật. Chỉ nên "pass" các giá trị này vào khi chạy script. Vi dụ:

./backup.sh test 1234

và trong script, test chính là giá trị của $1, 1234 chính là giá trị của $2.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 25/08/2009 17:09:05 (+0700) | #6 | 191090
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]
cám ơn các bác nhiều ! đang tìm trên mạng tài liệu shell script để học

Code:
#!/bin/bash
    # Shell nay dung de backup MySQL ra thu muc /backup
    # Ban quyen thuoc ve Hanh_bk

    MyUSER=”SET-MYSQL-USER-NAME”     # username cua MySQL, thuong la dung voi tai khoan root
    MyPASS=”SET-PASSWORD”       # Mat khau truy cap MySQL
    MyHOST=”localhost”          # Ten may chu database cua ban.

    # lay thong tin duong dan cua cac ung dung. Neu ban khong cai cac file thuc thi cua ung dung
    # vao thu muc mac dinh nhu /bin, /sbin, /usr/bin … thi ban phai khai bao cho chuong trinh biet
    MYSQL=”$(which mysql)”
    MYSQLDUMP=”$(which mysqldump)”
    CHOWN=”$(which chown)”
    CHMOD=”$(which chmod)”
    GZIP=”$(which gzip)”

    # Thu muc chua MySQL
    MBD=”$DEST/mysql”

    # Lay ten may chu, dung de phan biet khi co nhieu database server cung backup ve 1 may chu luu tru
    HOST=”$(hostname)”

    # Lay thong tin ngay thang
    NOW=”$(date +”%d-%m-%Y”)”

    # Khai bao cac gia tri
    # Ten database
    FILE=”"
    # Danh sach databases
    DBS=”"

    # Ban khong can backup du lieu nao thi khai bao o day.
    IGGY=”test”

    [ ! -d $MBD ] && mkdir -p $MBD || :

    # Do van de bao mat nen chi co tai khoan root cua he thong moi duoc quyen thao tac voi cac file backup ra.
    $CHOWN 0.0 -R $DEST
    $CHMOD 0600 $DEST

    # Lay danh sach database
    DBS=”$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse ’show databases’)”

    for db in $DBS
    do
    skipdb=-1
    if [ "$IGGY" != "" ];
    then
    for i in $IGGY
    do
    [ "$db" == "$i" ] && skipdb=1 || :
    done
    fi

    if [ "$skipdb" == "-1" ] ; then
    FILE=”$MBD/$db.$HOST.$NOW.gz”

    $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
    fi
    done

Phải thay datbase và table như thế nào mới đúng vậy các bác,mình phải thay câu delete vào đâu,em ko thể nào hiểu dc hết code. Xin chỉ giáo!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 25/08/2009 17:20:26 (+0700) | #7 | 191091
[Avatar]
Mr.Kas
Member

[Minus]    0    [Plus]
Joined: 22/07/2009 14:36:56
Messages: 209
Offline
[Profile] [PM]
Bạn cho toàn bộ code vào trong tab [code] cho dễ nhìn nhé.

Để viết tiếp shell script đòi hỏi bạn phải có kiến thức cơ bản về MySQL, vì vậy bạn phải tìm tài liệu liên quan đến MySQL để lấy thêm thông thông tin. Tài liệu MySQL bạn có thể tìm ngay trên trang chủ của MySQL.

Thân mến.
Treo chuột, gác phím, cất modem, cắt NET. Lên núi luyện công chờ ngày trở lại ...
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 25/08/2009 17:35:54 (+0700) | #8 | 191094
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]

Mr.Kas wrote:
Bạn cho toàn bộ code vào trong tab [code] cho dễ nhìn nhé.

Để viết tiếp shell script đòi hỏi bạn phải có kiến thức cơ bản về MySQL, vì vậy bạn phải tìm tài liệu liên quan đến MySQL để lấy thêm thông thông tin. Tài liệu MySQL bạn có thể tìm ngay trên trang chủ của MySQL.

Thân mến. 


tôi đang lập trinh MySQL trên php, nhưng ko hiểu bên shell này nó làm như thế nào? Mong bác chỉ giúp?
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 25/08/2009 20:31:31 (+0700) | #9 | 191104
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

thanh_hien73 wrote:

...
vd: có table tên thoisu(ms,ten,loai,ngayphat),phải làm thế nào để delete ms from thoisu where ngayhtai-ngayphat>=7(tất nhiên phải dùng hàm for)
 

DELETE FROM thoisu WHERE ngayphat <= DATE_SUB(NOW(), INTERVAL 7 DAY);
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 26/08/2009 13:50:45 (+0700) | #10 | 191137
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]

quanta wrote:

Có 2 việc cần làm:
1. Viết được câu query trên
2. Từ shell, gọi câu query đó bằng lệnh mysql với tham số -e
 


Thanks, Nói như bác, mình có cần viết 1 file.sh hay file.php để kết nối đến database và thực hiện lệnh delete ko? Và việc gọi query đó bằng lệnh mysql -e là sao? Bác có tài liệu kết nối đến database trong Mysql của Shell ko, cho tôi link với, google mãi mà ko thấy?
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 26/08/2009 14:09:06 (+0700) | #11 | 191142
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

thanh_hien73 wrote:

quanta wrote:

Có 2 việc cần làm:
1. Viết được câu query trên
2. Từ shell, gọi câu query đó bằng lệnh mysql với tham số -e
 


Thanks, Nói như bác, mình có cần viết 1 file.sh hay file.php để kết nối đến database và thực hiện lệnh delete ko? Và việc gọi query đó bằng lệnh mysql -e là sao? Bác có tài liệu kết nối đến database trong Mysql của Shell ko, cho tôi link với, google mãi mà ko thấy?  

PHP thì mình không rành còn Shell thì "kết nối" hiểu theo nghĩa bạn nói chính là mấy cái lệnh này này:
Code:
# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'tintuc')"#csdl là tintuc

Code:
# Lay danh sach database
    DBS=”$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse ’show databases’)”


Tài liệu thì không cần phải Google đâu, đọc man mysql cũng đủ hiểu.

Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 09:29:20 (+0700) | #12 | 191213
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]
Thanks về sự giúp đỡ. Giả sử tôi có 1 file, bên trong là các file nhạc dạng wav, khi muốn xóa tên file nhạc mà quá 7 ngày thì làm thế nào? (file nhạc có thể dc ghi từ 1 chương trình ghi, hay do ng sdung copy vào hệ thống)
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 10:31:41 (+0700) | #13 | 191219
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

thanh_hien73 wrote:
Thanks về sự giúp đỡ. Giả sử tôi có 1 file, bên trong là các file nhạc dạng wav, khi muốn xóa tên file nhạc mà quá 7 ngày thì làm thế nào? (file nhạc có thể dc ghi từ 1 chương trình ghi, hay do ng sdung copy vào hệ thống) 

find /path/to/folder -name "*.wav" -ctime +7 -exec rm -fr {} \;
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 11:06:00 (+0700) | #14 | 191223
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]

quanta wrote:

thanh_hien73 wrote:
Thanks về sự giúp đỡ. Giả sử tôi có 1 file, bên trong là các file nhạc dạng wav, khi muốn xóa tên file nhạc mà quá 7 ngày thì làm thế nào? (file nhạc có thể dc ghi từ 1 chương trình ghi, hay do ng sdung copy vào hệ thống) 

find /path/to/folder -name "*.wav" -ctime +7 -exec rm -fr {} \;
 

thanks in advance, chú có thể giả thích cho tôi thêm những lệnh trong đây ko? Sao tôi ko thấy ký hiệu delete đâu cả?
giả sử, tôi có path là /usr, folder_name là music, tôi viết thế câu shell script này đúng ko?
Code:
#!/bin/sh 
find /usr/to/music "*.wav" -ctime +7 -exec rm -fr {} \;

sau đó tôi lưu shell này vào usr/bin với tên là del.shvà tạo crontab cho nó:

Code:
$ crontab -e
0 0 * * 0 sh /usr/bin/del.sh


Như vậy có đúng ko?
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 11:44:17 (+0700) | #15 | 191224
[Avatar]
Mr.Kas
Member

[Minus]    0    [Plus]
Joined: 22/07/2009 14:36:56
Messages: 209
Offline
[Profile] [PM]
Code:
/path/to/folder
thay bằng
Code:
/usr/music
Treo chuột, gác phím, cất modem, cắt NET. Lên núi luyện công chờ ngày trở lại ...
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 11:45:21 (+0700) | #16 | 191225
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

thanh_hien73 wrote:

quanta wrote:

thanh_hien73 wrote:
Thanks về sự giúp đỡ. Giả sử tôi có 1 file, bên trong là các file nhạc dạng wav, khi muốn xóa tên file nhạc mà quá 7 ngày thì làm thế nào? (file nhạc có thể dc ghi từ 1 chương trình ghi, hay do ng sdung copy vào hệ thống) 

find /path/to/folder -name "*.wav" -ctime +7 -exec rm -fr {} \;
 

thanks in advance, chú có thể giả thích cho tôi thêm những lệnh trong đây ko?
 

- Sao biết năm sinh của mình nhỉ, tài vậy ta?
- man find

thanh_hien73 wrote:

Sao tôi ko thấy ký hiệu delete đâu cả?
 

rm -fr đó.

thanh_hien73 wrote:

giả sử, tôi có path là /usr, folder_name là music, tôi viết thế câu shell script này đúng ko?
Code:
#!/bin/sh 
find /usr/to/music "*.wav" -ctime +7 -exec rm -fr {} \;

sau đó tôi lưu shell này vào usr/bin với tên là del.shvà tạo crontab cho nó:

Code:
$ crontab -e
0 0 * * 0 sh /usr/bin/del.sh


Như vậy có đúng ko? 

Không đúng.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 12:31:01 (+0700) | #17 | 191228
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]

quanta wrote:

- Sao biết năm sinh của mình nhỉ, tài vậy ta?
 

Đón mò thôi, chú cứ đùa, nhìn avatar của chú nên tôi mới xưng hô vậy, mà chú thì có nhiều nghĩa lắm, có người gọi là chú em(em trai của mình),có khi là chú bác.... smilie

quanta wrote:

thanh_hien73 wrote:

giả sử, tôi có path là /usr, folder_name là music, tôi viết thế câu shell script này đúng ko?
Code:
#!/bin/sh 
find /usr/to/music "*.wav" -ctime +7 -exec rm -fr {} \;

sau đó tôi lưu shell này vào usr/bin với tên là del.sh và tạo crontab cho nó:

Code:
$ crontab -e
0 0 * * 0 sh /usr/bin/del.sh


Như vậy có đúng ko? 

Không đúng. 

Không đúng chỗ nào vậy chú? Sửa thế nào?

Sửa lại giống chú Mr.Kas:
Code:
#!/bin/sh 
find /usr/music "*.wav" -ctime +7 -exec rm -fr {} \;


sau đó tôi lưu shell này vào usr/bin với tên là del.sh và tạo crontab cho nó:

Code:
$ crontab -e
0 0 * * 0 sh /usr/bin/del.sh


Please help !!!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 12:47:52 (+0700) | #18 | 191231
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

thanh_hien73 wrote:

Sửa lại giống chú Mr.Kas:
Code:
#!/bin/sh 
find /usr/music "*.wav" -ctime +7 -exec rm -fr {} \;


sau đó tôi lưu shell này vào usr/bin với tên là del.sh và tạo crontab cho nó:

Code:
$ crontab -e
0 0 * * 0 sh /usr/bin/del.sh

 

 
Thì nó có chạy không? Thử gõ cái lệnh trên bằng tay (manual) ngay trên Shell xem nó có chạy không thì biết ngay mà, sau đó mới tính đến chuyện crontab.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 15:14:15 (+0700) | #19 | 191249
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]

quanta wrote:

thanh_hien73 wrote:

Sửa lại giống chú Mr.Kas:
Code:
#!/bin/sh 
find /usr/music "*.wav" -ctime +7 -exec rm -fr {} \;


sau đó tôi lưu shell này vào usr/bin với tên là del.sh và tạo crontab cho nó:

Code:
$ crontab -e
0 0 * * 0 sh /usr/bin/del.sh

 

Thì nó có chạy không? Thử gõ cái lệnh trên bằng tay (manual) ngay trên Shell xem nó có chạy không thì biết ngay mà, sau đó mới tính đến chuyện crontab. 


Kết quả là: ko có file đính kèm nào .wav trong thư mục. Hix. dù mình đã permision folder lẫn file luôn rồi. Gần đúng !!!!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 15:54:29 (+0700) | #20 | 191254
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

thanh_hien73 wrote:

quanta wrote:

thanh_hien73 wrote:

Sửa lại giống chú Mr.Kas:
Code:
#!/bin/sh 
find /usr/music "*.wav" -ctime +7 -exec rm -fr {} \;


sau đó tôi lưu shell này vào usr/bin với tên là del.sh và tạo crontab cho nó:

Code:
$ crontab -e
0 0 * * 0 sh /usr/bin/del.sh

 

Thì nó có chạy không? Thử gõ cái lệnh trên bằng tay (manual) ngay trên Shell xem nó có chạy không thì biết ngay mà, sau đó mới tính đến chuyện crontab. 


Kết quả là: ko có file đính kèm nào .wav trong thư mục. Hix. dù mình đã permision folder lẫn file luôn rồi. Gần đúng !!!! 

Mình tưởng vậy là đúng ý bạn rồi còn gì nữa (nếu các file này đều được tạo ra quá 7 ngày rồi). Bạn thắc mắc cái gì nhỉ?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 16:10:08 (+0700) | #21 | 191257
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]

quanta wrote:

thanh_hien73 wrote:

Kết quả là: ko có file đính kèm nào .wav trong thư mục. Hix. dù mình đã permision folder lẫn file luôn rồi. Gần đúng !!!! 

Mình tưởng vậy là đúng ý bạn rồi còn gì nữa (nếu các file này đều được tạo ra quá 7 ngày rồi). Bạn thắc mắc cái gì nhỉ? 

Chắc chú đúng rồi, tại ko có file nào quá 7 ngày nên nó báo thế? Nghĩ vậy thôi,chứ biết tôi nghĩ thế có đúng ko? Chắc đợi 7 ngày nữa mới bết ????????? smilie

Ah, nếu mình muốn xóa tên file quá 7 ngày thì sao? Vdu: 20090815_01.wav. Lấy ngày hiện tại trừ đi 15, nếu >=7 thì xóa .
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 27/08/2009 19:49:37 (+0700) | #22 | 191273
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

thanh_hien73 wrote:

quanta wrote:

thanh_hien73 wrote:

Kết quả là: ko có file đính kèm nào .wav trong thư mục. Hix. dù mình đã permision folder lẫn file luôn rồi. Gần đúng !!!! 

Mình tưởng vậy là đúng ý bạn rồi còn gì nữa (nếu các file này đều được tạo ra quá 7 ngày rồi). Bạn thắc mắc cái gì nhỉ? 

Chắc chú đúng rồi, tại ko có file nào quá 7 ngày nên nó báo thế? Nghĩ vậy thôi,chứ biết tôi nghĩ thế có đúng ko? Chắc đợi 7 ngày nữa mới bết ????????? smilie
 

Báo thế là báo thế nào? Chú có thấy cháu quẳng cái thông báo nào lên đâu. Mà thật ra thì câu trên ("Kết quả là: ko có file đính kèm nào .wav trong thư mục. Hix. dù mình đã permision folder lẫn file luôn rồi. Gần đúng !") cháu viết cũng khá tối nghĩa.

Sao cháu không ls -l rồi nhìn cái cột Date là biết ngay thôi.

thanh_hien73 wrote:

Ah, nếu mình muốn xóa tên file quá 7 ngày thì sao? Vdu: 20090815_01.wav. Lấy ngày hiện tại trừ đi 15, nếu >=7 thì xóa .
 

À, nếu thế thì cháu phải học awk, về xử lý chuỗi,... làm sao để cắt lấy số 15 gán vào một biến nào đó, rồi lấy `date +%d` trừ đi, nếu lớn hơn 7 thì xoá, cơ bản là thế, cháu thử làm xem.

Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 28/08/2009 08:46:48 (+0700) | #23 | 191293
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]
quanta chịu khó quá...
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 28/08/2009 10:35:49 (+0700) | #24 | 191301
[Avatar]
Mr.Kas
Member

[Minus]    0    [Plus]
Joined: 22/07/2009 14:36:56
Messages: 209
Offline
[Profile] [PM]
@ thanh_hien73: muốn xem thử kết quả khi áp dụng câu lệnh shell của anh quanta và chỉnh crontab của tớ thì bạn chỉ cần tạo một shell mới có nội dung
#!/bin/sh
find /usr/music "*.test" -ctime +1 -exec rm -fr {} \; 

Rồi tạo một vài tập tin có dạng .test đặc trong folder đó. Tiếp theo là chỉnh trong crontab với nội dung
$ crontab -e
0 0 * * * sh /usr/bin/del.sh 

Việc này có nghĩa là sau 24h thì crontab sẽ thực hiện script del.sh và nhiệm vụ của script này là del những file quá 1 ngày (24h).
Treo chuột, gác phím, cất modem, cắt NET. Lên núi luyện công chờ ngày trở lại ...
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 28/08/2009 15:56:42 (+0700) | #25 | 191331
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]

quanta wrote:

Báo thế là báo thế nào? Chú có thấy cháu quẳng cái thông báo nào lên đâu. Mà thật ra thì câu trên ("Kết quả là: ko có file đính kèm nào .wav trong thư mục. Hix. dù mình đã permision folder lẫn file luôn rồi. Gần đúng !") cháu viết cũng khá tối nghĩa.
 

Nó báo thế đó chú, vì echo= tiếng Pháp nên cháu dịch sang tiếng Việt smilie

quanta wrote:
Sao cháu không ls -l rồi nhìn cái cột Date là biết ngay thôi.
 

ls -l thấy năm 2007. hix.

quanta wrote:

À, nếu thế thì cháu phải học awk, về xử lý chuỗi,... làm sao để cắt lấy số 15 gán vào một biến nào đó, rồi lấy `date +%d` trừ đi, nếu lớn hơn 7 thì xoá, cơ bản là thế, cháu thử làm xem.
 

Đang mần cái man awk đây !!! Khó wa !!!

Mr.Kas wrote:
@ thanh_hien73: muốn xem thử kết quả khi áp dụng câu lệnh shell của anh quanta và chỉnh crontab của tớ thì bạn chỉ cần tạo một shell mới có nội dung
#!/bin/sh
find /usr/music "*.test" -ctime +1 -exec rm -fr {} \; 

Rồi tạo một vài tập tin có dạng .test đặc trong folder đó. Tiếp theo là chỉnh trong crontab với nội dung
$ crontab -e
0 0 * * * sh /usr/bin/del.sh 

Việc này có nghĩa là sau 24h thì crontab sẽ thực hiện script del.sh và nhiệm vụ của script này là del những file quá 1 ngày (24h). 


Vâng, thanks. để test thử !!!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 28/08/2009 17:15:44 (+0700) | #26 | 191339
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]
Hix, test rồi, mới test thử. Đặt crontab cho nó là:
Code:
30 17 28 08 5 sh /usr/bin/del.sh ##xóa vào lúc 17h30 ngày 28/08

Kết quả là: file.wav ko xóa. smilie
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 28/08/2009 18:14:47 (+0700) | #27 | 191347
[Avatar]
Mr.Kas
Member

[Minus]    0    [Plus]
Joined: 22/07/2009 14:36:56
Messages: 209
Offline
[Profile] [PM]
Rồi tạo một vài tập tin có dạng .test đặc trong folder đó 


Chú ý phần này một tí.
Treo chuột, gác phím, cất modem, cắt NET. Lên núi luyện công chờ ngày trở lại ...
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 28/08/2009 19:39:08 (+0700) | #28 | 191370
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

thanh_hien73 wrote:

quanta wrote:

Báo thế là báo thế nào? Chú có thấy cháu quẳng cái thông báo nào lên đâu. Mà thật ra thì câu trên ("Kết quả là: ko có file đính kèm nào .wav trong thư mục. Hix. dù mình đã permision folder lẫn file luôn rồi. Gần đúng !") cháu viết cũng khá tối nghĩa.
 

Nó báo thế đó chú, vì echo= tiếng Pháp nên cháu dịch sang tiếng Việt smilie
 

Làm gì có echo gì ở đây, nói nghiêm túc xem nào.

thanh_hien73 wrote:

quanta wrote:
Sao cháu không ls -l rồi nhìn cái cột Date là biết ngay thôi.
 

ls -l thấy năm 2007. hix.
 

Thế thì không có lý do gì để cái lệnh trên nó không hoạt động cả. Mà nhét nó vào crontab xong đã restart crond chưa?

thanh_hien73 wrote:

quanta wrote:

À, nếu thế thì cháu phải học awk, về xử lý chuỗi,... làm sao để cắt lấy số 15 gán vào một biến nào đó, rồi lấy `date +%d` trừ đi, nếu lớn hơn 7 thì xoá, cơ bản là thế, cháu thử làm xem.
 

Đang mần cái man awk đây !!! Khó wa !!!
 

Một cách dùng awk đơn giản:
Code:
bash-3.1$ DATE=`echo 20090815_01.wav | awk -F '_' '{ print $1 }'`
bash-3.1$ DAY=${DATE:${#DATE}-2:2}
bash-3.1$ echo $DAY
15

Còn muốn nhuần nhuyễn với nó thì có thể kiếm cuốn Sed and Awk để đọc và thực hành.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 28/08/2009 19:51:07 (+0700) | #29 | 191374
[Avatar]
Mr.Kas
Member

[Minus]    0    [Plus]
Joined: 22/07/2009 14:36:56
Messages: 209
Offline
[Profile] [PM]
Cho cậu luôn cái lệnh (ngay trang đầu topic tớ đã nói rồi) để cậu thực hiện việc rétart cron nè:

Code:
/etc/init.d/crond restart
Treo chuột, gác phím, cất modem, cắt NET. Lên núi luyện công chờ ngày trở lại ...
[Up] [Print Copy]
  [Question]   Tự động xóa data bằng crontab 31/08/2009 14:13:52 (+0700) | #30 | 191617
[Avatar]
thanh_hien73
Member

[Minus]    0    [Plus]
Joined: 19/03/2009 18:32:33
Messages: 18
Offline
[Profile] [PM]

Mr.Kas wrote:
Rồi tạo một vài tập tin có dạng .test đặc trong folder đó 


Chú ý phần này một tí. 

Tớ đã đặt những file có đuôi wav vào thư mục music
Rồi tạo một shell lưu với tên del.sh đặt trong thư mục /usr/bin
Code:
#!/bin/sh
find /usr/music "*.wav" -ctime +1 -exec rm -fr {} \;

sao đó tạo crontab:
Code:
$ crontab -e
30 12 * * * sh /usr/bin/del.sh //xóa all file có đuôi wav vào lúc 12h30 all các ngày trong tuần.

Rồi restart cron:
Code:
/etc/init.d/cron restart

Ko có chữ d mới đúng!!!
Sau 12h30, tôi vào music vẫn thấy file có đuôi wav. smilie

quanta wrote:

Làm gì có echo gì ở đây, nói nghiêm túc xem nào.
 

echo là kết quả khi ta thực hiện câu lệnh,giống như thông báo . Tại tớ viết tắt. smilie
Tớ cố gắng thử đoạn crontab này:
Code:
30 12 * * * /usr/bin/find /var/music -maxdepth 2 -type f -mtime +1 -print | xargs rm -f //xoa all file quá 1 ngày

find đã có sẵn trong bin
Nhưng cũng không dc??? các cậu thử test giùm tớ !!!
Đây là hình crontab của tớ:
http://www.mediafire.com/imageview.php?quickkey=mdqmieijv3m&thumb=4
smilie

[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|