详细介绍下at命令怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详细介绍下at命令怎么用相关的知识,希望对你有一定的参考价值。

AT命令集的描述

符号 * 表明该命令的设置可用AT&Wn命令存于两个用户方案中的一个

A/ 重执行命令

重执行前一AT命令行,主要用于连接时占线,无应答或号码错误。这一命令必须单独构成一命令行并由"/"字符结束,(<Enter> 不能用于结束命令)。

+++ 退出字符 缺省:+

切换调制解调器从在线状态到命令状态,而不会中断数据连接。可以通过改变S寄存器S2的值来改变这一字符。

AT=x 写入被选的S寄存器

这一命令将数值x写入当前被选的S寄存器,一个S寄存器可由ATSn命令选择,若 x 是一个数字,所有S 寄存器将返回 OK 响应。

AT? 读被选的S寄存器

这一命令读并且显示被选的S寄存器的内容。一个S寄存器可由ATSn命令选择。

ATA 应答

它必须是命令行中的最后一条指令。调制解调器在应答方式下继续执行连接程序。在与远端调制解调器交换载波后进入连接状态,如果在由寄存器S7规定的时间内(缺省值=50秒)没有检测到载波, 调制解调器将挂机。在连接过程中,通过DTE输入的任何一个字母都将中断这一命令。

ATBn* 选择ITU-T或Bell模式 缺省=0

ATB0 选择在1200和300bps速率下通讯的ITU-T V.22和V.21协议
ATB1 选择在1200和300bps速率下通讯的Bell 212A和103协议

ATCn 载波控制缺省=1

包含这一命令只是为了保证兼容性,执行号只是返回一结果码而没有其它作用。
ATC1 正常传输载波切换

ATDn 拨号

它必须是命令行中的最后一条指令, ATD命令使调制解调器摘机后, 根据输入的参数拨号,以建立连接。
如果不带参数,调制解调器摘机后,不拨号进入发起方式。

使用标点可使命令更易读懂。圆括号,连字符和空格符会被忽略。拔号命令行中如果出现了非法字符,则该字符及其后的内容将被忽略。调制解调器允许的拨号命令长度为36个字符。

参数:0-9 A B C D * # L P T R ! @ W , ; ^ S=n
0-9 DTMF 符号0到9
A-D DTMF 符号A,B,C和D。在一些国家中不使用这些符号
* "星"号(仅用于音频拨号)
# "#"号(仅用于音频拨号)
J 为本次呼叫执行在可提供的最高速率下的MNP10链路协商(可选)
K 使本次呼叫MNP10链路协商期间电源电平可调(可选)
L 重拨上一次拨过的号码
P 脉冲拨号
T 双音频拨号
R 逆叫方式。允许调制解调器使用应答方式呼叫只能作为发起使用的调制解调 器, 必须作为命令行中的最后一个字符输入。
! 使调制解调器按照S29中规定的值挂机一段时间再摘机。
@ 使调制解调器等待5秒钟的无声回答
w 按照寄存器S7中规定的时间,在拨号前等待拨号音。
, 在拨号过程中,按照寄存器S8中规定的时间,暂停
; 拨号后返回命令状态
^ 打开呼叫音
() 被忽视,用于格式化号码串
- 被忽视,用于格式化号码串
<space> 被忽视,用于格式化号码串
S=n 用AT&Zn 命令存在地址n处的号码拨号

ATE* 命令回应 缺省:1

ATE0 关闭命令回应
ATE1 打开 命令回应

ATHn 摘挂机控制 缺省:0

ATH0 使调制解调器挂机
ATH1 当调制解调器处于挂机状态,使调制解调器摘机,返回响 OK,等待进一步的命令。

ATIn 识别

I0 报告产品代码
I1 报告ROM中预先计算的校验和
I2 计算校验和并与ROM中的校验和比较,返回"OK"或"ERROR"结果码
I3 报告固件修正
I4 报告OEM定义的识别串
I5 报告国家代码参数
I6 报告固件修正
I7 报告调制解调器数据泵类型

ATLn* 扬声器音量 缺省:2

ATL0 扬声器低音量
ATL1 扬声器低音量
ATL2 扬声器中音量
ATL3 扬声器高音量

ATMn* 扬声器控制 缺省:1

ATM0 关闭扬声器
ATM1 扬声器在呼叫建立握手阶段打开至检测到来自于远端调制解调器的载波后关闭
ATM2 扬声器持续开
ATM3 扬声器在应答期间打开。当检测到来自于远端的调制解调器的载波和拨号时关闭

ATNn* 调制握手 缺省:1

ATN0 要求调制解调器S37选择连接速率,若S37=0,则连接速率必须与发出的上一条AT命令的速率相匹配。如果所选择的速率可用不止一个通讯标准实现(如Bell212A或ITU-T V.22 速率在 1200bps)调制解调器同时参考ATB 命令选择。
ATN1 允许时使用双方调制解调器都支持的任一速率握手,使能够自动检测。在这一方式下,ATB命令被忽视,调制解调器只用ITU-T方式连接。

ATOn 进入数据在现状态 缺省:0

ATO0 使调制解调器从命令在现状态直接返回数据在线状态,不经过自动均衡。
ATO1 使调制解调器从命令在现状态返回数据在状态,经过自动均衡。

ATP* 设脉冲拨号为缺省

ATQn* 结果码显示 缺省:0

ATQ0 调制解调器向DTE发送结果码
ATQ1 禁止调制解调器向DTE发送结果码
参阅调制解调器结果码一节的详细说明

ATSn 设S寄存器n为缺省寄存器

ATSn? 读S寄存器

读S寄存器中的内容,所有的S寄存器都可以读

ATSn=x 写入S寄存器

将 x值写入指定的S寄存器n

ATT* 设音频拔号为缺省

ATVn* 结束码类型 (消息控制) 缺省:1

ATV0 发送短型 (数字型) 结果码
ATV1 发送长型 (字符型) 结果码

ATWn* 协商进程报告 缺省:0

ATW0 不报告纠错呼叫进程
ATW1 报告纠错呼叫进程
ATW2 不报告纠错呼叫进程,CONNECT xxxx指示DCE速率。

ATXn* 扩展结果码 缺省:4

ATX0 调制解调器忽视拨号音和忙音。当由盲拨建立连接时,发送CONNECT信息。
ATX1 调制解调器忽视拨号音和忙音。当由盲拨建立连接时,CONNECT XXXX 反映的是比特速率

ATX2 调制解调器忽视忙音,但在拨号前等待拨号音,如果5秒钟内检测不到拨号音,则发送NO DIAL TONE 信息,连接建立后 发送 CONNECT xxxx反映比特速率。

ATX3 调制解调器忽视拨号音,若检测到忙音,发送BUSY信息,当由盲拨建立起连接时, CONNECT XXXX 反映的是比特速率。

ATX4 如果5秒钟内检测不到拨号音,发送NO DIAL TONE 讯息,检测到忙音, 发送BUSY信息。连接建立后发送CONNECT XXXX 反映比特速率。
参考技术A AT 命令安排在特定日期和时间运行命令和程序。
要使用 AT 命令,计划服务必须已在运行中。

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername 指定远程计算机。 如果省略这个参数,
会计划在本地计算机上运行命令。
id 指定给已计划命令的识别号。
/delete 删除某个已计划的命令。如果省略 id,
计算机上所有已计划的命令都会被删除。
/yes 不需要进一步确认时,跟删除所有作业
的命令一起使用。
time 指定运行命令的时间。
/interactive 允许作业在运行时,与当时登录的用户
桌面进行交互。
/every:date[,...] 每个月或每个星期在指定的日期运行命令。
如果省略日期,则默认为在每月的本日运行。
/next:date[,...] 指定在下一个指定日期(如,下周四)运行命令。
如果省略日期,则默认为在每月的本日运行。
"command" 准备运行的 Windows NT 命令或批处理程序。
参考技术B 下面是我在网上找到的解说,我自己也不懂,楼主看看: At

  列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序。必须正在运行“计划”服务才能使用 at 命令。

  at [\\computername] [[id] [/delete] | /delete [/yes]]

  at [\\computername] time [/interactive] [/every:date[,...]| /next:date[,...]] command

  参数

  无

  如果在没有参数的情况下使用,则 at 列出已计划的命令。

  \\computername

  指定远程计算机。如果省略该参数,命令将安排在本地计算机。

  id

  指定指派给已计划命令的识别码。

  /delete

  取消已计划的命令。如果省略了 id,计算机中已计划的命令将被全部取消。

  /yes

  当删除已计划的事件时,对系统的查询强制进行肯定的回答。

  time

  指定运行命令的时间。将时间以 24 小时标记(00:00 [午夜] 到 23:59)的方式表示为小时:分钟。

  /interactive

  允许作业与在作业运行时登录用户的桌面进行交互。

  /every:date[,...]

  在每个星期或月的指定日期(例如,每个星期四,或每月的第三天)运行命令。将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。

  /next:date[,...]

  在重复出现下一天(例如,下个星期四)时,运行指定命令将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。

  command

  指定要运行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 .cmd 文件)。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定服务器和共享名的 UNC 符号,而不是远程驱动器号。如果命令不是可执行 (.exe) 文件,必须在命令前加上 cmd /c,例如:

  cmd /c dir > c:\test.out

Linux任务计划

Linux任务计划主要分为分为两种分别是一次性任务计划和周期性任务计划实现工具主要是at和crontab下面将详细介绍任务计划工具的使用。

1、at命令一次性任务计划

at命令是由atd服务提供的其主程序包是atd在CentOS6上可以使用service atd start命令来启动在CentOS7上需要使用systemctl start atd.service来启动服务。

at命令常用方法

at TIME:最简单的使用方法是at跟上时间以交互式的方法创建任务计划最后以Ctrl+d结束。

at -f FILE TIME:从指定文件中读取作业任务而不用再交互式输入

at -l:相当与atq列出系统上的所有当前用户的at队列

at -d job:相当于atrm可以删除一个指定的作业

at -c job:查看具体作业任务

at创建的任务都放在/var/spool/at目录下并且at作业任务的执行结果中如果有标准输出和错误输出则都是以邮件的形式通知给相关用户。

TIME的时间格式有:

HH:MM:当天时间的几点几分执行任务如果该时间已过则明天此时执行任务还可以使用下面定义好的时间格式

    noon:中午12点

    midnight:凌晨即零点

    teatime:下午茶时间具体为下午4点

HH:MM yyyy-mm-dd:某年某月某日的几点几分执行任务

HH:MM[am|pm] [Month] [Date]:同上也是指定具体某天的某时刻执行如04pm March 17

HH:MM tomorrow:明天的几点几分执行

now + # (minutes,hours,days,weeks):从现在时间起再加#分钟或#小时或#天或#周后执行

默认情况下所有用户都可以使用at命令创建一次性计划任务如果管理员需要控制具体那些用户可以使用at创建计划任务则可以通过黑名单拒绝或白名单允许的方式控制并且默认情况下系统自带有黑名单文件/etc/at.deny在其中填写不允许使用at命令的用户名单即可同理也可以手动创建白名单/etc/at.allow在其中填写允许用户的名单即可若黑名单和白名单同时存在则黑名单不生效只有白名单中的用户可以使用at命令创建任务。


2、batch命令一次性任务计划

batch创建的也是一次性任务计划和at的用法几乎一致但batch不需要指定时间batch会让系统自行选择空闲的时间去执行指定的任务。


3、crontab命令周期性任务计划

crontab命令需要crond守护进程提供服务其主程序包是cronie。通过crontab命令向crond提交计划任务与at不同它需要使用专用的配置文件且此文件具有固定格式。

cron任务分为两类一类是系统cron任务主要用于实现系统自身的维护而创建的周期性任务一般情况下系统任务是不需要手动添加的在安装系统时会自动创建如果需要新增系统任务的话可以手动编辑/etc/crontab文件。一类是用户cron任务根据用户需求自定义的周期性任务其创建方式可以使用crontab命令创建crontab命令创建任务时会自动检测语法错误且创建的任务配置文件会以用户名的方式自动保存在/var/spool/cron/目录下。

系统cron任务的格式为

# .---------------- minute (0 - 59)

# |   .------------- hour (0 - 23)

# |   |   .---------- day of month (1 - 31)

# |   |   |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |   |   |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |   |   |  |  |

# *  *  *  *  * user-name command to be executed

共7个字段前5个字段表示时间第6个字段表示以某用户身份运行第7个字段表示具体命令任务每一行表示一个周期性任务。

用户cron任务的格式与系统cron任务格式基本一致但用户cron任务不需要再指定以哪个用户身份运行了直接跟具体命令任务即可所以用户cron任务一共有6个字段。

cron任务的时间表示法

1)、特定值给定时间点有效值范围内的值

2)、星号*表示特定时间点上有效值范围内的所有值表示“每...”

如:每年10月1号的中午12点表示为:0 12 1 10 *

每天的晚上18点表示为:0 18 * * *

每周一的早上点表示为:0 8 * * 1

3)、离散取值

如:每天的早上点和晚上18点表示为:0 8,18 * * *

每月的1号和15号表示为:0 0 1,15 * *

每周的周一和周五表示为:0 0 * * 1,5

4)、连续取值

如:每天的8点到18点表示为:0 8-18 * * *

每月的1号到15号表示为:0 0 1-15 * *

每周的周一到周五表示为:0 0 * * 1-5

5)、在指定时间范围上定义步长

如:每3分钟表示为:*/3 * * * *

每隔3天表示为:0 0 *3 * *

6)、系统定义好的时间

@reboot :每次重启后执行一次

@yearly和annually : 都表示为每年的1月1号:0 0 1 1 *

@monthly : 每月的1号 :0 0 1 * *

@weekly : 每周的周日 :0 0 * * 0

@daily :每天的凌晨:0 0 * * *

@hourly :每小时的整点:0 * * * *


crontab命令的常见用法有:

创建用户周期性任务命令为:crontab -e

列出所有用户周期性任务命令为:crontab -l

删除所有用户周期性任务命令为:crontab -r

root用户为指定用户创建或管理cron任务:crontab -u USER


cron任务也可以通过黑名单和白名单的方式控制用户使用crontab命令创建任务的权限默认情况下系统自带有黑名单/etc/cron.deny也可以手动创建白名单/etc/cron.allow当白名单和黑名单都存在时黑名单失效只有白名单中的用户可以使用crontab命令创建任务。


需要注意:

1)建议定义cron任务时所用到命令使用绝对路径或自定义一个拥有完整路径的环境变量。

2)cron任务的运行结果的标准输出和错误都是以邮件的形式通知给相关用户如果不想以邮件的形式通知用户则可以使用重定向的方式输出给/dev/nullCOMMAND &> /dev/null。

3)对于cron任务来讲%有特殊用途如果在命令中要使用%则需要转义不过如果将%放置与单引号中也可以不用转义。


练习:

1、每周2, 4, 7备份/var/log/messages文件至/logs目录中文件名形如“messages-yyyymmdd”

#先创建/logs目录
]# mkdir /logs
#使用crontab -e创建任务
]# crontab -e
0 0 * * 2,4,7 /bin/cp /var/log/messages /logs/messages-$(date +\%Y\%m\%d) &> /dev/null

2、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中

]# crontab -e
0 */2 * * * /bin/grep "^[SM]" /proc/meminfo >> /tem/meminfo.txt


本文出自 “linux运维学习之路” 博客,请务必保留此出处http://fengliang.blog.51cto.com/3453935/1851608

以上是关于详细介绍下at命令怎么用的主要内容,如果未能解决你的问题,请参考以下文章

amtlib.dll破解补丁怎么用 详细使用方法介绍

Linux定时调度(crond和at)

请详细介绍一些命令行工具(第三方工具)

用ESP 8266模块AT指令开发无线通信系统

linux下configure命令详细介绍

Linux命令(详细介绍)