crontab:「一時的なcrontabはもはやあなたのものではありません。」

crontab:「一時的なcrontabはもはやあなたのものではありません。」

Linuxmint 18 Cinnamon 64ビットからLinuxmint 17.3 Cinnamon 64ビットに戻り、クローンジョブを作成できなくなりました。別々のルート(/)およびホーム(/home/my-user-name)パーティションがあり、17.3をインストールしたときにホームパーティションを変更せずに残しました。

クローンジョブの作成にはいくつかの困難があり、gnome-schedulerをインストールしてこのようにクローンジョブを作成してみました。次の警告ダイアログが表示されます。

「警告:実行されたジョブのジョブディレクトリ」

メッセージ内容は

「ジョブが実行されるジョブディレクトリに関する注意事項:繰り返しジョブはホームディレクトリで実行されます。」

[OK] をクリックすると、タスクが端末に次のように表示されます。

$ crontab -l
* * * * * env DISPLAY=:0 /home/my-user-name/wallpaper_changer.sh >/dev/null 2>&1 # JOB_ID_4

私の壁紙は毎瞬変わりません。スクリプトはコマンドラインで正しく実行され、出力は生成されません。このスクリプトの権限は8進数744です。これらはすべてMint 18でうまく動作しますが、スクリプトは1日1回だけ実行しました。テスト目的で1分ごとに実行するように設定しました。

一般的なcronジョブの編集方法を試してみると

$ crontab -e
Temporary crontab no longer owned by you.
Error while editing crontab

次に、コメント行で埋められた通常のcrontabテンプレートの代わりに空のNanoバッファを取得します。 /tmp/crontab.lmuwIe/crontab ファイルにナノバッファを書き込もうとすると、次のエラー メッセージが表示されます。

[/tmp/lmuwIe/crontabへの書き込み中にエラーが発生しました:権限が拒否されました。]

ついに、

$ ls -l /usr/bin/crontab
-rwsr-xr-x 1 root crontab 35984 Feb  9  2013 /usr/bin/crontab

クローンジョブを再生成できますか?

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

@Gilles まあ、私は長い道のりに来ました。 cronを再インストールして、奇妙なエラーをすべて削除しました。今、すべてが私が使用したときと同じようにうまくいきます。

$ crontab -e

とは別に長年使ってきたスクリプトは動作しません。

しかし、他のスクリプトは実行されるので迷子になりました。

これが私が今持っているものです:

$ crontab -l
* * * * * env DISPLAY=:0.0 /home/my-user-name/wallpaper_changer.sh
* * * * * date >> /home/my-user-name/crontest.txt

(クローン操作前に20行以上のコメントは含まれていません。)

日付操作は正常に実行されますが、wallpaper_changer.sh 操作は何もしません。私は長年この方法を使用してきましたが、今は動作しません。スクリプトはコマンドラインとcronで正しく実行されます。

$ ls -l /home/my-user-name/wallpaper_changer.sh
-rwxr-xr-x 1 my-user-name my-user-name 694 Jun  2 14:30 /home/my-user-name/wallpaper_changer.sh

$ echo $DISPLAY
:0.0

どうなりますか?

答え1

crontabバイナリの権限を編集し、新しくインストールしたときの権限にリセットする必要があります。

機能しない権限:

ls -la /usr/bin/crontab
-rwsr-xr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

rootとして実行されるか、sudoを使用して実行されるアクション:

chmod g+s /usr/bin/crontab
chmod u-s /usr/bin/crontab

作業権限:

ls -la /usr/bin/crontab
-rwxr-sr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

新しいジョブインストールからインポートされたジョブ権限は、インストール中に設定されました。

後でなぜ変わったのか分からないですね。

答え2

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

帰属が/var/spool/cron/crontabs/my-user-name間違っています。あなたが所有者でなければなりません。これは、cronがファイルを上書きできない理由を説明します。また、ファイルは通常crontabグループに属していますが、それは重要ではないと思います。

以下を実行してこの問題を解決できます。

sudo chown my-user-name /var/spool/cron/crontabs/my-user-name

この問題の原因は何か、システムの劣化とどのような関係があるのか​​わかりません。根本的な問題は他の問題につながる可能性があります。

関連情報