指定した時間に実行されるクローンジョブを設定したいと思います。私は 01 * * * * root run-parts /etc/cron.hourly
何をすべきかを知っています。しかし、Unixタイムスタンプを使ってジョブを直接実行する方法はありますか?
答え1
私はat
それが仕事を完了すると思います。特定の時間に一度実行されます。
詳細は:http://www.computerhope.com/unix/uat.htm
at
date
秒はサポートされていないため、次のコマンドで使用する必要があります。
at `date -d @<timestamp> +"%I:%M %p %b %d"`
答え2
私の場合は、node.jsを使用するときに特定のタイムスタンプでジョブをスケジュールしたい特定の目的のためです。私が使ったアプローチはとても素朴でした。私はそれがあなたに役立つことを願っています。
application.js
const moment = require('moment');
const shelljs = require('shelljs');
const time = moment();
const getCrontTime = (time) => {
time = `${time.minutes()+1} ${time.hour()} ${time.date()} ${time.month()+1} *`;
shelljs.exec(`sh excutioner.sh "${time}"`);
}
getCrontTime(time);
Executioner.sh(このクローンジョブの以前の繰り返しも削除する必要があるため、4行目)
#!/bin/bash
time=$1
crontab -l | grep -v '/usr/bin/node /home/awpshun/POCs/crontab/download.js > /home/awpshun/POCs/crontab/down.log' | crontab -
crontab -l > cron_bkp
echo $time /usr/bin/node $PWD/download.js
whoami
echo "$time node $PWD/download.js > $PWD/down.log" >> cron_bkp
crontab cron_bkp
download.js($ PWD値を確認)
const shelljs = require('shelljs');
shelljs.exec('echo $PWD $whoami')
shelljs.exec(`curl https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png --output /home/awpshun/POCs/crontab/file.png`)