本意是把笔记本当闹钟用,在windows下也很容易实现, linux 下试过,效果不是特别好,不过还是总结一下。

基本命令是 rtcwake ,该命令需要根权限,所以最好是安装sudo。 因为一直用ubuntu,所以也就不用操心这个了。rtcwake 的基本使用格式如下:

rtcwake -m [type of suspend] -s [number of seconds]

其中 -m 后面的参数描述睡眠模式,支持如下几种

standby -- 该模式貌似只是关闭显示器

mem -- 该模式等效于windows下的待机,就是把内容放内存了

disk -- 该模式等效于windows下的休眠,把内容放硬盘

off -- 该模式等效于完全关机,虽然ACPI不提供官方支持,但是该模式 在许多计算机上是可以用的,具体情况得在具体机器上试验一下。

no -- 该模式并不立即待机,只是设置一个唤醒时间。在此模式下, 可以手动待机。比如设置第二天早上7:00自动唤醒,然后临睡前手动待机。

而 -s 后面的参数则表示休眠的时间(按秒计算)。

此外,还可以利用 -t 参数和 -l 参数结合 date 命令来指定特定的唤醒时间。 当使用 -t 参数时,后面的数字给出唤醒时间与00:00:00 UTC Jan 1, 1970 之间的 时间差(按秒计算)。而 -l 参数则表明系统硬件时钟为本地时间。( -u 参数 表明系统硬件时钟为UTC时间,Linux系统通常设置硬件时钟为UTC时间,然后将之 转换为本地时间。) 利用这两个参数,可以设置计算机第二天7:00am 自动唤醒, 但并不立即待机。

sudo rtcwake -m no -l -t $(date +%s -d 'tomorrow 07:00')

此处我们假定硬件时间为本地时间。

还可以利用 && 在唤醒计算机后执行某命令,例如

rtcwake -m mem -s 120 && firefox

将使计算机待机两分钟后自动唤醒并运行firefox。

结合crontab 即可实现我将笔记本电脑变成闹钟的需求。 比如在crontab中设置每天晚上十点执行

rtcwake -m no -s 28800

即可保证第二天6:00am计算机自动唤醒,此时计算机仍可继续使用, 直到被手动待机。可以在crontab中设置每天6:30am 运行媒体播放器放音乐, 那么闹钟即可实现。

需要注意的是,由于缺乏驱动,某些模式可能无法正确工作,需要在具体 机器上进行测试。

免输密码执行sudo

由于rtcwake 需要根权限,因此将之放入crontab时需要利用sudo,且 在此情形下无法人工输入密码。此时可以利用 sudo 命令的 -S 参数来实现 免输密运行rtcwake。范例如下:

echo "password" | sudo -S rtcwake -m mem -s 3600

其中 "password" 为当前用户的登录密码。执行该命令后,计算机将待机一小时。 注意此方法存在安全隐患,不过鉴于使用的是个人计算机,因此也无所谓了。

crontab 的使用

顺便说说crontab的使用。crontab用来执行周期性命令,其命令格式如下:

crontab [OPTIONS] [file]

其中OPTIONS可以为如下选项:

-e [UserName] 编辑当前(或用户UserName)日程表,如没有则创建。

-r [UserName] 删除当前(或用户UserName)日程表。

-l [UserName] 列出当前(或用户UserName)日程表。

-v [UserName] 列出当前(或用户UserName)日程命令的状态。

日程表格式如下:

f1 f2 f3 f4 f5 program

其中f1表示分钟,f2表示小时,f3表示一个月中的第几天,f4表示月份,f5表示 一周中的第几天,program表示要执行的程序。当时间的值为"*"时,表示任意 分钟,任意小时,任意天等;当时间的值为"a-b"时,表示从第a分钟到第b分钟, 从第a小时到第b小时,从第a天到第b天等;当时间的值为"*/n"时,表示每n分钟, 每n小时,每n天执行一次等;当时间的值为"a,b,c,..."时,表示第a,b,c,…… 分钟,第a,b,c,……小时,第a,b,c,……天要执行等。也可以将日程放在文件 中,利用

crontab FileName

来设定日程表。下面给出一些例子:

在一月,二月,七月和八月,每隔十天的上午6点到晚上23点,每分钟执行一次ls。 注意该命令只在每周日到每周五期间每隔两天执行,即周日,周二,周四执行。

* 6-23 */10 1,2,7,8 0-5/2 ls > /dev/null 2>&1

需要注意的是,每次执行命令后,系统会寄一封邮件给执行命令的用户, 显示执行的内容和结果。若不希望收到该邮件,在命令后加" > /dev/null 2>&1"。 此外,"%"被认为是换行符,因此若是命令行中出现"%"符号,需要用"\"进行转义。 例如:

date +%Y%m%d

需替换为

date +\%Y\%m\%d

周几和月份也可以用英文缩写来表示,例如Mon, Tue, Wed, Thu, Fri, Sat, Sun 表示周一到周日,Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec 表示一月到十二月。

输出重定向

顺便说说输出重定向问题。上面例子中的

program > /dev/null 2>&1

在很多地方都可以用到,其中">"代表将输出重新定向,例如

echo "abc123" > file.txt

表示将"abc123"这一字符串写入文件file.txt(这会导致file.txt之前的内容被抹掉, 如果只是想将该内容放在文件末尾,可用">>"代替">")。"/dev/null"代表空设备文件, 重定向到该文件的内容将消失不复存在(当然也就不会显示)。1表示stdout标准输出, "> /dev/null"等价于"1 > /dev/null"。2表示stderr标准错误,& 类似于取地址操作, 故"2>&1"意味着将2(标准错误)重定向输出到1(标准输出)输出的地址, 即标准错误输出重定向等同于标准输出。这两句合在一起,表示标准输出和标准错误 都重定向到空文件,因此不会有任何输出。

date 命令

上面用到date命令,此处稍微说一下其用法。注意上面之所以用"$()"把 date命令括起来,是一个命令替换,表示用括号内的运行结果定义一个变量, 并把这个变量放在相应位置。此命令替换也可以用反引号 "`date +%s -d 'tomorrow 07:00'`"来代替, 表示把反引号内的语句执行之后的结果放在反引号所在的位置。注意反引号在 键盘左上角esc键下方tab键上方,不要和单引号"'"相混淆。

date命令格式如下

date [-u] [-d datestr] [-s datestr] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

该命令可用于设定或显示系统时间。当用于显示时,可设定显示格式,语法为 加号后接标记,可用标记如下:

%H: 小时(00-23)

%I: 小时(01-12)

%k: 小时(0-23)

%l: 小时(1-12)

%M: 分钟(00-59)

%p: 显示本地AM或PM

%r: 直接显示时间(12小时制,hh:mm:ss [AP]M)

%s: 从1970年1月1日00:00:00 UTC到目前为止的秒数

%S: 秒(00-60)

%T: 直接显示时间(24小时制)

%X: 相当于%H:%M:%S

%a: 星期几(Sun-Sat)

%A: 星期几(Sunday-Saturday)

%b: 月份(Jan-Dec)

%B: 月份(January-December)

%c: 直接显示日期与时间

%d: 日(01-31)

%D: 直接显示日期(mm/dd/yy)

%j: 一年中的第几天(001-366)

%m: 月份(01-12)

%U: 一年中的第几周(00-53,以Sunday为一周中的第一天)

%w: 一周中的第几天(0-6)

%W: 一年中的第几周(00-53,以Monday为一周中的第一天)

%x: 直接显示日期(mm/dd/yy)

%y: 年份的最后两位数字(00.99)

%Y: 完整年份(0000-9999)

若是不以加号作为开头,则表示要设定时间,而时间格式为MMDDhhmm[[CC]YY][.ss], 其中MM为月份,DD为日,hh为小时,mm为分钟,CC为年份前两位数字, YY为年份后两位数字,ss为秒数。

date命令参数如下:

-d datestr: 显示datestr中所设定的时间

-s datestr: 将系统时间设为datestr中所设定的时间

-u: 显示目前的格林威治时间

linux 休眠定时唤醒_Linux 下定时唤醒计算机相关推荐

  1. linux 定时重启mysql_Linux下定时自动重启apache及mysql

    服务器不重启的情况下定时自动重启apache及mysql服务,其实也大同小异.具体步骤如下: 一.每天的12点及16点重启apache及mysql服务 [root@www bin]# cd /opt/ ...

  2. linux下expdp定时备份_Linux下定时任务的配置

    定时任务在日常开发中的重要性不用多说了,直接上方法. 下面以ubuntu 18.04系统为例,来看下如何配置定时任务. 下载cron root@ubuntu18-vmware:~# apt-get i ...

  3. linux php自动执行_linux下实现定时执行php脚本

    在linux中输入命令 复制代码 代码如下: crontab -e 然后使用vim的命令编辑打开的文件,输入 复制代码 代码如下: 0 * * * * /usr/bin/php -f /home/us ...

  4. linux open 头文件_linux下通过共享内存和mmap实现进程间通讯

    前言 最近在学习GNU/Linux内核,看到mmap的时候书上说: mmap/munmap接口函数是用户最常用的两个系统调用接口,无论是在用户程序中分配内存.读写大文件.链接动态库文件,还是多进程间共 ...

  5. linux删除mysql临时文件_linux下mysql自动备份数据库与自动删除临时文件_MySQL

    bitsCN.com linux下mysql自动备份数据库与自动删除临时文件 一.每日23:00自动删除临时文件 首先查看一下crontab的任务列表:crontab -l然后新建:crontab - ...

  6. linux generic什么意思_Linux下ps aux中进程状态为Ss,S+, Rs,Ds是什么意思?

    系统维护的时候难免会遇到进程的状态的查询和管理,到底什么是R,有的是S,有的还是S+呢?一直有些混沌的问题,今天细细的来总结一下: PS是用来报告系统中程序执行状况的命令这个是无可厚非的,linux进 ...

  7. linux 跑java程序_Linux下独立执行Java程序

    Linux系统里,很多时候因为种种原因,需要把java程序单独执行,而不是在web容器环境下执行,这时候很多容器资源是无法直接取到的,比如数据库连接池配置的数据源等等,还有就是程序运行需要的第三方ja ...

  8. linux恢复mysql数据库_linux下如何备份还原mysql数据库

    本文介绍了linux下如何备份与恢复mysql数据库. 数据库备份是非常重要的.如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少. 一. 用命令实现备份 My ...

  9. linux设置mysql定时任务_Linux下如何实现Mysql定时任务

    假设前提:每天晚上10点到早上5点,每10分钟定时执行存储过程. 实现方式: 第一种是利用mysql本身实现,制定event定时任务,可以借助navicat for mysql或其他数据库开发工具去做 ...

最新文章

  1. SQL 注入真是防不胜防!
  2. linux包之procps之sysctl命令
  3. 分布式部署Zabbix监控平台
  4. debug assertion failed是什么意思?_MD5是是什么?为什么很多压缩文件上都有这个东西?...
  5. 总结的比较好的vim命令
  6. 592zn rom/apk 自动签名工具_关于邮件签名证书的常见问题
  7. 成都刘女士的第一场锤子科技发布会 | 现场特写
  8. ASP.NET 3.5核心编程学习笔记(44):HTTP处理程序的编写之从数据库加载图像
  9. 成都职称计算机 报几科,成都2018年7月上职称计算机考试报名事项通知
  10. 巧用京东物流分享链接批量查询多个京东快递的物流信息
  11. word如何删除页脚页眉?
  12. linux命令 sys,用syslinux引导多个linux系统
  13. CentOS-7磁盘扩容之殇
  14. 基于费马原理推导斯涅耳定律和广义斯涅耳定律
  15. 心脑血管应该注意那些?
  16. 【前端】用百度BAE和express部署自己的node后台
  17. GPS时钟系统,GPS同步时钟系统
  18. 三星s5 安装android,三星手机怎么安装软件?三星手机安装被阻止情况的解决办法介绍...
  19. OMA DRM 1.0 – OMA Download 框架
  20. 那些95后创业者,后来都怎样了?

热门文章

  1. html里获得农历时间,用JavaScript获取当前农历日期
  2. python入门基础(完整)
  3. PSP模拟器 JPcsp
  4. python游戏开发实战:网络游戏Demo(客户端)
  5. 【100个 Unity实用技能】☀️ | 修改Unity UI控件中默认字体配置
  6. 机器学习-白板推导系列笔记(二十一)-RBM
  7. 【Unity】RotateAround和Rotate 地球围绕太阳旋转 公转和自转
  8. dedecms怎么改php版本_一键建站系列教程(宝塔面板+DeDeCMS)
  9. 【软考|软件设计师】专业英语(软考真题)(2)
  10. 青春勇前行,共“享”新未来 !北大课工场IT精英挑战赛现场宣讲辅导会启动!