ubuntuの – どのように特定のユーザーとしてcronジョブを実行するには?

cron cronjob permissions security ubuntu

私のマシン上で特定のユーザーとしてcronジョブを実行したいと思います。cronジョブを実行するユーザーを指定するにはどうすればいいですか?

cronジョブは、サーバー上で実行されます(Ubuntu 10.0.4上で実行されています)。ユーザー」は、特定のサーバーサイドのタスクを実行するために特別に作成されたユーザーです。これらの「ユーザー」には以下のような共通点があります

  • システムにログオンできません
  • 特定のフォルダ/ファイルへのアクセスが制限されている

  73  morpheous  2010-08-02


ベストアンサー

ログインしてそのユーザのcrontabに追加することができないと仮定して、/etc/cron.dにファイルを置く。通常のcronjobのような形式にして、余分なフィールドを追加します。実行するコマンドの前とタイミングの後には、ユーザーを記述します。すでにあなたのシステム上に例があるはずです

Example:

#<timing>   <user> <command>
11 * * * *  root   /usr/lib/command

86  Daenyth  2010-08-02


rootとして、user1のcronを編集します

crontab -u user1 -e

でコマンドを起動することもできます

su user1 -c foo bar

しかし、多くの場合、rootで起動するとスクリプト自体が自分のアクセスを減らしてしまいます

45  Eric Darchis  2010-08-02


数週間前から探していたのですが、ついにこれが効きました

user1としてスクリプトを作成します

ssh user1@ipaddress
nano hourly-event.sh

コマンドを入力する

#!/bin/bash
echo "YAY it works" > /home/user1/yay.txt

実行可能にする

chmod 755 hourly-event.sh

user1のcrontabを編集します

sudo crontab -u user1 -e

下部にスクリプトを指す線を入れてください

# m h  dom mon dow   command
*   *   *   *   *    bash ./hourly-event.sh

exit – 変更を保存 (保存時に/tmpディレクトリが表示されます…大丈夫です)

刻一刻と変わるのを待つ

新しく作成したyay.txtを開きます

nano /home/user1/yay.txt

これでナノウィンドウが開いて、「YAY it works」が最初の行として表示されているはずです

で、新しく作成したcrontabのuser1のエントリを確認することもできます。/var/spool/cron/crontabs/user1

PEACE

1  user220364  2013-04-27


特に rbenv, nvm を使用している場合は、このように、ユーザが自分の環境をロードしたいと思うことがあるでしょう

0 0 * * * source ~/.bash_profile && cd /opt/app/current && bundle exec ruby ...

(ここではsource ~/.bash_profileコマンドでRubyやNodeの環境を読み込みます)

0  Siwei Shen 申思维  2018-11-18


タイトルとURLをコピーしました