Armadilloフォーラム

abos上でのcron実行について

rikuya-h

2024年11月27日 11時01分

お世話になっております。
長谷部です。

G4 の armadillo base os上でcron実行を行いたく以下記事を参考に進めているのですが上手くいきません。
https://armadillo.atmark-techno.com/forum/armadillo/22538
https://armadillo.atmark-techno.com/forum/armadillo/14960

定期実行させたい内容はarmadillo上のキャッシュを定期的に解放させたく
"/etc/periodic/15min/"配下に"cache_clear"という実行ファイルを作成し
中に"echo 1 > /proc/sys/vm/drop_caches"を記述しています。
rc-update add crond && persist_file -v /etc/runlevels/default/crond
上記にて有効にし、

armadillo:~# service crond status
 * status: started

crond起動されている事も確認済みですが、動きません。

ご教示頂けると助かります。

コメント

at_shota.shimoyama

2024年11月27日 11時59分

アットマークテクノの下山です。

[armadillo ~]# crontab -e
 
# do daily/weekly/monthly maintenance
# min   hour    day     month   weekday command
*/15    *       *       *       *       run-parts /etc/periodic/15min
0       *       *       *       *       run-parts /etc/periodic/hourly
0       2       *       *       *       run-parts /etc/periodic/daily
0       3       *       *       6       run-parts /etc/periodic/weekly
0       5       1       *       *       run-parts /etc/periodic/monthly

で確認できるように、15分毎に行っている処理はrun-partsの実行です。

直接実行してみると、

[armadillo ~]# run-parts /etc/periodic/15min
run-parts: can't execute '/etc/periodic/15min/cache_clear': Exec format error

のようなエラーが発生しているため、動作を確認できないものと思われます。

このエラーで調べてみたところ、run-partsではスクリプト側にShebangを書く必要があるようですので、
/etc/periodic/15min/cache_clearには、

#!/bin/sh
echo 1 > /proc/sys/vm/drop_caches

のように#!/bin/shを先頭に追加してみていただけますでしょうか?

私の方ではこれを追加して上記の直接実行をやってみたところ、エラーは発生しませんでした。

よろしくお願いします。

ご回答ありがとうございます。

> このエラーで調べてみたところ、run-partsではスクリプト側にShebangを書く必要があるようですので、
> /etc/periodic/15min/cache_clearには、
>

> #!/bin/sh
> echo 1 > /proc/sys/vm/drop_caches
> 

> のように#!/bin/shを先頭に追加してみていただけますでしょうか?
>
> 私の方ではこれを追加して上記の直接実行をやってみたところ、エラーは発生しませんでした。

上記にて正しく動作しました。
ご丁寧にありがとうございました。