如果时间与另一个时区的时间匹配,如何 运行 一个脚本
How to run a scrip if the time is matched with a time in another time zones
目前,我正在使用云 VM 来 运行 我的代码,因此我被分配了一个位于不同时区的新 VM。我想 运行 一个 bash 脚本 运行 一个 python 脚本 7:30 下午(东部时间)。从 here I know how to run a bash script at a specific time, e.g., echo "ls -l" | at 07:00
. From here I know how to get the current time of Eastern time, e.g., TZ=America/New_York date
. Also, from here 我知道如何使用 date +%R
.
只获取时间
我是一名 Python
编码员,并尽我最大努力编写了一个 sudo 代码,显示了我作为 bash 脚本想要完成的工作:
while true
do
Now=TZ=America/New_York date +%R
if [Now -eq 7:30pm]
then
python3 myfile.py
done
你已经知道如何设置at
命令来执行命令
在指定的时间,以及如何将 EST 转换为本地时间,
你可以将它们组合起来:
echo "python3 myfile.py" | at $(date -d "19:30 EST" +%R)
当你调用at
命令时,它总是警告
“将使用 /bin/sh 执行命令”。如果我们调用 仅
bash 特定命令,例如:
echo "shopt -s globstar; ls **" | at ..
这会失败。
在我们的例子中,命令 python3 myfile.py
将 运行 与
/bin/sh
和 /bin/bash
那么你不用担心警告。
date -d STRING
将 STRING
解释为 date/time 表示
并以指定格式 +%R
.
打印转换后的 date/time
如果你想将输出发送到一个文件,你可以说:
echo "python3 myfile.py > /path/to/a/file" | at $(date -d "19:30 EST" +%R)
要输出到当前终端,首先要识别终端
使用 tty
命令:
$ tty
=> /dev/pts/0
然后将输出重定向到终端:
echo "python3 myfile.py > /dev/pts/0" | at $(date -d "19:30 EST" +%R)
目前,我正在使用云 VM 来 运行 我的代码,因此我被分配了一个位于不同时区的新 VM。我想 运行 一个 bash 脚本 运行 一个 python 脚本 7:30 下午(东部时间)。从 here I know how to run a bash script at a specific time, e.g., echo "ls -l" | at 07:00
. From here I know how to get the current time of Eastern time, e.g., TZ=America/New_York date
. Also, from here 我知道如何使用 date +%R
.
我是一名 Python
编码员,并尽我最大努力编写了一个 sudo 代码,显示了我作为 bash 脚本想要完成的工作:
while true
do
Now=TZ=America/New_York date +%R
if [Now -eq 7:30pm]
then
python3 myfile.py
done
你已经知道如何设置at
命令来执行命令
在指定的时间,以及如何将 EST 转换为本地时间,
你可以将它们组合起来:
echo "python3 myfile.py" | at $(date -d "19:30 EST" +%R)
当你调用at
命令时,它总是警告
“将使用 /bin/sh 执行命令”。如果我们调用 仅
bash 特定命令,例如:
echo "shopt -s globstar; ls **" | at ..
这会失败。
在我们的例子中,命令 python3 myfile.py
将 运行 与
/bin/sh
和 /bin/bash
那么你不用担心警告。
date -d STRING
将 STRING
解释为 date/time 表示
并以指定格式 +%R
.
如果你想将输出发送到一个文件,你可以说:
echo "python3 myfile.py > /path/to/a/file" | at $(date -d "19:30 EST" +%R)
要输出到当前终端,首先要识别终端
使用 tty
命令:
$ tty
=> /dev/pts/0
然后将输出重定向到终端:
echo "python3 myfile.py > /dev/pts/0" | at $(date -d "19:30 EST" +%R)