bashのfunctionの戻り値とexit status

bashで戻り値とexit statusがごっちゃになっていたのでメモ。 [参考] https://www.shell-tips.com/bash/functions/ https://eng-entrance.com/linux-shellscript-function 戻り値 function func1(){ echo "2" echo "err" >&2 return 1 } return_value=`func1` rc=$? 上記コードでreturn_valueに格納される値「2」。function内で標準出力に出力した内容がすべて格納される。標準エラー出力に出力した内容は含まれない。 exit status 上記コードでrcに含まれる値「1」。8bitの範囲である0-255の範囲しか指定できない。

<span title='2021-06-23 00:00:00 +0900 +0900'>June 23, 2021</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

Windowsバックアップの結果通知

Windowsバックアップの結果通知は、タスクスケジューラにて成功/失敗のイベントログをトリガーにしたタスクを作るよう説明しているサイトが多い。 が、自社の環境ではちょいちょい通知が来ないことがある。イベントログを確認してみると記録はされている。イベントログのトリガは不安定と感じている。 そこで、直接成功/失敗のイベントログを見に行って、その結果をもとに通知するほうが確実と判断。現在テスト中。 以下がとても参考になった。 https://stackoverflow.com/questions/51769582/powershell-script-not-pulling-event-from-event-log 実際には以下のようなコードで運用している # 何時間前までのログを対象にするか $PastHours=12 $StartAt = (Get-Date).AddHours(-$PastHours) # バックアップ成功時に記録されるイベントログ $FilterHashTable = @{ logname = "Microsoft-Windows-Backup" id = 4 StartTime = $StartAt } try{ $actions = (Get-WinEvent -FilterHashtable $FilterHashTable -ErrorAction Stop) if ($actions){ ForEach($action in $actions){ Write-Host "OK: Windows Backup Completed Successfully at $(($action.Task)),$(($action.TimeCreated))" Exit 0 } }else{ Write-Host "CRITICAL: Windows Backup has not run in past $PastHours hours" exit 1 } }catch [Exception] { Write-Host "CRITICAL: Windows Backup has not run in past $PastHours hours" Exit 1 }

<span title='2021-06-15 00:00:00 +0900 +0900'>June 15, 2021</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

Windows10の機能更新プログラムの制御

Windows 10では半年に1回、「機能更新プログラム」という大型アップデートが配布されます。つい先日、2021年の1回目となる「21H1」が公開されました。 機能更新プログラムは18か月間サポートされるため、過去2回分はスキップできるということになります。 https://docs.microsoft.com/ja-jp/lifecycle/announcements/windows-10-servicing-support-updates 18か月ぎりぎりまで引き延ばすと問題が出た際の対応が大変となるので避けたいところですが、ある程度は様子を見たいところです。WSUSの場合、以下の運用で対応できます。 WSUS管理コンソールの[オプション]-[自動承認]-[更新規則]にて、Windows 10PCが対象となるすべてのルールで「Upgrades」への承認ルールが設定されている場合は解除します これで機能更新プログラムがWSUSに配布されても、PCには適用されない状態となります。 WSUS管理コンソールにて[オプション]-[製品と分類]-[分類]にて「Upgrades」のチェックをつける これで機能更新プログラムがWSUSサーバにダウンロードされるようになります。前述の承認ルールの設定によりPCへの適用はされません 機能更新プログラムの様子見が完了して適用するタイミングで、以下の手順で適用します。 先行して適用するPCと、様子見のPCで別のコンピューターグループを作成してPCを移動します。 WSUS管理コンソールの[更新プログラム]-[すべての更新プログラム] にて承認状態が[未承認]のものを検索すると機能更新プログラムが表示されるので、先行して適用するグループに対してのみ承認処理を行います 先行適用のPCに問題がなければ、様子見のPCを先行適用のコンピューターグループに移動して随時適用します。

<span title='2021-05-20 00:00:00 +0900 +0900'>May 20, 2021</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

MacBook Air(2017)のSSD換装

手持ちのMacBook Air(2017)は、2018年に再整備品をApple Storeで購入しているのですが、目に見えてもっさりした動作になりました。 アプリの起動、ブラウザでGoogle検索から結果をクリックして表示されるまでの時間など、あらゆる動作で数秒待たないと応答が返ってこない状態に。 ディスクの寿命と判断。興味もあったのでディスク交換を行うことにしました。 やっぱり再整備品はこういうリスクがあるのか… 元々256GBを搭載していましたが、BootCampでWindowsと半分ずつにするとだいぶ厳しい状態だったので、思い切って1TBに換装することに。使用したのは以下。 https://www.amazon.co.jp/gp/product/B01CWWAENG/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 https://www.amazon.co.jp/gp/product/B00MVBC4HS/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 https://www.amazon.co.jp/gp/product/B07VXC9QMH/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 「MacBook Air SSD 交換」で検索して表示されるサイトを参考に交換を実施。あっさりと交換できました。 起動後、SSDが認識されずに焦りましたが、再度分解して端子をしっかり差し込みなおしたところ、認識しました。BootCampもOK ダメなら新しいPCを購入するつもりもあったのですが、まだ長い付き合いになりそうです。手持ちのMacBook Air(2017)は、2018年に再整備品をApple Storeで購入しているのですが、目に見えてもっさりした動作になりました。 アプリの起動、ブラウザでGoogle検索から結果をクリックして表示されるまでの時間など、あらゆる動作で数秒待たないと応答が返ってこない状態に。 ディスクの寿命と判断。興味もあったのでディスク交換を行うことにしました。 やっぱり再整備品はこういうリスクがあるのか… 元々256GBを搭載していましたが、BootCampでWindowsと半分ずつにするとだいぶ厳しい状態だったので、思い切って1TBに換装することに。使用したのは以下。 https://www.amazon.co.jp/gp/product/B01CWWAENG/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 https://www.amazon.co.jp/gp/product/B00MVBC4HS/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 https://www.amazon.co.jp/gp/product/B07VXC9QMH/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 「MacBook Air SSD 交換」で検索して表示されるサイトを参考に交換を実施。あっさりと交換できました。 起動後、SSDが認識されずに焦りましたが、再度分解して端子をしっかり差し込みなおしたところ、認識しました。BootCampもOK ダメなら新しいPCを購入するつもりもあったのですが、まだ長い付き合いになりそうです。

<span title='2021-02-21 00:00:00 +0900 +0900'>February 21, 2021</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

iPadのYouTubeでキーボードによる早送り

iPadのYouTubeでキーボードで早送り、巻き戻しをしたいと考えた。 アプリであれば画面の右側/左側ダブルタップすれば(既定で)10秒早送り/巻き戻しとなるが、面倒なのと誤操作がたまに発生するのでキーボードで何とかしたいと考えた。 「ipad youtube ショートカット」あたりで検索すると多数ヒットするが、自分の環境(iPad Pro 9.7inch, iPadOS 14.2, Bluetoothキーボード)ではうまく動作しない。 Google ChromeでYouTubeの動画を全画面表示すると、右矢印、左矢印で15秒早送り、巻き戻しができることを確認。ただ、Chromeでも全画面表示を解除した場合やYouTubeアプリやSafariでは動作しない。

<span title='2020-11-18 00:00:00 +0900 +0900'>November 18, 2020</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41