matthew@matthew-pc:~$ crontab -l
[...]
@reboot 1 5 * sleep 10s && export DISPLAY=:0 && xdg-open ~/@/Testing.jpg
“Testing.jpg”在 5 月 1 日 Linux 启动时未打开。
如何使用 Crontab 在特定日期(例如 5 月 2 日)Linux 启动时打开文件?
答案1
您不能将时间表与@reboot
-混合使用cron
,不支持这一点。
如果您想在特定日期的 Linux 启动时打开文件,请执行以下操作:
编写一个脚本 (chkdate.sh),检查日期是否与(例如)5 月 2 日相匹配
使用
@reboot
规范cron
来运行chkdate.sh
[编辑:re
chkdate.sh
,一个用于检查今天日期与特定日期的脚本]:
你可以写一个bash
脚本来完成此任务。date
中的函数将bash
返回今天的日期。有了这个,您只需根据特定日期测试今天的日期,并采取所需的操作。这是解决这个问题的一种方法:
注意:我使用基于 Debian 的 Linux 发行版,因此以下内容反映了这一点。您的系统可能会有所不同。
- 使用该
date
功能:打开一个“终端窗口”,或者简单地获取系统上的命令提示符。在命令提示符下($
在我的例子中),输入date +%Y-%m-%d
:
$ date +%Y-%m-%d
2019-05-02
$
- 指定
date
所需的格式:date
可以提供多种不同格式的输出。在上面的示例中,格式为“年-月-日”。如果您只对月份和日期感兴趣,那么命令将是date +%m-%d
:
$ date +%m-%d
05-02
$
- 无论您需要什么格式,您都必须学会使用系统文档。要了解如何指示
date
以您需要的格式提供其输出,您需要阅读其文档:
$ man date
...
q
$
请注意,单个字符q
将关闭man
页面。
- 一旦决定了
date
输出的格式,您就可以开始编写脚本了chkdate.sh
。让我们创建该文件,并在易于使用的文本编辑器中打开它:
$ nano ~/chkdate.sh
...
您可以开始输入脚本;例如:
#!/bin/bash
SOMEDAY="05-02"
TODAY=`date +%m-%d`
if [ $TODAY == $SOMEDAY ]
then
echo "Today is the day!"
else
echo "Today is NOT the day."
fi
现在,保存文件^o
并退出nano
编辑器^x
。
- 您需要设置文件权限以使脚本可执行,然后可以运行它:
$ chmod 755 ~/chkdate.sh
$ ~/chkdate.sh
Today is the day!
$
因为今天是 5 月 2日,所以语句then
的条件if
是执行 ( echo "Today is the day!"
)。在一年中的任何其他一天,该else
声明都将被执行。另请注意,没有必要有一个else
条件 - 如果您不需要它,您可以简单地忽略它。
- 假设执行此命令,您可以修改脚本以将
echo ...
命令替换为您要使用的命令。