我們在Bash中的時間計算有一個小問題。在bash中的時間計算
讓我們稍微解釋一下這裏的情況。
我們從FTP服務器每隔5分鐘下載一個文件。該文件包含有關此文件中數據的時間信息。但是文件的時間格式是UTC,而我們的本地時間是UTC + 2。這些文件包含有關當地時間過去5分鐘的信息。現在我們有以下代碼:
TIMESTAMP=$(echo "$(TZ=UTC date "+%Y%m%d%H%M") - ($(date +%M)%5)-5" | bc)
這樣可以很好地工作幾個小時,但55分鐘後就成了問題。所以我們不能在55分鐘,60分鐘的時間內獲得文件。
所以,如果本地時間爲:19:47 隨着時間17:40(UTC)的文件在服務器上可用19:45當地時間
的時間可使用這些文件在服務器上不恆太糟糕了...... 19:00,19:05,19:10等等,但有時該文件是一分鐘後....
這是我的crontab文件:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/kbroeren/cronscripts
*/1 * * * * /home/kbroeren/cronscripts/radar >> /home/kbroeren/radar_log.txt 2>&1
*/5 * * * * sudo /usr/bin/python /home/kbroeren/cronscripts/radar_plot.py >>/home/kbroeren/out.txt 2>&1
有沒有更好更正確的方法來做到這一點?
我不會試圖去猜測服務器的文件名是什麼。我會查找服務器上的最新文件,看看你是否已經下載了它。另外,您應該期望本地計算機上的時鐘可能與遠程服務器上的時鐘不同步。 –