山口と申します。
並さん、
> 作業領域をメモリ上に確保するのは、そんなに変わったことではないと思っていましたが……。
私も下記の環境で /tmp を tmpfs にしてますが、通常はそのようなエラーはでません。
[環境]===
* Vine Linux 3.2 (通常インストールの 3.1 からアップデート)
* /usr/bin/crontab (vixie-cron-3.0.1-87vl2)。エディタはデフォルト(vi)
* vi の実体は /usr/X11R6/bin/vim.X11-huge (vim-X11-huge-6.3.82-0vl0.1)
* /etc/fstab の /tmp エントリ
tmpfs /tmp tmpfs size=128M 0 0
* df で見た /tmp 情報
tmpfs 131072 24 131048 1% /tmp
=========
> crontab: no changes made to crontab
ただし、エディタを gedit に変更した場合に同じエラーがでました。
(cron エントリを修正/保存しなくてもエラーになります)
=========
$ export VISUAL=gedit # export EDITOR=gedit でも同じ
$ crontab -e
(gedit が起動する -> 終了させる)
crontab: no changes made to crontab
=========
原因は不明で、調査もしていません。
ただ、
(1) /tmp がメモリに取れればよいならば、上記方法で tmpfs マウントを試してみる
参考: http://www-06.ibm.com/jp/developerworks/linux/011207/j_l-fs3.html
(2) エディタを vi にこだわらないならば、他のエディタを試してみる
(最小インストールで vi の実体が何になるか、私は知りません)
のは如何でしょうか?
> 普通に vi を起動して編集作業をするときには、そういった現象は起こりません。
これは /var/spool/cron/<username> を直接編集する、という意味でしょうか?
(そうであればですが、)そのようなことは普通は行ないません。
crontab を使用したほうがよいと思います。
vi を使用したいのであれば、
=========
$ crontab -l >file # cron エントリを file に書き出す
$ vi file # vi で編集
(編集/保存する)
$ crontab < file # cron に反映
=========
のようにしては如何でしょう。
この方法は、export VISUAL=gedit で件のエラーが出る状態でも有効でした。
以上、ご参考になれば。
--
山口 和人 (Kazuto YAMAGUCHI) <kazuto-y@xxxxxxxxxxxxxxxx>