astech

柱に印をつける身長記録の、デジタル版

cronでperlが実行できなかった話

お久しぶりです

cron、使ってますか?

俺は初めて使いました(noob

cronでperlスクリプトを実行できない躓きを踏んだので、備忘します

cronって?

Linuxに標準で備わっているプログラムの一種で、設定すると処理を自動で定期的に実行することができます。

https://www.miraiserver.ne.jp/column/about_cron/#:~:text=cron%E3%81%A8%E3%81%AF%E3%80%81Linux%E3%81%AB,%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%A8%E4%BE%BF%E5%88%A9%E3%81%A7%E3%81%99%E3%80%82

crond(デーモン)と、crontab(設定ファイル)からなる、自動実行してくれるちゃん

crondは、1分に一度実行され、crontabに設定された内容を実行してくれます。

たとえばcrontabに

*/1 * * * * echo "hello" >> /home/cron_test.txt

と記述すると、毎分/home/cron_test.txthelloと書き込まれます。

行頭の*/1 * * * *が実行間隔を示しています。

続く、 echo "hello" >> /home/cron_test.txtが実行するコマンドになっています。

やろうとしたこと

perlで、定期実行したいスクリプト(script.pl)を作りました。

ウキウキでcrontab -eして

*/1 * * * * perl /path/to/script.pl

と記述しました。

これで、毎分script.plが実行されるはず!!!!!

 

 

 

実行されませんでした。GGWP;;

なぜできなかったか?

結論から言うと、

シェルスクリプトで呼び出されるperlコマンドと、cron上で呼び出されるperlコマンドが違ったから。

でした

試したこと:script.plがコマンドライン上で動くか?

動いた。

script.plは間違ってないらしい

試したこと:cronがactiveになっているか?

参考:cronのstatus確認 cronの起動・停止・再起動・状態確認, cronの実行ログ - Ubuntuサーバー構築入門 - Ubuntuサーバーでゼロから環境構築

これがinactiveになってないか?を見ました。

ウチの環境ではactiveでした。

試したこと:cron再起動

sudo systemctl restart cron で再起動できます

参考:cronの再起動 cronの起動・停止・再起動・状態確認, cronの実行ログ - Ubuntuサーバー構築入門 - Ubuntuサーバーでゼロから環境構築

残念ながら再起動しても動かず

試したこと:perl以外の自動実行をcrontabに記述してみる

crontabに、

*/1 * * * * echo "hello" >> /home/cron_test.txt

と記述してみる

結果、

  • perl script.plは動かない
  • echo "hello"は動く

な状態に

仮説:perl特有の現象なのでは?

調べてみるとこんな情報が

note103.hateblo.jp

 

 

 

なるほどね

解決策

crontabに、

*/1 * * * * /path/to/perl  /path/to/script.pl

と記述する

   

perl script.plじゃなくて、

path/to/perl script.plとして、

perl実体を指定してあげるのがキモ

/path/to/perl を調べる

perl -V | grep perlで、シェルスクリプトperlした時呼び出されてる、perl実体のpathを調べる

調べた情報を参考に、

/なんちゃらかんちゃら/perl-5.38.2/bin/perl 

みたいな文字列を作る。

 

シェルスクリプト上で、

perl -v

/なんちゃらかんちゃら/perl-5.38.2/bin/perl -v

を実行して、同じ内容が返ればOK

crontabを編集して再起動

crontab -eでcrontabを編集する

*/1 * * * * /なんちゃらかんちゃら/perl-5.38.2/bin/perl   /path/to/script.pl

と記述する。

この時、それぞれのパスは必ず絶対パスで記述する

 

のち、

sudo systemctl restart cron

で再起動

  

  

  

でうまくいきます。多分

AUTO_INCREMENTとLAST_INSERT_ID(id+1)インクリメントの違い

連番IDが欲しい時、

テーブル定義の時に

create table test_table (
   id int not null auto_increment
)

として、勝手にインクリメントされるようにする方法と、

sequenceテーブルを作って

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

として、手動でIDを発行する方法の二つがある...と思っています。

両者の違いについて調べました

とりあえず、一番大きな?違いはロールバックの時の挙動

ロールバックした後、次のIDを発行するとき、

  1. AUTO_INCREMENTの場合はロールバックされた次のIDが発行されます

  2. LAST_INSERT_IDの場合はロールバックされて、無かったことになったIDが発行されます

 

この違いが実用上どう異なるのかはまだわからんので後々...

【脇道回】俺がよくやる、いい曲の探し方

まーじで書くことがねぇ

あ、私の曲の探し方です。

Spotifyのソングラジオ機能

好きな曲がすでにある場合、Spotifyでその曲を調べましょう。

んで、右クリックして、「ソングラジオに移動」しましょう。

多分、その曲を聴きたいあなたのお耳にマッチする曲が大量に並んだプレイリストが出てきます。

SpotifyのThis is <artist名>プレイリストを漁る

そこそこ好きなアーティストがすでにいる場合、、アーティストページからThis is <artist名>となっているプレイリストを再生しましょう。

知ってる曲と知らない曲がいい塩梅でミックスされて流れてくるはず、幸福になれます。

ジャンル名で検索して適当なプレイリストを再生

聴きたいジャンルが決まっている場合、Spotifyでジャンル名を検索して、誰かが作ったプレイリストを聴きましょう。

好きな曲を見つけたら、そこからソングラジオとかに飛ぶのも良いね

ジャンル別プレイリスト、作った人によって結構趣味趣向が異なるから、いろんなプレイリストをつまみ食いするのがおすすめ

【脇道回】5日でダウンロードカードを作る

音楽を作る皆さんには周知の事実だと思いますが、CDを作るのにはやたら時間がかかります。

周知の事実だと思いますが、コピーでも2週間以上、プレスだと4週間くらいは欲しいですよね。

周知の事実だと思いますが。

 

周知の事実だと思いますが、その分先に曲を仕上げないといけないので、締め切りが短くなるんですね。

周知の事実だと思いますが。

その締め切り短くなルーが厳しいわけです。  

そんなあなたに、DLカード。

DLカード、いいんですよ。

イベントの当日、朝まで締め切りが伸びますし、物理媒体の準備にかかる時間もかなり短いです。

5日で作れます。

みていきましょう。

DLコードを用意する

DLコードを用意しましょう。

お客さんは、このコードをもとに音源にたどり着くことになります。

もちろん、DropBoxとかで配布してもいいんですが...割れ拡散を防ぐのであれば、一意なDLコードを元にダウンロードしてもらう形式にしましょう。

おすすめはBandcampのDLコード機能です。

お手頃値段で、DLコードを簡単に生成でき、CSVでダウンロードできます。めちゃ便利 mykr.fanbox.cc

楽曲はまだできてなくてもOK。

先に入れ物だけつくって、DLコードを生成しちゃいましょう。

デザインを作る

DLカードの構成は、

  • カード
  • 台紙

から成ります。

Google Play Cardとか、iTunesカード見たいな、台紙にカードがくっついてるイメージです。

デザインとして必要なのは、下の4面ですね。

  • カード表面
  • カード裏面
  • 台紙表面
  • 台紙裏面

ゴシゴシ作りましょう。

ちなみに、お客さんの手に渡るときは、台紙表面の上にカード表面が乗っかっている状態になります。

デザインする時はそこも考慮してつくりましょう。

他にも、「めくる」っていうギミックをうまく使えると嬉しいよね

 

デザインにマストで入れないといけない要件は、DLフォームへのQRコードと、テクニカルトラブル対策の連絡先とかですかね。

うまくデザインに組み込みましょう。

印刷する

カード www.graphic.jp

台紙(ポストカード) https://www.graphic.jp/price/post_card/73_1

私は、このサービスを使いました。

RGBで入稿できるので、お手軽に発色めっちゃ綺麗で最高です。

しかも納期短い。マジで最高、いつもありがとうございます。

あと、最初に作ったDLコードたちも物理的な物体にしないといけません。

納期に余裕があるのであれば、上から「通し番号付き」で入稿しましょう

私はなかったので、自分で印刷しました。みんな大好き、ラベルシール https://www.amazon.co.jp/gp/product/B002VZ335Q/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

用紙選択 | ラベル屋さん|無料で使えるラベル・カード印刷ソフト。豊富なデザインテンプレートもご用意。 ここから、

  1. テンプレートをダウンロードして、
  2. BandcampからDLしたコードCSVを、5×nのマトリックスになるようにPythonでちょちょッと整形して
  3. スプシに貼り付けてスクショを撮って、
  4. テンプレートに重畳して
  5. 自宅のプリンターで刷りました

組み立てる

さあ、あとは組み立てるだけです。

 

組み立て手順はこんな感じです。

  1. DLカードの裏に、DLコードシールを貼り付ける
  2. DLカードを台紙に貼り付ける
  3. opp袋で包装

購入したのはこの辺です。

これでカードを台紙に貼り付けて https://www.amazon.co.jp/gp/product/B0013N1WBY/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

このopp袋で包装します。 https://www.amazon.co.jp/gp/product/B004XFKL84/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&th=1

ちなみに、300枚くらい作ったんですが、組み立てには12時間くらいかかったので気をつけてください

以上です。

同人活動頑張ってね

ギャップロックとネクストキーロックとデッドロックとわたし

わたしは本筋と関係ありません。

ギャップロック、ネクスキーロックって?

ネクストキーロックとは | ソフトウェア雑記

next4us-ti.hatenablog.com

ぶっちゃけこの辺が死ぬほどわかりやすいからそこ読もうね

 

ざっくりと、 - 非連番のidに対してidが存在しない範囲はひとまとまりでロックがかかる現象 - 範囲ロックの一個外側レコードまで、レコードロックがかかる現象です。

です。

何が起こる?

  • ギャップロック内のidを指定したinsertできなくなる
  • ロックしてねぇよな?って範囲でデッドロックが発生しちゃう

どうやって対処する?

  • ロックする範囲をできるだけ絞るようにする
  • select * where ~ などで空振らないようにする

【脇道回】マジでウメェチャーハンの作り方

最近の俺の昼飯大体これ

1. 材料を準備する

  1. ベーコン 1パックを適当に切る
  2. ニンニクひとかけをみじん切りにする
  3. 卵を冷蔵庫から出しておく

2. 火を通す

  1. フライパンに、ラードとベーコンを突っ込んで最大火力で火を通す
  2. ベーコンがいい感じになったら、卵を割り入れて、スクランブルエッグにする
  3. 卵がいい感じになったら、白米とニンニクを突っ込む
  4. おたまの、お尻でコメをほぐすようにして炒める

ワンポイント:ラードは多いかな〜くらいがちょうどいい。ご飯一合なら15cmくらいかな?わかんね

3. 味付けする

次の調味料を適当に突っ込む

  • 醤油
  • ラー油
  • 甜麺醤(入れすぎない)
  • 胡椒(いっぱい入れる)
  • オイスターソース
  • 味の素
  • 五香粉
  • 中華調味料(香味ペーストとか)

4. 火を通す

適当に、全体的に色が変わったな〜くらいになるまで、火を通す

5. 盛り付ける

茶碗についで、平皿にボンってひっくり返すと、いい感じに盛れます

【寄道回】最強の同人ブース賑やかしテク

同人イベントに出展した時、机の上どうしたらいいか、マジで悩みますよね。

 

悩みますよね?

 

悩みますよね

 

 

セオリーとかもねぇし、サンプルとして出てくるのは大体部数の多い大手とか、作品数の多い大手とか

 

ってわけで、とりあえず賑やかになる飾り付け方について、教えます。

卓上ポスター

「な〜んか寂しいよな〜」を解決するのが卓上ポスター

こういうポスタースタンドを買って、適当にA4とかでポスターを刷って、垂らしとくだけで、机上が埋まります。 https://www.monotaro.com/p/0062/1513/?cq_med=pla&cq_plt=gp&utm_medium=cpc&utm_source=google&utm_campaign=246-833-4061_6466659573_shopping&utm_content=77481173756&utm_term=_380604238305_x_pla-1804870264712&utm_id=00621513&gclid=Cj0KCQjwiIOmBhDjARIsAP6YhSUvdcqZU1lZVtPehHmqSBdRzk79KtiWi34udXAA_xrSoK__FU01-2gaAiJBEALw_wcB

普通に広告を垂らすもよし、お品書きとかを垂らすもよし、おすすめです。

雛壇

高低差は正義です。

例えばグッズを飾るにも、適当な百均のカゴをひっくりしで、その上に置くだけであら不思議、専用の什器みたいになる

あとは、CDの場合こういうのがおすすめ

https://www.amazon.co.jp/%E3%82%A4%E3%82%AC%E3%83%A9%E3%82%B7%E3%83%97%E3%83%AD-%E3%82%B3%E3%83%B3%E3%83%91%E3%82%AF%E3%83%88%E3%81%B2%E3%81%AA%E5%A3%87-%E7%B5%84%E7%AB%8B%E5%BC%8F%E9%99%B3%E5%88%97%E6%A3%9A-%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4-G-14-001/dp/B08YDR557H

バエます

ポップとポップスタンド

百均で、ポップスタンドと、白紙の名刺的な紙を買ってきましょう。

んで、値段書いて挟めばあらいい感じ

いい感じ

イーゼル

これは、頒布物次第だけど、固くてデカすぎないものだったら割といける。

平積みと比べて、賑やかになる

最後に

このへんの飾り付けをこなした、うちら_bazaar recordsの初参加のレイアウトがこれ。

意外と様になるでしょ?

ちなみに、最近はめんどくさいから結構サボってる

今日はこんなもんで