20220303のMacに関する記事は3件です。

時間のかかるコマンドが終了したらSlackに通知

実行に長時間かかるコマンドをよく実行する場合に便利。 研究で数時間かかるスクリプトを回しがちで、終了したら教えてほしかったので作った。 zshで書いているが、hookがあるシェルならできる(hookの登録の仕方が違うと思うけど) やりたいこと しきい値が10秒の場合 ls #通知は来ない heavy-command #10秒以上かかる場合は終了後slackに通知が来る のように、実行に10秒以上時間がかかった場合だけ、Slackに終了通知を飛ばしてほしい 実現方法 Webhook URLを取得する 予めSlack:Webhook URL取得してSlackに通知するなどを参考にWebhook URLを取得。 .zshrc追記 ホームディレクトリにある.zshrcに以下を追記する。($WEBHOOK_URLは上記で取得したURLに書き換える) alias snotice='curl -X POST --data-urlencode "payload={\"username\": \"webhookbot\", \"text\": \"Command finished:$CMD_NEWEST \", \"icon_emoji\": \":ghost:\"}" $WEBHOOK_URL' function record_start_time(){ export PREEXEC_TS=`date '+%s'` local LINE=${1%%$'\n'} export CMD_NEWEST=${LINE%% *} } function notify_to_slack(){ THRESHOLD_TS=`date -d "10 second ago" '+%s'` #ここでしきい値を調整(この場合は10秒) if [ -z $PREEXEC_TS ]; then PREEXEC_TS=`date '+%s'` fi if [[ $PREEXEC_TS -lt $THRESHOLD_TS && $CMD_NEWEST != (vim|ssh|man) ]]; then #vim, ssh, manは対象外にする snotice fi PREEXEC_TS= } autoload -Uz add-zsh-hook add-zsh-hook precmd notify_to_slack add-zsh-hook preexec record_start_time テスト source .zshrc sleep 3 #通知は来ない sleep 13 #通知が来る
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac OS初心者、コンソールでcurl出来なくて困った

最近初めてMac OSを触っていて、JenkinsのAPIを利用するためコンソールでcurlコマンドを叩いた際にこんな表示になった curl --user ’hogehoge:qwsedrftgyhujiko' -s 'http://....../json' エンターポチッ > エンターポチッ > エンターポチッ > エンターポチッ > curlでjsonを取得したいのだが、実行したら大なりが表示されるだけで URLが合っているのか間違えてエラーになっているのかすら分からず、 再度コマンドとにらめっこして判明 →→→ ’hogehoge:qwsedrftgyhujiko' -s 'http://....../json' Macに備わっているメモにコマンドを書いてコピペ実行していたが、メモの表示に慣れずシングルクォーテーションの全角半角が違っていることに気付かなかった。 もしやと思い > に ' を入力してエンターを押したら無事にコマンドを終了出来た。 最後に これが発生した時知識が何もなかったので「Linux 大なり 入力待ち」などで検索した結果、どこも標準出力について書いてあるだけで対処法が全然見つからず焦った経験をここに記載しました。(Control + C で対処自体は簡単に出来るけど) 初歩的な内容かとは思いますが、同じ現象でお困りの方の参考にしていただけましたら幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacでRStudioを使用するために「.Rprofile」を設定

RStudioでパッケージを自動読み込み M1チップ搭載Macに「RStudio」をインストールしました。 RStudio起動時に、以下を自動実行しパッケージを読み込むために「.Rprofile」を用意しました。 library(stats) library(tidyverse) library(ggplot2) library(GGally) library(patchwork) library(lubridate) library(dplyr) RStudioの左上パネルで上記を記述します。 「.Rprofile」というファイル名で保存します。 「.Rprofile」が「.Rprofile.R」になる ところが、以下のメッセージが出て、 「.Rprofile.R」という名称で保存されます(RStudioの右下パネル)。 このままでは設定が読み込まれません。 ターミナルで「.Rprofile.R」を見えるように ただし、通常「.Rprofile.R」はFinderで表示されません。 そこで、ターミナルで以下を実行し見えるようにします。 % defaults write com.apple.finder AppleShowAllFiles TRUE % killAll Finder ファイル名を「.Rprofile」に変更します。 Finderで各種ファイルを非表示に戻す場合は以下実行します(削除したくないファイルが見えてしまうので元に戻しました)。 % defaults write com.apple.finder AppleShowAllFiles FALSE % killall Finder RStudioに自動取り込み RStudioを起動すると、以下メッセージが表示され、設定が自動で読み込まれたことがわかります。 「tidyverse」パッケージと重なるパッケージがあったので、「Conflicts」メッセージが出ましたが、とりあえず動作には問題ないので、後で調整することにします。 ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ── ✓ ggplot2 3.3.5 ✓ purrr 0.3.4 ✓ tibble 3.1.6 ✓ dplyr 1.0.8 ✓ tidyr 1.2.0 ✓ stringr 1.4.0 ✓ readr 2.1.2 ✓ forcats 0.5.1 ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ── x dplyr::filter() masks stats::filter() x dplyr::lag() masks stats::lag() Registered S3 method overwritten by 'GGally': method from +.gg ggplot2 Attaching package: ‘lubridate’ The following objects are masked from ‘package:base’: date, intersect, setdiff, union 右下パネルをみると、「.Rprofile」となっていることが確認できます。 了
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む