如何用at命令收发短信?

at命令发送和接收短信

在Linux和Unix-like系统中,at命令是一个强大的定时任务工具,通常用于安排在指定时间执行命令或脚本,通过结合短信网关或特定工具,at命令也可以用于实现短信的发送和接收功能,本文将详细介绍如何利用at命令实现短信的定时发送与接收,包括配置步骤、注意事项以及实际应用场景。

at命令发送和接收短信

at命令的基本用法

at命令的基本语法为:

at [时间] [日期]

要在下午3点执行脚本,可以输入:

at 3:00 PM

进入交互模式后,输入要执行的命令或脚本路径,按Ctrl+D保存。

使用at命令发送短信

要通过at命令发送短信,需先配置短信网关(如GSM调制解调器或云短信服务),以下是具体步骤:

  1. 安装依赖工具
    确保系统已安装at命令和短信发送工具(如gnokiigammu),以gammu为例:

    sudo apt install gammu at
  2. 配置短信网关
    编辑gammu配置文件(通常为/etc/gammurc),设置设备路径和短信中心号码:

    [gammu]
    device = /dev/ttyUSB0
    connection = at115200
  3. 编写短信发送脚本
    创建一个脚本(如send_sms.sh):

    #!/bin/bash
    gammu-smsd-inject TEXT "目标号码" -text "短信内容"

    赋予执行权限:

    at命令发送和接收短信

    chmod +x send_sms.sh
  4. 使用at命令定时发送
    在每天早上8点发送短信:

    echo "/path/to/send_sms.sh" | at 8:00 AM daily

使用at命令接收短信

接收短信需要结合gammu的监控功能和at命令的定时任务,以下是实现方法:

  1. 配置短信监控
    修改gammu配置文件,启用短信监控:

    [smsd]
    run_on_receive = /path/to/receive_sms.sh
  2. 编写接收脚本
    创建receive_sms.sh,处理接收到的短信:

    #!/bin/bash
    gammu getallsms | grep -oP '(?<=Number: )d+' > /tmp/sender.txt
    gammu getallsms | grep -oP '(?<=Text: ).*' > /tmp/message.txt
  3. 使用at命令定时处理
    每分钟检查一次新短信:

    */1 * * * * /path/to/receive_sms.sh

注意事项

  1. 权限问题
    确保at命令和短信工具具有执行权限,脚本需以root用户运行(若涉及设备访问)。

  2. 时间格式
    at命令支持多种时间格式(如now + 1 hour3:00 PM tomorrow),需根据需求灵活使用。

  3. 日志记录
    建议在脚本中添加日志功能,便于排查问题:

    at命令发送和接收短信

    echo "$(date): 短信发送成功" >> /var/log/sms.log

应用场景

  1. 定时提醒
    如会议通知、生日祝福等,提前通过at命令发送短信。

  2. 自动化监控
    结合系统监控工具,在异常发生时触发短信报警。

相关问答FAQs

Q1: 如何验证at命令是否成功发送短信?
A1: 可以通过以下方式验证:

  1. 检查/var/log/sysloggammu日志,确认短信是否被调用。
  2. 使用atq命令查看待执行任务,确认任务是否在队列中。
  3. 直接运行短信脚本(./send_sms.sh),观察是否立即生效。

Q2: at命令接收短信时如何避免重复处理?
A2: 可以在接收脚本中添加去重逻辑,

  1. 记录已处理短信的ID或时间戳到文件。
  2. 每次处理前检查文件,避免重复执行。
    示例代码:

    #!/bin/bash
    last_id=$(cat /tmp/last_sms_id.txt 2>/dev/null)
    current_id=$(gammu getallsms | grep -oP '(?<=Index: )d+')
    if [ "$current_id" != "$last_id" ]; then
     gammu getallsms | grep -oP '(?<=Text: ).*' > /tmp/message.txt
     echo "$current_id" > /tmp/last_sms_id.txt
    fi

通过合理配置和使用at命令,可以实现高效的短信自动化管理,适用于个人或企业场景。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/71606.html

(0)
酷番叔酷番叔
上一篇 2025年12月14日 06:27
下一篇 2025年12月14日 06:31

相关推荐

  • 安全咨询如何有效落地赋能企业构建主动式安全管理体系并创造价值?

    在数字化浪潮席卷全球的背景下,企业运营高度依赖信息系统,网络攻击、数据泄露、合规风险等安全问题日益凸显,安全咨询作为专业化的安全服务,正成为企业构建主动防御体系、提升安全能力的关键支撑,安全咨询并非简单的技术方案输出,而是通过系统化方法论,结合企业业务场景与战略目标,从风险识别、策略制定、方案设计到落地实施、持……

    2025年10月25日
    6900
  • 安全内核坏了怎么修?系统崩溃后如何重建内核?

    当计算机或智能设备出现频繁蓝屏、系统崩溃、无法启动或安全功能异常时,很可能是安全内核出现了故障,安全内核作为操作系统的核心防护层,负责权限管理、进程隔离和系统防护等关键功能,其损坏会直接威胁设备稳定性和数据安全,修复安全内核需要遵循科学的方法,避免盲目操作导致问题恶化,安全内核损坏的常见原因安全内核损坏通常由以……

    2025年12月3日
    4900
  • mac vi保存退出命令是什么?

    在Mac系统中,vi(或其增强版vim)是一款经典的命令行文本编辑器,广泛应用于服务器管理、脚本编写等场景,掌握vi的保存退出命令是使用vi的基础操作,但由于vi的模式化设计(命令模式、插入模式、末行模式),新手常对保存退出的逻辑感到困惑,本文将详细解析Mac vi中保存退出的各类命令、适用场景及常见问题,帮助……

    2025年8月29日
    7300
  • 电脑输入命令怎么操作?新手详细步骤与方法解析

    电脑输入命令是操作系统提供的一种高效交互方式,通过特定的文本指令控制计算机执行操作,相比图形界面更直接、灵活,尤其适合系统管理、自动化任务等场景,不同操作系统的命令行工具和命令语法略有差异,但核心逻辑相通,以下从基础操作到进阶技巧,详细说明如何在电脑中输入命令,进入命令行界面输入命令的前提是打开命令行工具(不同……

    2025年9月8日
    7800
  • 安全保障方案设计如何才算好?

    安全保障方案设计是组织和个人在数字化时代应对各类风险的核心工作,其目标是通过系统化的规划与实施,预防、识别和化解潜在威胁,确保人员、资产、数据及业务运营的连续性与安全性,一个完善的安全保障方案不仅需要技术层面的防护,还需结合管理策略、人员意识及应急响应机制,形成全方位、多层次的安全防护体系,安全保障方案设计的基……

    2025年12月1日
    4100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信