本文目录导读:

- Linux/macOS 使用
cron定时任务 - Windows 使用 PowerShell + Task Scheduler
- Python 跨平台方案
- JavaScript/Node.js 方案
- 配置文件管理闹钟
- 手机端方案
Linux/macOS 使用 cron 定时任务
基础语法
# 格式:分钟 小时 日 月 星期 命令 # 每天 8:00 执行 0 8 * * * /path/to/script.sh # 每天 12:30 和 18:30 执行 30 12,18 * * * /path/to/script.sh # 工作日 9:00 和 13:00 0 9,13 * * 1-5 /path/to/script.sh
创建多组闹钟示例
# 编辑 crontab crontab -e # 添加多个闹钟任务 # 早上 7:00 起床闹钟 0 7 * * * /usr/bin/mpg123 /path/to/alarm.mp3 # 中午 12:00 午餐提醒 0 12 * * * notify-send "午餐时间" "该吃午饭了" # 下午 15:00 休息提醒 0 15 * * * notify-send "休息时间" "起来活动一下" # 晚上 22:00 睡觉提醒 0 22 * * * /home/user/scripts/sleep_reminder.sh
Windows 使用 PowerShell + Task Scheduler
PowerShell 脚本创建多个闹钟
# Schedule-Alarms.ps1
function New-Alarm {
param(
[string]$Time,
[string]$Name,
[string]$Message
)
$action = New-ScheduledTaskAction -Execute "powershell.exe" `
-Argument "-WindowStyle Hidden -Command `"Write-Host '$Message'; [System.Media.SystemSounds]::Asterisk.Play(); Start-Sleep 5`""
$trigger = New-ScheduledTaskTrigger -Daily -At $Time
Register-ScheduledTask -TaskName "Alarm_$Name" -Action $action -Trigger $trigger -Force
}
# 创建多组闹钟
New-Alarm -Time "07:00" -Name "WakeUp" -Message "起床时间到了!"
New-Alarm -Time "12:00" -Name "Lunch" -Message "午餐时间,休息一下"
New-Alarm -Time "15:00" -Name "Break" -Message "休息15分钟"
New-Alarm -Time "22:00" -Name "Sleep" -Message "准备睡觉"
Python 跨平台方案
使用 schedule 库
import schedule
import time
from datetime import datetime
import subprocess
def alarm_1():
print(f"[{datetime.now()}] 闹钟1:起床时间!")
subprocess.run(['notify-send', '起床闹钟', '新的一天开始了'])
def alarm_2():
print(f"[{datetime.now()}] 闹钟2:午餐时间")
subprocess.run(['notify-send', '午餐提醒', '该吃午饭了'])
def alarm_3():
print(f"[{datetime.now()}] 闹钟3:休息时间")
subprocess.run(['notify-send', '休息提醒', '起来活动一下'])
# 设置多组闹钟
schedule.every().day.at("07:00").do(alarm_1)
schedule.every().day.at("12:00").do(alarm_2)
schedule.every().day.at("15:00").do(alarm_3)
# 也可以设置工作日闹钟
# schedule.every().monday.at("08:00").do(alarm_1)
# schedule.every().wednesday.at("18:30").do(alarm_2)
while True:
schedule.run_pending()
time.sleep(1)
使用 apscheduler 高级调度
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.cron import CronTrigger
from datetime import datetime
scheduler = BlockingScheduler()
def alarm_task(name):
print(f"[{datetime.now()}] {name} 闹钟触发!")
# 添加多个闹钟
scheduler.add_job(
alarm_task,
CronTrigger(hour=7, minute=0),
args=['起床'] # 传递参数
)
scheduler.add_job(
alarm_task,
CronTrigger(hour=12, minute=30, day_of_week='mon-fri'), # 工作日中午
args=['午餐']
)
scheduler.add_job(
alarm_task,
CronTrigger(hour=22, minute=0),
args=['睡觉']
)
try:
scheduler.start()
except KeyboardInterrupt:
print("闹钟系统已停止")
JavaScript/Node.js 方案
使用 node-schedule 库
const schedule = require('node-schedule');
const notifier = require('node-notifier');
const path = require('path');
// 闹钟函数
function createAlarm(name, time, message) {
return schedule.scheduleJob(time, function() {
console.log(`${new Date().toLocaleString()} - ${name}: ${message}`);
// 桌面通知
notifier.notify({
title: `⏰ ${name}`,
message: message,
icon: path.join(__dirname, 'alarm-icon.png'),
sound: true,
wait: true
});
});
}
// 创建多组闹钟
const alarms = [
createAlarm('起床', '0 7 * * *', '新的一天开始了!'),
createAlarm('午餐', '0 12 * * 1-5', '记得吃午饭'),
createAlarm('休息', '0 15 * * 1-5', '来杯咖啡休息一下'),
createAlarm('下班', '0 18 * * 1-5', '下班时间到了'),
createAlarm('睡觉', '0 23 * * *', '该睡觉了,晚安')
];
console.log('多组闹钟已启动,共', alarms.length, '个闹钟');
// 列出所有闹钟
console.log('\n闹钟列表:');
schedule.scheduledJobs.forEach((job, name) => {
console.log(`- ${name}: ${job.nextInvocation()}`);
});
配置文件管理闹钟
YAML 配置文件 (alarms.yaml)
alarms:
- name: "早起"
time: "07:00"
days: "all" # all, weekdays, weekends
message: "起床时间到了"
sound: "gentle.mp3"
- name: "午餐"
time: "12:00"
days: "weekdays"
message: "午餐时间"
sound: "lunch.mp3"
- name: "会议"
time: "14:30"
days: "mon,wed,fri"
message: "团队会议"
sound: "meeting.mp3"
Python 读取配置
import yaml
from datetime import datetime
import schedule
import time
class AlarmManager:
def __init__(self, config_file):
with open(config_file, 'r') as f:
self.config = yaml.safe_load(f)
def setup_alarms(self):
for alarm in self.config['alarms']:
self.schedule_alarm(alarm)
def schedule_alarm(self, alarm_config):
time_str = alarm_config['time']
# 处理不同的日期设置
if alarm_config['days'] == 'all':
schedule.every().day.at(time_str).do(self.trigger_alarm, alarm_config)
elif alarm_config['days'] == 'weekdays':
schedule.every().monday.at(time_str).do(self.trigger_alarm, alarm_config)
schedule.every().tuesday.at(time_str).do(self.trigger_alarm, alarm_config)
# ... 其他工作日
def trigger_alarm(self, config):
print(f"[{datetime.now()}] {config['name']}: {config['message']}")
# 触发声音通知
if __name__ == "__main__":
manager = AlarmManager('alarms.yaml')
manager.setup_alarms()
while True:
schedule.run_pending()
time.sleep(1)
手机端方案
Android Termux + Python
# 安装 Termux 后
pkg install python
pip install schedule
# alarm.py
import schedule
import time
import subprocess
def alarm_with_vibrate():
subprocess.run(['termux-vibrate', '-d', '1000'])
subprocess.run(['termux-tts-speak', '闹钟响了!'])
schedule.every().day.at("07:00").do(alarm_with_vibrate)
schedule.every().day.at("12:00").do(alarm_with_vibrate)
while True:
schedule.run_pending()
time.sleep(1)
选择哪种方案取决于你的需求:
- 服务器/系统级:cron (Linux) 或 Task Scheduler (Windows)
- 跨平台脚本:Python + schedule 或 apscheduler
- Web 应用:Node.js + node-schedule
- 手机端:Termux + Python
- 需要配置文件:使用 YAML/CONFIG + 脚本读取
建议从简单的方案开始,根据实际需求逐步增加功能。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播