TOMODORO cronjob

Đăng bởi Lưu Đại vào ngày 18-12-2022

TOMODORO là gì? 

Tomodoro là một kĩ thuật quản lý thời gian nhằm giúp con người đạt được sự tập trung nhất định trong công việc. Vào năm 1980 Francess Cirillo một sinh viên (sau này là CEO của một công ty phần mềm) đã nhận thấy sự tập trung thường giảm mạnh sau 1 khoảng thời gian và khi đó ông thấy rất khó để giải quyết các bài tập. Sau đó ông đưa ra giải pháp nghỉ ngắn giữa các phiên làm việc thay vì làm việc một thời gian dài liên tục. Đó chính là Tomodoro. Nguyên lý của phương pháp này là tập trung cao độ trong vòng 25 phút và nghỉ ngắn trong 5 phút. Sau đó lại bắt đầu 1 phiên làm việc mới xoay vòng mỗi phiên này được gọi là 1 Pomodoro. 

Ý tưởng triển khai Tomodoro bằng cronjob 

Để cho đơn giản giả sử phiên làm việc của mình luôn bắt đầu vào đầu giờ hoặc phút thứ 30 của mỗi giờ. VD: 8h00, 8h30, 9h00, 9h30, …
Như vậy ta sẽ tạo cron job để thông báo thời gian nghỉ (phút thứ 25 và 55) và làm việc (phút thứ 00 và 30) cho mỗi Tomodoro. 

Cần cài đặt gì để tạo cronjob chạy Tomodoro trên Linux 

- Đầu tiên là kiến thức về cronjob trên Linux: Cron là một chương trình lập lịch được cài sẵn trên Ubuntu ( hoặc ít nhất là máy mình =))) ). Trong trường hợp bạn không chắc máy của mình đã cài cron chưa thì có thể chạy lệnh dpkg - cron nếu như máy của bạn chưa cài cron thì có thể cài theo hướng dẫn dưới đây Link - Tiếp theo bạn cần một phần mềm để gửi thông báo nhắc nhở cho bạn trong những mốc thời gian làm việc và nghỉ ngơi. Trên ubuntu mình sử dụng notify-send. Để cài đặt notify-send (skip bước này nếu máy bạn đã có phần mềm này) bạn chạy những câu lệnh dưới đây

sudo apt-get update 
sudo apt-get install notify-osd
Sau khi cài xong chạy thử lệnh notify-send Title “Message” nếu phần mềm hoạt động bạn sẽ nhìn thấy popup thông báo trên màn hình máy tinh. Vậy là xong phần chuẩn bị giờ tới phần thực hiện. 

Thực hiện

Trước tiên ta có 2 câu lệnh script cần thực thi một lệnh để notify khi nghỉ mình tạo file này ở ~/scripts/notify_rest_tomodoro.sh và #!/bin/bash

userid=$(id -u)
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$userid/bus"
export DBUS_SESSION_BUS_ADDRESS
/usr/bin/notify-send TOMODORO "Resting time"một lệnh notify khi làm việc trở lại ~/scripts/notify_work_tomodoro.sh 
Để có thể thêm job cho cronjob ta cần phải sửa một file crontabs. File này nằm ở /var/spool/cron/crontabs tuy nhiên cron đã có sẵn 1 lệnh cho việc chỉnh sửa file crontabs mà bạn không cần phải nhớ thư mục dài ngoằng của nó. Bạn chạy lệnh crontab -e lần đầu tiên nó sẽ hỏi cần sử dụng editor nào thì chọn editor mà bạn thích. Cá nhân mình quen sử dụng vim. Sau khi vào crontabs rồi bạn paste 2 câu lệnh sau vào: 
#!/bin/bash

userid=$(id -u)
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$userid/bus"
export DBUS_SESSION_BUS_ADDRESS
/usr/bin/notify-send TOMODORO "Working time"

~/scripts/notify_work_tomodoro.sh

#!/bin/bash

userid=$(id -u)
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$userid/bus"
export DBUS_SESSION_BUS_ADDRESS
/usr/bin/notify-send TOMODORO "Resting time" 
~/scripts/notify_rest_tomodoro.sh

25,55 * * * * bash /home/luudai/scripts/notify_rest_tomodoro.sh
0,30 * * * * bash /home/luudai/scripts/notify_work_tomodoro.sh
crontabs

Cuối cùng chạy lệnh sudo service cron start
Nếu muốn cron chạy tự động mỗi lần restart máy thì chạy sudo systemctl enable cron