[Rooted]-Lập lịch cho thiết bị Android | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

[Rooted]-Lập lịch cho thiết bị Android

Bảo Ngô SoT

Búa Gỗ
Cron và Crontab
Cron là một Daemon service có nhiệm vụ thực thi lịch trình của các người dùng. Đây là một khái niệm khá quen thuộc đối với người dùng Linux. Cron đọc tập tin crontab có chứa thông tin lịch biểu và load vào bộ nhớ. Cứ mỗi phút, cron kiểm tra xem có lệnh nào cần được thực thi (hoặc có crontab nào bị thay đổi hay không). Nếu có, tiến hành thực thi câu lệnh (hoặc load lại crontab).
Crontab là tập tin có cấu trúc chứa thông tin lịch trình cần được thực thi. Mỗi người dùng (nếu có nhu cầu) đều có một và chỉ một tập tin crontab cho riêng mình. Tên của tập tin này trùng với tên người dùng sở hữu nó và những câu lệnh bên trong được thực thi theo những permission mà người dùng đó được cấp. Ví dụ tôi có một tài khoản người dùng tên là u0_231 và chỉ được cấp quyền xem, sửa, xóa nội dung thư mục /sdcard/foo/ thì tập tin crontab của tôi cũng sẽ có tên u0_231 và mọi câu lệnh trong lịch trình chỉ được phép gói gọn trong phạm vi thư mục /sdcard/foo/.

Cấu trúc của Crontab
crontab-syntax.gif


Mỗi dòng của crontab có dạng như sau:
Mã:
0     2     12     *     *     /system/bin/find /sdcard -iname '*.mp4' >> /sdcard/list.txt
Trong đó:
0: phút thứ 0
2: 2 giờ (am)
12: ngày 12
*: tất cả các tháng trong năm
*: tất cả các ngày trong tuần
/system/bin/find /sdcard -iname '*.mp4' >> /sdcard/list.txt: câu lệnh cần thực thi
Diễn giải bằng lời:
Thực thi câu lệnh /system/bin/find /sdcard -iname '*.mp4' >> /sdcard/list.txt vào lúc 02:00 am vào tất cả các ngày 12 mỗi tháng.
Một số ví dụ khác:
Mã:
0     0,12     1     */3     *     /system/bin/ping -c 192.168.0.1; ls -la >>/data/local/tmp/list.log
Thực thi 2 lệnh /system/bin/ping -c 192.168.0.1; ls -la >>/data/local/tmp/list.log vào 00:00 và 12:00 ngày 1 mỗi ba tháng một lần.
Mã:
37     23     15-21     *     1     /system/bin/rm -rf /sdcard/.temp
Xóa thư mục /sdcard/.temp vào lúc 23:37 các ngày từ 15 đến 21 các ngày thứ 2 hàng tuần.

Cron trên Android
Để sử dụng cron trên Android, yêu cầu thiết bị của bạn đã được root, cài đặt một phiên bản ổn định của busybox và một ứng dụng Terminal.
Đầu tiên, mở ứng dụng Terminal lên và thực thi câu lệnh này:
Mã:
su
  ->Lấy quyền root

echo '*     *     *     *     *     /system/bin/reboot >/dev/null 2>&1' >> /system/etc/crontab/root
  ->Ghi lịch trình vào /system/etc/crontab/root.
Lưu ý thay thế '*  *  *  *  *  /system/bin/reboot >/dev/null 2>&1' theo ý của bạn.

chmod +x /system/etc/crontab/root
  ->Cấp quyền thực thi cho /system/etc/crontab/root
Tiếp theo, thiết lập cho cron service tự khởi động:
Mã:
su

echo 'crond -b -c /system/etc/crontab' >> /system/etc/install-recovery.sh
Khởi động lại thiết bị để áp dụng. Nếu thành công, thiết bị của bạn sẽ tự khởi động lại mỗi phút một lần.
Để bổ sung thêm một lịch trình, bạn chỉ cần thực thi câu lệnh:
Mã:
su
echo '*     *     *     *     *     command' >> /system/etc/crontab/root
  ->Thay thế '*  *  *  *  *  command' theo ý của bạn

Câu lệnh này giúp chèn thêm nội dung vào tập tin /system/etc/crontab/root.
Để xóa một lịch trình, hãy xóa dòng nội dung tương ứng trong crontab.

Một ví dụ nhỏ
Lịch trình sau đây sẽ làm thiết bị tắt nguồn lúc 02:00 mỗi ngày; đồng thời xóa bộ nhớ cache của tất cả các ứng dụng mỗi 10 ngày một lần vào lúc 01:30:
Mã:
su

echo '0     2     *     *     *     /system/bin/am  start -a android.intent.action.ACTION_REQUEST_SHUTDOWN --ez KEY_CONFIRM true --activity-clear-task' >>/system/etc/crontab/root
echo '30     1     */10     *     *     /system/xbin/find /data/data  -path */cache/* -exec /system/bin rm -rf {} +' >>/system/etc/crontab/root

Chú thích:
  1. Daemon: Thuật ngữ chỉ dịch vụ chạy nền của Linux-based OS.
  2. busybox: Tập hợp các tiện ích được biên dịch thành một file duy nhất, có thể cài đặt bằng ứng dụng "Busybox Pro"
  3. Cũng giống như shell script, crontab chấp nhận range và list (ví dụ "1,2,5,9", "0-4,8-12"). Nó cũng bỏ qua dòng lệnh bắt đầu bằng ký tự # (ký tự comment).
  4. Bạn nên tìm hiểu thêm về các lệnh shell để tùy chỉnh lịch trình một cách có hiệu quả.
 
Sửa lần cuối:


Top