bashの「レントジョブ」とは何を意味するのでしょうか

投稿者: Anonymous bashでジョブについて勉強中です。help コマンドでは下記のように出ますが、 $ help fg fg: fg [job_spec] ジョブをフォアグランドにします。 JOB_SPEC で識別されたジョブをフォアグランドにして、現在のジョブにします。 もし JOB_SPEC が存在しない場合、シェルが現在のレントジョブとして考えている ものが利用されます。 (以下省略) 文中の「レントジョブ」という用語がわかりません。ネット検索しても出てきません。どなたか意味を教えていただけないでしょうか。 bashのバージョンは GNU bash, バージョン 5.0.3(1)-release (x86_64-pc-linux-gnu) です。 解決 $ LC_ALL=C help fg とすると英語でヘルプが表示されますが、これによると If JOB_SPEC is not present, the shell’s notion of the current job is used. となっていますのでオイラ流に翻訳すると「シェルがカレントジョブと思っているものが使われます」となり、単純に翻訳の際の誤記ですね。 s/レント/カレント/ 回答者: Anonymous

¿Cómo obtener en una variable el código de retorno de una ejecución de un comando o funcion?

publicado por: Anonymous Tengo un script, que llama a la ejecución de otro script (que yo no he creado) y quiero recoger en una variable el código de retorno que devuelve el segundo script (ya sea mediante exit o f_control) al que estoy llamando desde el mío. ${CK_PATH_SCRT}/kids5mail_cct.sh “${ENTORNO}” “${PERFIL}” “${NOMBRE_FICHERO}” CODRET=? echo $CODRET Lo…(Continue Reading)

bash で,unzip の結果作られたファイルの一括削除

投稿者: Anonymous このような状況で $ pwd ~/Desktop $ ls myzip* myzip.zip ~/Desktop/myzip/ 下に解凍されることを期待して間違ってこうしてしまうことがあります: $ unzip myzip.zip 結果 $ tree ├── extracted_file0 ├── extracted_file1 . … ├── myzip.zip … # 元から ~/Desktop にあったファイルたちに混ざってしまっている 大惨事となってしまったので,元の状況に戻したい. 既存のファイルがすでに上書きされてしまった場合は無視できるとして,どのようにすれば unzip で意図せずディレクトリ上にばら撒かれてしまったファイル群を消し去ることができるでしょうか. なお, すでに試みたこととしては, unzip -l myzip.zip で次のような書式のテキストが得られることを知り Archive: myzip.zip Length Date Time Name ——— ———- —– —- 119 2015-01-02 16:05 hashas.hs…(Continue Reading)

Lanzar automáticamente un programa en python cuando se cierra por fallo

publicado por: Anonymous Tengo un programa en Python 2.7 corriendo en Ubuntu16. Este programa está diseñado para trabajar durante meses en segundo plano capturando tweets. El problema es que cada semana aproximadamente, aparece un error en una de las librerías y el programa deja de funcionar sin previo aviso. Necesito una solución que vuelva a…(Continue Reading)

exec でコピーした fd をクローズする必要性

投稿者: Anonymous exec で、既存の fd をコピーすることがあります。具体的には、次のように #!/bin/bash echo hoge | { exec 3<&0 echo fuga | { from_stdin=$(cat) from_3=$(cat <&3) echo “From stdin: $from_stdin” echo “From 3: $from_3” } exec 3<&- } 2つの入力から読み込むようなシェルスクリプトを記述するときに、利用したりしています。 このように、 exec で fd をコピーした際には、基本的に最後にクローズするようにしています。上の例で言うと exec 3<&- がそれです。 これは、なんとなく必要そうだから実行しているのですが、これが本当に必要だったのか、いまいち自信がないです。 質問: exec でコピーした fd は、これは必ず上記のようにクローズする必要がありますか? 必要がある場合、クローズしないと何が起きるのでしょうか。 必要がない場合、例えば上のケースではどうしてその必要がないのでしょうか。 解決 fd は、それを開けたプロセスに束縛され、そのプロセスが死んだ時点で勝手にクローズされます。なので、短いシェルスクリプトであれば、わざわざクローズする必要はありません。 大規模なスクリプトを作成したり、誰かと共同で作業する場合で、かつサブプロセス内に新規作成する fd を閉じ込めておけない場合、「使用してない…(Continue Reading)

行頭にある >&2 の意味(docker-composeによるコンテナ起動順制御に使用)

投稿者: Anonymous シェルスクリプトについて質問があります。 下記のコード内で2箇所の >&2 という記述がありますがどういう意味でしょうか。 #!/bin/bash set -e host=”$1″ shift cmd=”[email protected]” until psql -h “$host” -U “postgres” -c ‘l’; do >&2 echo “Postgres is unavailable – sleeping” sleep 1 done >&2 echo “Postgres is up – executing command” exec $cmd 引用元: http://docs.docker.jp/compose/startup-order.html $ ls >&2 という形で ls の標準出力を標準エラー出力にリダイレクトするというような理解はあります。 自分の現状の認識は psql -h “$host” -U “postgres”…(Continue Reading)

¿Cómo extraer el nombre de archivo y la extensión en Bash?

publicado por: Anonymous Supongamos que tengo una variable $f que contiene la ruta de un archivo /home/juan/hola.txt. Ahora quiero extraer el nombre del archivo (hola) y su extensión (txt). ¿Cómo puedo hacerlo? Se me ocurre utilizar awk para extraer el nombre+extensión y la extensión sola: $ awk -F”/” ‘{print $NF}’ <<< “/home/juan/hola.txt” hola.txt $ awk…(Continue Reading)

bash でJSON の値が特定の値であるかチェックしたい

投稿者: Anonymous APIの JSON レスポンスが特定の値であることをバリデーションするシェルスクリプトを書いているところなのですが不思議な現象に遭遇しました curl の結果の代用として echo で生成した JSON レスポンスに対して キー x の中身が “x” という文字列 キー y の中身が “y” という文字列 キー z の中身が “z” という文字列 であることをチェックするテストスクリプトを以下のように書きました X=$(echo ‘{“x”:”x”,”y”:”y”,”z”:”z”}’ | jq -r ‘.x,.y,.z’) Y=$(echo ‘x y z’) echo $X echo $Y if [ “$X” != “$Y” ]; then echo ‘failed’; exit; fi これを動かしたところ x y…(Continue Reading)

¿Cómo puedo borrar entre dos carácteres con sed?

publicado por: Anonymous Tengo un fasta enorme: >M03351_17_000000000-APPCH_1_1108_19837_8773 Otu0001|11237|16S1_10-16S1_11-16S1_12 ATG-A-A-C-G-C-T-G-G-C-G-G-C-G-T-G-C Así, pero repetidas veces, y quiero borrar lo que hay entre el > y el t pero no hay manera. También quiero quitar lo que hay después de “Otuxxxx” hasta el final de linea. Esto sí sé, pero si tenéis alguna sugerencia mejor que la…(Continue Reading)

bash: &&で実行されるコマンドリストのkill

投稿者: Anonymous 以下のようなシェルスクリプトtest.shがあります。 #!/bin/bash for i in $(seq 10); do echo "i=$i" sleep 1 done それを以下のように実行した場合、 kill $P1 でプロセス./test.shは直ちに終了します。 #!/bin/bash ./test.sh & P1=$! sleep 3 kill $P1 echo "end" i=1 i=2 i=3 end ただし./test.shのあとに&&で後続コマンドを設定した場合、./test.shは kill $P1 で終了しません。 #!/bin/bash ./test.sh && echo "yes" & P1=$! sleep 3 kill $P1 echo "end" i=1 i=2 i=3 end i=4…(Continue Reading)

dcaというコマンドをGoプログラムを利用して実行したい

投稿者: Anonymous https://github.com/bwmarrin/dca/tree/master/cmd/dca dcaというコマンドはwavなどの音声形式をdca形式に変換するためのコマンドなのですが、これをGoのプログラムから動かしたく以下のようなプログラムを作成したのですが、普通にコマンドを入力して作成したファイルよりも容量が小さく正しいファイルが生成できません。どう修正すれば正しいファイルを生成できるのでしょうか。 コマンド dca -i hello.wav –raw > hello.dca プログラム package main import ( “io” “io/ioutil” “os” “os/exec” ) func main() { b, err := ioutil.ReadFile(“hello.wav”) if err != nil { panic(err) } cmd := exec.Command(“dca”, “–raw”, “-i”, “pipe:0”) stdin, _ := cmd.StdinPipe() io.WriteString(stdin, string(b)) stdin.Close() out, err := cmd.Output() if err !=…(Continue Reading)

YAMAHA RT58i でローカルエリア内の名前解決をする設定方法は?

投稿者: Anonymous 実現したいこと 家庭内(ローカルエリア内)にあるIoTデバイスのIPアドレスを固定してローカルエリア内からホスト名又はFQDNでIoTデバイスに接続できるようにしたいと思っています。 指定したMACアドレスをもとにIoTデバイスのIPアドレスを固定したい。 固定したIPアドレスのデバイスに対してローカルエリア内からホスト名又はFQDNでアクセスしたい。 ※外部(インターネット側)からのアクセスは想定していません。ローカルエリア内(192.168.0.xxx)内での名前解決を想定しています。 ローカルエリア内からアクセスする例) ping pi ping pi.local 現在の環境 回線 : AU光 Modem : NEC Aterm BL172HV Aterm BL172HV Internet —– Modem —– HUB —– TV 192.168.0.1 |- iPhone DHCP on : 変更後の環境 DHCP,DNS 専用 Server : YAMAHA RT58i ※ルーターですが機能を提供する意味でServerと記しています。 HOST-NAME Aterm BL172HV DHCP on Internet —– Modem —– HUB —–…(Continue Reading)

iterm2を開いた時に上記のようにsyntax errorが表示されます。

投稿者: Anonymous 1.bash Last login: Sat Nov 25 22:23:12 on ttys001 -bash: eval: line 43: syntax error: unexpected end of file iterm2を開いた時に上記のようにsyntax errorが表示されます。 対処方法を教えて下さい、よろしくお願いします。 解決 ~/.bashrc や ~/.profile など、bash が立ち上がる際に読み込まれるファイルの中身をよく読んでください。エラーメッセージにあるように、43行目が怪しいです。unexpected end of file とエラーが出ているので、閉じカッコが不足していたり、if に対応する fi が無かったりなどしていないか確認してください。 iTerm2 ということは macOS だと思いますが、その場合、見た目で良いように見えても、ダブルクォーテーションが ” ではなく “ や ” になっていることがあるので、その点にもお気をつけください。 回答者: Anonymous

¿Cómo puedo guardar la salida estándar en un fichero y los mensajes de error en otro?

publicado por: Anonymous No logro que me guarde cada una de las salidas en los ficheros. El siguiente comando UNIX busca nombres de ficheros y directorios a partir de un determinado directorio (en el caso del comando indicado el directorio raíz): find / -name passwd -print Como se puede ver al ejecutarlo se mezclan la…(Continue Reading)

プロセス置換の実行順序について

投稿者: Anonymous 以下のdiff <(ps -e) <(ps -e)の実行結果を見ると、ひとつのコマンド呼び出し中のプロセス置換の実行順序は決まってないように思われます。 $ diff <(ps -e) <(ps -e) $ diff <(ps -e) <(ps -e) 232d231 < 18157 pts/1 00:00:00 bash 236d234 < 18161 pts/1 00:00:00 ps $ diff <(ps -e) <(ps -e) 232a233 > 18163 pts/1 00:00:00 bash 234a236 > 18166 pts/1 00:00:00 ps <略> $ diff <(ps -e) <(ps…(Continue Reading)

シェルスクリプト データーの並び替え

投稿者: Anonymous 例えば「あ[1]、い[2]、う[3]、え[4]、お[5]」といったデーターの配列があるとします。 そこで、例えば「う」を指定したのならば「う」から開始してどんどん右へソートしていき、一番右に来たら最初から折り返し、あから再度ソートします。 つまり、 入力データーが「あ、い、う、え、お」 並び替えを開始するデーターを「う」 とすると 「う、え、お、あ、い」 と返すようにしたいです。 また、スクリプトは極端に実行速度が遅くならない限り、できるだけ簡潔なものが好ましいです。 追記です。 並び替えを開始するデーターを指定するのは配列番号でも構いません。 文字列ではなく配列番号で指定したほうが実行速度が早くなるか簡潔になるのであればそちらのほうが好ましいです。(つまり「う」というデーターではなく3を指定) 解決 「あ、い、う、え、お」では辞書順になっていて分かりづらいかと思いましたので、入力を z b x h j g に変更しています。なお、エラーチェックはしていませんので、start 変数に 0 以下の値を入れるとエラーになります。 #!/bin/bash ##declare -a arr=(あ い う え お) declare -a arr=(z b x h j g) declare -i start=3 : $((start–)) declare -a first=(“${arr[@]:$start:${#arr[@]}}”) declare -a last=(“${arr[@]:0:$start}”) IFS=$’n’ declare…(Continue Reading)

grepの引数として$記号を渡す際のエスケープについて

投稿者: Anonymous bashで正規表現の検索パターンとして$記号を指定したいのですが、エスケープが必要ということは理解しているのですがエスケープはバックスラッシュを直前に1つ入れると理解しているのですが、この場合$ではうまくいかず\$のようにバックスラッシュを2つ差し込むとうまく動くのですがなぜ1つではダメなのでしょうか? export GREP_OPTIONS=’–color=always’ echo I love $ | grep \$ I love $ echo I love $ | grep $ I love $ 上記のコードでは色付けされていませんが、手元のbashではバックスラッシュを2ついれると$記号が赤字で出力されるのですが、1つだと黒字で出力されています。 初歩的な質問で申し訳ありませんが、回答よろしくお願いします。 マルチポスト https://teratail.com/questions/211988 解決 質問冒頭 bashで正規表現 という表現がそもそもの問題がどこにあるかを正しく理解できていないことを示しています。bashももちろん正規表現を扱うことがありますが、今回は無関係です。 今回、bashはgrepという外部プログラムを起動するだけです。 grepとしても$は行末を表すメタ文字ですので、この機能をキャンセルするためにはでエスケープする必要があります。つまりgrepが受け取るべき引数文字列は$です。 次にbashにおいて、はエスケープ記号、$は変数の接頭辞とどちらも特殊な機能を持つためそれぞれでエスケープする必要があります。つまりbashに入力すべき文字列はgrep \$となります。 この手のエスケープをエスケープしてわけがわからなくなることを傾斜爪楊枝症候群と呼ばれています。 grep $ とバックスラッシュが2つでも同様の出力結果が得られ、書籍ではそのように記述されているのですが同様の結果が得られるのはどういう解釈をすれば理解できるのでしょうか? 「バックスラッシュを2ついれると$記号が赤字で出力される」とあるように異常状態を示しています。先に説明したとおり、bashにとって$は変数の接頭辞なため、$の後ろには変数名が続くべきです。それがないため赤字で警告しています。 バックスラッシュ2つは正しくはありませんが、bashは変数としての解釈を諦め$をそのままgrepに渡すため、結果としてgrep \$はgrep \$と同じとなります。 もし書籍にそのような記述がなされているのであれば、筆者の知識が浅いのか、このような説明を端折ったかのどちらかで、どちらであってもろくな書籍とは言えないような気がします。 echoコマンドに関しては $ を出力したい時に引数に echo $ とバックスラッシュ1つで意図通りの出力結果が得られますが、この場合も echo \$ と記述しなくてよいのはなぜでしょうか? grepコマンドに引数として渡す場合とでバックスラッシュの記述の仕方が変わるのはなぜなのでしょうか?…(Continue Reading)

Golangでパスワードを入力せずにsudoでコマンドを実行する

投稿者: Anonymous Golangでsudoでコマンドを実行するにはどうすればいいのでしょうか? Pythonなどの他の言語では os.system(“echo ‘mypassword’ | sudo -S command”) とすれば 実行できますがGolangではどのようにすれば良いのでしょうか? 解決 exec.Commandを使用します。 package main import ( “log” “os” “os/exec” “strings” ) func main() { cmd := exec.Command(“sudo”, “-S”, “command”) cmd.Stdin = strings.NewReader(“mypassword” + “n”) cmd.Stdout = os.Stdout err := cmd.Run() if err != nil { log.Fatal(err) } } 回答者: Anonymous

bash でフォアグラウンドで実行したジョブをバックグラウンドに移行させることはできますか?

投稿者: Anonymous たとえば、 mysqldump を実行するとき、 -p オプションを指定すると、パスワードを標準入力からクエリするような動作になります。 この、最初の処理が始まる前のクエリはフォアグラウンドだが、その後の本処理がスタートした後はバックグラウンドで実行したいような場面は、いくつか他にもあると思っています。 質問 bash において、フォアグラウンドで実行したジョブを、途中からバックグラウンドに移行させることはできますか? 解決 ctrl+zで停止したジョブをbgコマンドでバックグラウンドにできます。 回答者: Anonymous

Ansible の shell のヒアドキュメントについて

投稿者: Anonymous 以下のような ansible のレシピを書いたのですが ansible-playbook を実行すると SyntaxError になって失敗します (シェルの中身は AWS inspector の推奨対応をコピーしたもので bash に貼り付けると実行できます) shell: | for user in `awk -F: ‘($3 < 1000) {print $1 }’ /etc/passwd` ; do if [ $user != “”root”” ]; then usermod -L $user if [ $user != “”sync”” ] && [ $user != “”shutdown”” ] && […(Continue Reading)

シェルスクリプトでの文字列の整形

投稿者: Anonymous 次のようなデーターがあります。 これを次のような条件でシェルスクリプトを用いて変換したいです ①一つ前の行に「&nbsp ;」がない数字は「–」をつける ②ない場合はなにもつけない 06 &nbsp; 26 &nbsp; 56 07 &nbsp; 26 &nbsp; 54 08 &nbsp; 27 &nbsp; 55 10 &nbsp; 01 11 &nbsp; 01 12 &nbsp; 01 13 &nbsp; 01 &nbsp; 52 14 &nbsp; 52 つまり、先程のものをこのように変更したいです。 -06- 26 56 -07- 26 54 -08- 27 55 -10- 01 -11- 01 -12- 01…(Continue Reading)

Como imprimir una fila y columna específica en UNIX

publicado por: Anonymous me podrán ayudar a imprimir el elemento 2×2 de este fichero.txt #diametro,modulo de young,error,errorpendiente,intercepto 1 733.650208 0.132335603 0.381077677 Necesito obtener el elemento 2×2, es decir 733.650208. Lo estaba intentando con este comando: ls -l | awk ‘{ print $2 }’ pero no me funciona porque me arroja este resultado de 733.650208 solución…(Continue Reading)

Linuxでの文字列削除

投稿者: Anonymous [[File:AAA.jpg]] [[Image:BBB.png|5MB|2015]] CCC.gif|1MB [[ファイル:DDD.svg|5MB]] 上記のような沢山のファイルの情報が記述されたテキストファイルがあります。このファイルを下記のようにしたいのですがやり方が分かりません。 AAA.jpg BBB.png CCC.gif DDD.svg 下記のコマンドでファイル名よりも前の文字を削除することは出来ましたが、ファイル名より後ろの文字の削除が出来ません。どうかご教授いただけませんでしょうか。 sed -i -e ‘s/[[Image://gi’ -e ‘s/[[File://gi’ -e ‘s/[[ファイル://gi’ -e ‘s/|*//g’ -e ‘s/]]//g’ filename.txt 解決 sedだけで済ませるなら例えばこんな感じで如何でしょうか。 sed -e ‘s/^[[//g’ -e ‘s/]]$//g’ -e ‘s/([^|]+)|.*/1/’ -e ‘s/.*:([^:]+)/1/’ filename.txt 回答者: Anonymous

$(cd $(dirname $0)/.. && pwd) と $(cd $(dirname $0) && pwd) の違い

投稿者: Anonymous 質問背景 $(cd $(dirname $0)/.. && pwd) についてネット検索してみたら、 $(cd $(dirname $0) && pwd) に関するページが見つかりました 質問 両者の違いを教えてください /.. に特別な意味はある? 最終的に知りたいこと $(cd $(dirname $0)/.. && pwd) は、どういう意味でしょうか? 多分、どのような環境でも動作するように設定していると思うのですが… 解決 最初に質問に答えると次のようになります。 $(cd $(dirname $0) && pwd) … 実行中のスクリプトがあるディレクトリの絶対パス (/ で始まるパス) 文字列 $(cd $(dirname $0)/.. && pwd) … 実行中のスクリプトがあるディレクトリの親ディレクトリの絶対パス文字列 ここで使われているシェル変数やコマンド、構文の意味は次のとおりです。 $0 は実行中のスクリプトのパス (bash や sh に渡された引数そのもの) を表します。 dirname…(Continue Reading)

Character Sequenceに対応するキー入力を調べたい

投稿者: Anonymous Bashの対話環境はキーバインドの設定(特定のキー入力に対して特定のコマンドを実行)を行うことができます。現在の設定はbind -Pで確認することができます。 しかし、この時のキーの表示(character sequence)はわかりにくいものになっています。 例えば、↑キーのcharacter sequenceは、[Aです。 これは以下の手順で確認できます: 端末上でCtrl+Vを押す。 続けて↑を押すと、^[[Aと表示される。 ^[はエスケープを表す記号なので気にしない。[Aが↑のcharacter sequenceである。 質問: 逆に、与えられたcharacter sequenceがどのようなキー入力に対応するのかを調べるにはどうすればよいのでしょうか? 動機: なぜこれが知りたいのかというと、私の.bashrcには bind ‘”e[0A”: history-search-backward’ と書いてあるのですが、この”e[0A”が何のcharacter sequenceに相当するのかわからなくて困っています。あまり意味がないものなら消してしまいたいのですが…. 解決 bind ‘”e[0A”: history-search-backward’ まず、e[0A はもしかして e[OA ではないでしょうか? キー入力の確認についてですが、terminal(端末)の制御に terminfo を使用されているとして話を進めます。まず、infocmp コマンドを実行して現在使用中の端末の設定を確認します。 $ infocmp | less 表示されている内容から、[A か OA を検索します。 cup=E[%i%p1%d;%p2%dH, cuu=E[%p1%dA, cuu1=E[A, kcub1=EOD, kcud1=EOB, kcuf1=EOC, kcuu1=EOA, 対応する制御シーケンス名が、cuu1 か kcuu1 だと分かるかと思います。 次に、terminfo…(Continue Reading)

TCP Dumpを30秒間で終了させたい

投稿者: Anonymous tcpdump -Ini en0 -w test1.pcap を実行、 30秒たったらtcpdumpを終了したいです。 以下に試行錯誤の様子を記載します。 #!/bin/bash -v timeout 30 tcpdump -Ini en0 -w test1.pcap というスクリプトを書いてみましたが、bashではtimeoutを使えないようです。 -bash: timeout: command not found #!/bin/bash -v timeout 30 tcpdump -Ini en0 -w test1.pcap sleep 30 exit と書いてみましたが、30秒経ってもパケットキャプチャは終了しません。 解決 -W オプションと -G オプションを併用します。 以下のように起動することで、ログローテーションは60秒間隔 (-G60), ローテーション1回のみで終了 (-W1) となります。このため、結果的に60秒間で tcpdump は終了します。 tcpdump -i eth0 -w moemoe.pcap…(Continue Reading)

lsして得たのポートの名前を用いて、Mac の screen コマンドでシリアル通信をしたい

投稿者: Anonymous USBシリアルポートの名前を調べると ls /dev/tty.usbserial* このような結果が得られます /dev/tty.usbserial-AAAAAAAA この値を用いると、下記で接続することができます。 screen /dev/tty.usbserial-AAAAAAAA 115200 Screenで接続する際に、シリアルポートが1ポートしかないと過程した場合 “/dev/tty.usbserial-AAAAAAAA”の値を取得し、 その値を用いてシリアル通信を自動で開始させるにはどうすればいいでしょうか。 解決 どういう答えを期待しているのかよくわかりませんが シリアルポートが1個しかないのであれば screen /dev/tty.usbserial* 115200 で十分かと。2個以上あるなら for i in /dev/tty.usbserial*; do screen $i 115200; done とか? test -c したほうが安定かもしれません。 回答者: Anonymous

¿Como des comentar una linea especifica en un archivo con un comando en linux?

publicado por: Anonymous tengo un archivo que tiene lo siguiente: #hola como estas #todo es posible #esto es un comentario con que comando quito el comentario usando como referencia la palabra inicial en este caso (todo) para quitar el comentario yo e usado este comando sed -i ‘2 s/^#//’ ejemplo.sh pero tengo que especificar que…(Continue Reading)

複数条件でのcrontabの書き方

投稿者: Anonymous 毎月1日2時5分に特別な処理を行い、 1日を除く毎週月曜日1時5分に定期的な処理をするスクリプトを実行させたい思い、 crontabに下記のように書いてcronを実行しました。 5 1 2-31 * mon root sh /hoge/hoge/hoge.sh 5 2 1 * * root sh /hoge/hoge/hoge.sh 1日を除く月曜日の時は、上の行のみが実行されて、 1日の時は、下の行のみが実行されると思います。 1日で月曜日の時も下の行のみが実行されると思います。 crontabは、上記のような書き方であっていますでしょうか。 また、crontabで複数条件が評価される場合は、どのような順番で評価されるのでしょうか。 自作したスクリプトは、 if [ 実行時の日付が1日であるか ] 特別な処理 else 定期的な処理 fi として、スクリプト内のif文で処理を振り分けています。 使用しているOSはCentOS7です。 解決 5 1 2-31 * mon root sh /hoge/hoge/hoge.sh こちらの条件は「1日以外の全ての月曜日」という条件ではなく、「1日以外もしくは、月曜日」という条件であると解釈されます。 ですので、個人的には、以下のように記述するのが良いのではないかと思います。 5 2 1 * * root sh…(Continue Reading)