趣味、研究、その他いろいろ

月: 2021年12月

私のtmux.conf紹介

set -g default-terminal "screen-256color"
set -g terminal-overrides 'xterm:colors=256'

set -s escape-time 0

set-option -g status-interval 1

set -g base-index 1

setw -g pane-base-index 1

#set -g window-style 'bg=colour239'
#set -g window-active-style 'bg=colour234'

set -g prefix C-x

#bind - split-window -v

#bind \ split-window -h
bind-key \\ split-window -h
bind-key - split-window -v
# ペインの縦分割
#bind m split-window -vc "#{pane_current_path}"
# ペインの横分割
#bind n split-window -hc "#{pane_current_path}"

bind -n S-left select-pane -L
bind -n S-down select-pane -D
bind -n S-up select-pane -U
bind -n S-right select-pane -R

# Shift arrow to switch windows
bind -n C-Left  previous-window
bind -n C-Right next-window

bind -n C-o select-pane -t :.+

bind e setw synchronize-panes \; display "synchronize-panes #{?pane_synchronized,on,off}"

# Prefix+v でコピーモード開始
bind-key v copy-mode \; display "Copy mode!"
#bind-key -t vi-copy v begin-selection

# Prefix+p でペースト
# クリップボードにも保存されているので Cmd-v でもペースト可能
bind-key p paste-buffer

set-option -g status-justify "centre"

set-option -g status-bg "colour238"

set-option -g status-fg "colour255"

set-option -g status-left-length 20

set-option -g status-left "#[fg=colour255,bg=colour241]Session: #S #[default]"

set-window-option -g window-status-format " #I: #W "

set-window-option -g window-status-current-format "#[fg=colour255,bg=colour27,bold] #I: #W #[default]"

set-option -g status-right-length 60

set-option -g status-right "#[fg=colour255,bg=colour241] #h | LA: #(cut -d' ' -f-3 /proc/loadavg) | %m/%d %H:%M:%S#[default]"

set-option -g mouse on

bind -n WheelUpPane   select-pane -t= \; copy-mode -e \; send-keys -M
bind -n WheelDownPane select-pane -t= \;                 send-keys -M
#set-window-option -g mode-mouse on
#set-option -g mouse-select-window on
#set-option -g mouse-resize-pane on
#set-option -g mouse-select-pane on

cronが正しく送られない話

やりたいこと

Line Notifyを用いて定期的にリマインドしてくれるようにしたい

手順

Line Notifyのページ(こちら)からログインしてアクセストークンの発行(開発者向け)を行う。

Line notifyで通知してくれるシェルスクリプトを作成

自分は以下のように書きました。(リマインド:炊飯と通知してくれるコードです)

#!/bin/bash
LINE_ACCESS_TOKEN="jXN4lE38ve0ljxYRlF9jPBwytvcI48Xsad1iqRBKTeF"
function line_notify() {
  MESSAGE=$1
  curl -X POST -H "Authorization: Bearer ${LINE_ACCESS_TOKEN}" -F "message=$MESSAGE" https://notify-api.line.me/api/notify
}
line_notify "リマインド:炊飯"

これをcronに登録

$ echo "0 17 * * * . /home/itotaku/cron/notify_rice.sh" > cron.conf
$ crontab cron.conf

どこで詰まったか

直接

. /home/itotaku/cron/notify_rice.sh

とすれば通知できるのにcronを経由すると通知が来なかった。

Web検索しながら調べてみた

Webサイトで解決策を調べてみると、postfixのインストールが必要という記事をよく見ました。

それの通りにやってもうまくいかなかったです。

結局どう解決したか

根本的な問題の解決には至っていないかもしれませんが、シェルスクリプトに実行権限を与え、ドットコマンド(.)を使わずに登録すればうまくいきました。

$ chmod 775 notify_rice.sh
$ echo "0 17 * * * /home/itotaku/cron/notify_rice.sh" > cron.conf
$ crontab cron.conf

通知が来た!