MacOS自動アップデートの通知を無効にする
概要
会社の開発用のMac ProはOSのアップデートをしない方針のチームが多いと思います。今日は一般的な対応方法と追加処理を整理してみました。
一般的な対応
1.システム環境設定 → ソフトウェアアップデート → 詳細 を選択します
2.上記ウィンドウのチェックをすべて外します。チェックを外すことでOSが自動的に更新の確認をしなくなりますが、自分の好きなタイミングでアップデートできるので安心してください。
通知を無効化
一般的な対応をしても通知はいつも通り出るし、間違えてボタンを押すのが気になりますよね。ターミナルを開き以下のコマンドを実行します。
Catalinaの場合
$ sudo softwareupdate --ignore "macOS Catalina"
Big Surの場合
$ sudo softwareupdate --ignore "macOS Big Sur"
上記をセットしても更新があるとソフトウェアアップデートのアイコンに赤丸のバッチが表示されてしまいます。以下のコマンドで消すことは可能です。
$ defaults write com.apple.systempreferences AttentionPrefBundleIDs 0 $ killall Dock
ShellスクリプトのみでSentryへイベントを送信
概要
使用しているAPIが正常に動いているかチェックしてSlackへ通知することになりましたが、サーバーに勝手にライブラリ(モジュール)のインストールが出来なかったので以下のような素晴らしい物の利用ができませんでした。
ソース
いきなりソースです。
#!/bin/bash # Sentry info SENTRY_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXX SENTRY_SECRET=YYYYYYYYYYYYYYYYYYYYYYYYYY SENTRY_PROJECTID=MMMMMMM SENTRY_HOST=sample.com SCRIPT_ARGUMENTS=$@ # API info API_URL=http://sample.com/api/xxxx API_TOKEN=XYXYXYXYXYXYXYXYXYXYXYXXY # event payloads : https://develop.sentry.dev/sdk/event-payloads/ function sendSentryMsg() { LEVEL=$1 TYPE=$2 HTTP_CODE=$3 TRACE=$4 MESSAGE=$5 EVENT_ID=`openssl rand -hex 16` EVENT_TIMESTAMP=`date +"%Y-%m-%dT%H:%M:%S"` SENTRY_TIMESTAMP=`date +%s` # Create a native event response=$(curl -sS https://$SENTRY_KEY@xxxxxxx.ingest.sentry.io/api/$SENTRY_PROJECTID/store/ \ -H 'Content-Type: application/json' \ -H "X-Sentry-Auth: Sentry sentry_version=7,sentry_timestamp=$(date +"%s"),sentry_client=sentry-curl/1.0,sentry_key=${SENTRY_KEY}" \ -d "{ \"event_id\": \"$EVENT_ID\", \"culprit\": \"$0\", \"timestamp\": \"$EVENT_TIMESTAMP\", \"message\": \"$MESSAGE\", \"level\": \"$LEVEL\", \"tags\": { \"shell\": \"$SHELL\", \"server_name\": \"`hostname`\", \"path\": \"`pwd`\", \"http_code\": \"$HTTP_CODE\" }, \"exception\": { \"values\": [ { \"type\": \"$TYPE\", \"value\": \"$TRACE\", \"module\": \"__builtins__\" } ] } }" > /dev/null 2>&1) # echo $response } function getJsonItem() { JSON_STRING=$1 ITEM_KEY=$2 # grep -Eo '"$ITEM_KEY"[^,]*' | grep -Eo '[^:]*$' # | perl -pe 's/"text"://; s/^"//; s/",$//' echo $JSON_STRING | grep -Eo '"'$ITEM_KEY'"[^,]*' | grep -Eo '[^:]*$' | tr -d "\"" } function checkVPPApi() { { IFS= read -rd '' HTTP_BODY IFS= read -rd '' HTTP_STATUS IFS= read -rd '' CURL_STATUS IFS= read -rd '' CURL_ERROR_MSG } < <({ HTTP_BODY=$(curl -sSL $API_URL \ -o /dev/stderr \ -w "%{http_code}" \ -H 'Content-Type: application/json' \ -d "{ \"token\": \"$API_TOKEN\" }" \ ); } 2>&1; printf '\0%s' "$HTTP_BODY" "$?") # echo $HTTP_BODY # echo $HTTP_STATUS # echo $CURL_STATUS # echo $CURL_ERROR_MSG level="info" type="正常に終了されました。" trace="Success!!" message="" if [ $CURL_STATUS != "0" ]; then declare -a CURL_ERRORS=( ["1"]="CURLE_UNSUPPORTED_PROTOCOL" ["2"]="CURLE_FAILED_INIT" ["3"]="CURLE_URL_MALFORMAT" ["4"]="CURLE_URL_MALFORMAT_USER" ["5"]="CURLE_COULDNT_RESOLVE_PROXY" ["6"]="CURLE_COULDNT_RESOLVE_HOST" ["7"]="CURLE_COULDNT_CONNECT" ["8"]="CURLE_FTP_WEIRD_SERVER_REPLY" ["9"]="CURLE_REMOTE_ACCESS_DENIED" ["11"]="CURLE_FTP_WEIRD_PASS_REPLY" ["12"]="CURLE_FTP_ACCEPT_TIMEOUT" ["13"]="CURLE_FTP_WEIRD_PASV_REPLY" ["14"]="CURLE_FTP_WEIRD_227_FORMAT" ["15"]="CURLE_FTP_CANT_GET_HOST" ["16"]="CURLE_HTTP2" ["17"]="CURLE_FTP_COULDNT_SET_TYPE" ["18"]="CURLE_PARTIAL_FILE" ["19"]="CURLE_FTP_COULDNT_RETR_FILE" ["21"]="CURLE_QUOTE_ERROR" ["22"]="CURLE_HTTP_RETURNED_ERROR" ["23"]="CURLE_WRITE_ERROR" ["25"]="CURLE_UPLOAD_FAILED" ["26"]="CURLE_READ_ERROR" ["27"]="CURLE_OUT_OF_MEMORY" ["28"]="CURLE_OPERATION_TIMEDOUT" ["30"]="CURLE_FTP_PORT_FAILED" ["31"]="CURLE_FTP_COULDNT_USE_REST" ["33"]="CURLE_RANGE_ERROR" ["34"]="CURLE_HTTP_POST_ERROR" ["35"]="CURLE_SSL_CONNECT_ERROR" ["36"]="CURLE_BAD_DOWNLOAD_RESUME" ["37"]="CURLE_FILE_COULDNT_READ_FILE" ["38"]="CURLE_LDAP_CANNOT_BIND" ["39"]="CURLE_LDAP_SEARCH_FAILED" ["41"]="CURLE_FUNCTION_NOT_FOUND" ["42"]="CURLE_ABORTED_BY_CALLBACK" ["43"]="CURLE_BAD_FUNCTION_ARGUMENT" ["45"]="CURLE_INTERFACE_FAILED" ["47"]="CURLE_TOO_MANY_REDIRECTS" ["48"]="CURLE_UNKNOWN_TELNET_OPTION" ["49"]="CURLE_TELNET_OPTION_SYNTAX" ["51"]="CURLE_PEER_FAILED_VERIFICATION" ["52"]="CURLE_GOT_NOTHING" ["53"]="CURLE_SSL_ENGINE_NOTFOUND" ["54"]="CURLE_SSL_ENGINE_SETFAILED" ["55"]="CURLE_SEND_ERROR" ["56"]="CURLE_RECV_ERROR" ["58"]="CURLE_SSL_CERTPROBLEM" ["59"]="CURLE_SSL_CIPHER" ["60"]="CURLE_SSL_CACERT" ["61"]="CURLE_BAD_CONTENT_ENCODING" ["62"]="CURLE_LDAP_INVALID_URL" ["63"]="CURLE_FILESIZE_EXCEEDED" ["64"]="CURLE_USE_SSL_FAILED" ["65"]="CURLE_SEND_FAIL_REWIND" ["66"]="CURLE_SSL_ENGINE_INITFAILED" ["67"]="CURLE_LOGIN_DENIED" ["68"]="CURLE_TFTP_NOTFOUND" ["69"]="CURLE_TFTP_PERM" ["70"]="CURLE_REMOTE_DISK_FULL" ["71"]="CURLE_TFTP_ILLEGAL" ["72"]="CURLE_TFTP_UNKNOWNID" ["73"]="CURLE_REMOTE_FILE_EXISTS" ["74"]="CURLE_TFTP_NOSUCHUSER" ["75"]="CURLE_CONV_FAILED" ["76"]="CURLE_CONV_REQD" ["77"]="CURLE_SSL_CACERT_BADFILE" ["78"]="CURLE_REMOTE_FILE_NOT_FOUND" ["79"]="CURLE_SSH" ["80"]="CURLE_SSL_SHUTDOWN_FAILED" ["81"]="CURLE_AGAIN" ["82"]="CURLE_SSL_CRL_BADFILE" ["83"]="CURLE_SSL_ISSUER_ERROR" ["84"]="CURLE_FTP_PRET_FAILED" ["85"]="CURLE_RTSP_CSEQ_ERROR" ["86"]="CURLE_RTSP_SESSION_ERROR" ["87"]="CURLE_FTP_BAD_FILE_LIST" ["88"]="CURLE_CHUNK_FAILED" ["89"]="CURLE_NO_CONNECTION_AVAILABLE" ["90"]="CURLE_SSL_PINNEDPUBKEYNOTMATCH" ["91"]="CURLE_SSL_INVALIDCERTSTATUS" ["92"]="CURLE_HTTP2_STREAM" ["93"]="CURLE_RECURSIVE_API_CALL" ["94"]="CURLE_AUTH_ERROR" ["95"]="CURLE_HTTP3" ["96"]="CURLE_QUIC_CONNECT_ERROR" ["98"]="CURLE_SSL_CLIENTCERT" ) level="fatal" type="接続エラーが発生しております。" trace="${CURL_ERRORS["$CURL_STATUS"]}" message="" elif [ $HTTP_STATUS -ge "400" ] && [ $HTTP_STATUS -lt "600" ]; then level="fatal" type="VPP側でエラーが発生しております。" trace="$HTTP_STATUS" # trace=$HTTP_BODY message="" fi # echo $level # echo $type # echo $HTTP_STATUS # echo $trace # echo $message # echo $HTTP_BODY if [ $level != "info" ]; then sendSentryMsg "$level" "$type" "$HTTP_STATUS" "$trace" "$message" fi } checkVPPApi exit 0
Slackの連携
私から詳しく書く必要もないかなと思いますんで、参考サイトで。
Gmailのカレンダーの出欠連絡の自動振り分け
概要
GSuiteの利用している会社でカレンダーにスケジュールが入ると通常メールが送られてきますが、カレンダーを日常見ているので要らないかと思いました。しばらくGmailの自動振り分け方法が分からず、一応Googleカレンダーの方の設定でメールの通知を減らして対応しました。
ただし、通知が多い世の中でブラザーの通知のみだと流れてしまうケースもありちょっと不安でした。今週やっと見つけましたので紹介したいと思います。
Gmailの設定
Gmailを開き、検索ボックスの下矢印をクリックして以下の内容を入れます。
この状態で一回検索してみて確認してもいいかと思います。もう一度検索ボックスの下矢印をクリックすれば入力されたまま表示されます。
その他とは通常のフィルタ作成の手順と一緒です。
- [フィルタを作成] をクリック
- [ラベルを付ける] チェックボックスをオンにし、受信メールを自動的に分類するためのラベルを選択
- [受信トレイをスキップ(アーカイブする)] チェックボックスをオン
- [フィルタを作成] をクリックします。
今年の夏、どこにも行けない子供のために
コロナでこの夏何処にも行けなさそうなので、子供のために水鉄砲をちょっといい物買ってあげました。
先ずはお風呂でテスト兼遊びました。喜ぶ子供、元々スプラトゥーンを好きでYoutubも色々見ていたのですごく喜びました。 明日は近い公園で水鉄砲で遊ぶ予定です。WWWW
Ovice 504 Tシャツが到着!!
前職でOviceというVirtualオフィスを利用していましたが、まだ始めたばかりだったので大きな障害があった時期もありました。その時504が発生しまして復帰した後のイベントとして「504Tシャツ?」がありました。
ありありの話ではありますが、普通の会社では出来ないことでもあるので応援する気持ちで応募しました。
転職とかもありまして完全に忘れていましたが、今日届きました。ちょっとびっくりしました。
チャージャーん!!!!
504がもっと見える方がいいかな〜〜