Slack のメッセージを自動削除 2021 (3)

前回 slack-cleaner2 で Slack のメッセージを削除する方法について書いた。

Slack のメッセージを自動削除 2021 (2) – with a Christian Wife
https://wacw.cf/2021/07/15/deleting-messages-of-slack-automatically-2021-2/

今回はそれをシェルスクリプトで実行する。シェルスクリプトにすれば cron に登録したりするのも扱いやすくなる。

環境:macOS Catalina Version 10.15.6(英語環境)

(1)10 日前より前の「テスト」チャンネルのメッセージを一括削除するには以下のようなシェルスクリプトを作成する。

 1#!/bin/sh
 2
 3set -eu
 4
 5TOKEN="[Slack Token]"
 6CHANNEL="テスト"
 7DATE=`date -j -v-10d +"%Y%m%d"`
 8RATE=1
 9
10slack-cleaner2 --token ${TOKEN} --message --channel ${CHANNEL} --bot --perform --rate 1 --before ${DATE} &>/dev/null

メモ:
・Mac の場合、date コマンドでは –date(-d)オプションがないので、指定方法が少し異なっている。
・非公開チャンネルの場合は –channel の部分を –group に書き換える。
・最後の「&>/dev/null」によって、削除結果の標準出力および標準エラー出力が表示されなくなる。

(2)1を DeleteSlackMessage.sh とでも名付けて保存する。

以下のコマンドで実行権限を付与する。

$ chmod 755 DeleteSlackMessage.sh

以下のコマンドで実行する。

$ DeleteSlackMessage.sh

(3)cron へ登録するのには苦労した。

(3-1)slack-cleaner2 のコマンドの絶対パスを確認する。

1$ which slack-cleaner2
2/usr/local/bin/slack-cleaner2

(3-2)1のシェルスクリプトの slack-cleaner2 を /usr/local/bin/slack-cleaner2 と書き換える。cron ではない通常の実行でも問題なく動くので、1のシェルスクリプトを書く最初の時点からこのように書いておけばいい。

(3-3)以下のように cron に登録する。

0 6 \* \* * /DeleteSlackMessage.sh

参考:
定期的にslackのbotのメッセージを消す – ramenjunitiメモ
https://ramenjuniti.hatenablog.com/entry/2020/04/15/223208

[Mac] コマンドラインで画像をクロップする – with a Christian Wife
https://wacw.cf/2021/05/17/cropping-images-with-commandline/

シェルスクリプトを書くときはset -euしておく – Qiita
https://qiita.com/youcune/items/fcfb4ad3d7c1edf9dc96

Macでdateコマンドを使いこなす – ののいち の 1.2..3…
https://nonoichi123.hatenablog.com/entry/mac%25e3%2581%25a7date%25e3%2582%25b3%25e3%2583%259e%25e3%2583%25b3%25e3%2583%2589%25e3%2582%2592%25e4%25bd%25bf%25e3%2581%2584%25e3%2581%2593%25e3%2581%25aa%25e3%2581%2599/

【 date 】コマンド――現在の日時を表示する/変更する:Linux基本コマンドTips(77) – @IT
https://www.atmarkit.co.jp/ait/articles/1701/12/news016.html

date コマンド | コマンドの使い方(Linux) | hydroculのメモ
https://hydrocul.github.io/wiki/commands/date.html

Macのdateコマンドで1日後の日付を取得する
https://salumarine.com/get-the-next-day-using-date-command-on-mac/

コマンドラインから Pleroma に投稿する – with a Christian Wife
https://wacw.cf/2021/06/07/pleroma-with-curl/

&>/dev/null と >/dev/null の違い – Qiita
https://qiita.com/kiyodori/items/a37cfc23f068a5c16b2c

Slack でチャンネル内のメッセージを一括削除する – with a Christian Wife
https://wacw.cf/2018/04/23/delete-all-messages-in-slack/

cronが起動しないときの確認ポイントまとめ: 小粋空間
https://www.koikikukan.com/archives/2012/10/30-015555.php

cronを使った時に躓いたこと | ハックノート
https://hacknote.jp/archives/55747/

macOS 10.15 catalina で crontab を使用する | 林檎コンピュータ
https://mac-ra.com/catalina-crontab/

シェルコマンド1行で複数コマンドや条件に応じた実行をする – Qiita
https://qiita.com/wwwaltz/items/9ee247ee8fe3ab63fd27

MacでCronを動かす – Qiita
https://qiita.com/kami_tsukai/items/966276887fe79547ca74

Macでcronを使う時の注意点 – Qiita
https://qiita.com/ryusukefuda/items/878556158d8f1d3d887a