bashスクリプト内からcrontabテキストテンプレートを取得する


0

crontab -e 最初はこのファイルからテキストテンプレートを選択します。 https://anonscm.debian.org/cgit/pkg-cron/pkg-cron.git/tree/crontab.c 。そのテキストブロックをプログラム的に取得したいので、テンプレートの最後にcronジョブを追加することで、手動で編集したcronファイルのようになります。

crontab -e > somefile 対話的なシェルで動けなくなるので動作しません。

crontab -l > somefile ユーザーアカウントを作成したときにcrontabファイルがないため、これも機能しません。

私は試してみました sed テキストテンプレートですが、実行中のシステムのどこにありますか。また、ホスティングプロバイダによって展開されたイメージ(Ubuntu)が存在するのでしょうか。それとも、最初にaptリポジトリにソースリポジトリを追加する必要がありますか?

たぶんより簡単な方法は export VISUAL=nano; crontab -e それからCtrl + o、Enter、Ctrl + Xを送信して、ユーザーの操作なしで新しいcrontabファイルを作成しますか?しかし、どのようにしてbashスクリプト内の対話型シェルにキーストロークを送るのですか?


Plzはあなたの問題についてもっと説明します。ユーザーが作成されたばかりで、作業用のcronファイルがない場合に何をしたいのかは不明です。 / etcにいくつかのテンプレートがあります。
MTG

私は手動で、それを見つけた anonscm.debian.org/cgit/pkg-cron/pkg-cron.git/tree/crontab.c では、このテキストブロックをプログラム的にBashスクリプトに取り込むにはどうすればよいでしょうか。 592行目から始まるテキストブロックです。
user2066480

\ nと "を削除してbashスクリプトに入れる
MTG

あなたはあなたの問題にもっと加える必要があります。たとえば、crontab行のどのパラメータを固定し、どのパラメータをカスタマイズするかを指定する必要があります。実行する日付、時間、またはプログラム
MTG

Ubuntuの場合、ソースリポジトリが選択されていない限り、ソースファイルは通常存在しません。ホスティングプロバイダからサーバーイメージを入力します。
user2066480

回答:


0

テンプレートは crontab プログラム自体、他のファイルに存在する必要はありません。

あなたがcrontabを持っていないシステムでそれを抽出するには、一時的にあなたのエディタをに設定してみてください。 touch

VISUAL=touch crontab -e
crontab -l >saved

あなたもそれを抽出することができるかもしれません stringsまたは、単にあなた自身のスクリプトにヒアドキュメントとして埋め込むだけです。


user @ vps:〜$ VISUAL = touch crontab -e userのcrontabなし - 空のものを使用する
user2066480

他の2つの提案について詳しく教えてください。
user2066480

あなたがウェブ上で見つけたソースファイルからそれをコピーするか貼り付けてください実行することで同様のことができるかもしれません strings 地元で crontab バイナリですが、出力はかなりノイズが多い傾向があります。
tripleee

...または交換する touch 簡単に sed コメントを追加するスクリプト。構文は方言によって異なりますが試してください VISUAL='sed -i \$a\\#' crontab -e
tripleee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.