PORTでもくもく

PORTのもくもく会に行きました。
先月行けなかったので、少し久しぶりな感じでした。
だんだん知り合いが増えてきて、ホーム感増してきたの嬉しいなぁ。

LTをやったので懇親会にも初参戦したよ。
あまり話したことない人とたくさん話せて楽しかったです。

主に趣味鯖上で運用しているSNSの
dumpのcronを書き換えたりsidekiqの設定を変えたりしました。
備忘録を残します。

$ crontab -l 
0 0 * * * docker run --link mastodon_db_1 --volume /opt/backup:/mnt/backup --network mastodon_internal_network postgres:9.6-alpine /bin/sh -c "pg_dump -U postgres -h mastodon_db_1 postgres | gzip -c > /mnt/backup/dump-`date +'%Y-%m-%d'`.sql.gz; exit" > ~/cron.log 2>&1

本当はローカルにdump取りたいの
でもとりあえずdiscfullでEC2が定期的に落ちるのどうにかしたいので

`date +'%Y-%m-%d'`

ここの部分を削除して
dumpファイルが最新のものに上書きされるようにしました。
つまりこうです。

$ crontab -l 
0 0 * * * docker run --link mastodon_db_1 --volume /opt/backup:/mnt/backup --network mastodon_internal_network postgres:9.6-alpine /bin/sh -c "pg_dump -U postgres -h mastodon_db_1 postgres | gzip -c > /mnt/backup/dump.sql.gz; exit" > ~/cron.log 2>&1

これでいったんは大丈夫なはず。
運用し始めて数ヶ月経つけれども、一度もdumpファイルが必要になったことないので
暫定的な対処です。
無料枠でRDSを立ててDBの引越しが済めば
これらのバックアップは必要なくなるし、監視もしやすくなるので
できればそうしたいなぁ。
無料枠が切れたら、またPostgreSQLに戻します!

sidekiqの方は、かなり分からないので
「試しにやってみて期待した挙動と違ったらまた考える」
状態なのですが
config以下にあるsidekiq.ymlを編集して

$ vi config/sidekiq.yml
---
:concurrency: 1
:queues:
[default, 6]
[push, 4]
[mailers, 2]
[pull] 

最初ここは:concurrency: 5だったのだけれども
並列処理しすぎて詰まりすぎているのでは?という懸念があり
一度メンテナンスモードに切り替えて
リクエストを一つずつ処理させるモードに変えてみました。

メンテナンスモード中は管理者画面に入れないので
一晩この設定で試してみたら
明日は通常モードに切り替えて
sidekiqの管理画面からジョブキューのログを見てまた判断したいと思います。

今日はLTの資料を作っていたら思いのほか時間が溶けて
「とりあえず暫定的な対処!」
みたいな感じになってしまった😣
他鯖の影響を受けてリクエスト急増時に
EC2へsshログインしづらくなるのがしんどい。
ラズパイなどにAnsibleを置いて、sshログインなかなか出来なくても
粘り強くログインするまで頑張るAnsibleに設定して
メンテナンスモードへの切り替えだけでも自動化させたいです。

~/.ssh/configの設定など

はあい、本日のTODOです。

~/.ssh/configの設定

先日Docker沈黙タイムがやたら長くて帰れない事態に陥ったので

~/.ssh/configに、サーバーへ60秒毎に生きている報告をする設定を書きました。

~/.ssh/configについて – Qiita

ラズパイにログインするのも簡単になった。

やったねえ


cronをAnsibleに追加

そしてメディア削除のDockerコマンドをcronで実行したもの。

(参照)usermod/cronでdocker-compose – うさぎでもわかる

これを構成管理に組み込むためAnsibleに設定しました。

9ddで一気に9行消せた、わーい

そしてdd連打していたら関係ないところも消してしまい

ひーん😢となって調べたらuで元に戻せました。

viコマンド

*ddカーソルがあるところから*行削除 ex.3dd(3行削除)
*yyカーソルがあるところから*行コピー
pペースト
u操作を一つ戻す
Ctrl+r戻すのを戻す

※ dd,yyでそれぞれ1行削除/コピー


デスクトップのゴミ箱化どうにかする

デスクトップがゴミ箱代わりになっていて

スクリーンの設定で見えないようにしていたの。

きちんと整理したいとおもい

スクショの保存先がデスクトップなのが諸悪の根源だと考え

保存先を指定できるか調べました。

Macのスクリーンショットの保存先を変更する|MacFan

ホームにSSディレクトリを作成して以下のコマンドを実行

 $ defaults write com.apple.screencapture location ~/SS/;killall SystemUIServer 

変更できた。わーい

むかしスクショしたものが出てきたよ。

たぶんvenvで仮想環境つくり、Pythonで春って単語を含むものをホニャララしたやつ。(忘れた)

このころはコンテナもクラウドもなんでもかんでも仮想っていうから

仮想わけわからんっておもっていた。懐かしい

usermod/cronでdocker-compose

本日のTODOリストです。

ポートを変えるのは気休めだけれども、やってみたいなあと思います。

ユーザー名を変えるのはできた!

Linuxのユーザー名を変更する – そんなこと猫でもできる

そんなこと猫でもできるらしい。

うさぎでもできるかな。

 $ sudo docker-compose run --rm web bundle exec bin/tootctl media remove --days=25 

このコマンドをcronで実行しようとおもって調べた。

# docker-composeコマンドについて

– docker-compose.ymlがある場所で実行される

– ファイルパス-fでdocker-compose.ymlがある場所を指定して実行させることも可能 (下記参照)

 $ 0 0 * * * docker-compose -f /******/*******/mastodon/docker-compose.yml run --rm web ..... 

– rootのcrontabに設定する場合はsudoは不要

– crontabは各ユーザーそれぞれにcrontabがある

– rootになった状態で crontab -u(ユーザー名)のようにすれば、それぞれのcrontabを見ることができる

– ユーザー名-uを指定しない場合は、今のユーザーのcrontabが表示される

cron 3ステップ

1.cronでやる前に手動で動くか確認。

2.動いたらcronで毎分確認。

3.動いたら定時で確認。

最近、難しそうだなあってことでも

「調べてやってみればできるのでは?」

ってきもちになってきた。

そして、案外やってみればできるということに気づいた。

とにかくどんどん行動してみている。

たのしいー

ちなみにs3のビフォーアフターです!

画像削除、成功です。やったねえ

Ansibleでcronの設定まとめ

本日はAnsibleの設定をして、そのコードをまとめました。

隠してあるのはユーザー名と、鍵の置き場所です。

$ vi crontab

これは今いる場所にcrontabというファイルをつくってvimで編集

$ crontab -e

これはcrontabというコマンドの中身をvimで編集。

なんか似ててわからんってなったのでまとめです。

cron.yamlは忘れずgit pushです。

最近git操作も慣れてきたよ。

本日のTODO

やることがどんどん増えている。

早くやりたいい、一日6時間くらい作業時間ほしい。

でも疲れちゃうから、せめて3時間かなあ。

いまは一日に1時間も作業時間ないです。

動画を観る / 技術書を読む

この二つは電車やバスなんかの移動中にもできるので

移動中は、なるべくこの時間にあてよう。

postgreSQLなど

Chromeの拡張機能でEvernote Webクリッパーを登録し

Evernote経由で、PCとスマホ間の画像の連携をはかろうと思いついたのだけれども

Webクリッパーでスクショできるのはブラウザ内だけなの。

ターミナルやエディタのスクショはできないらしい。

び、びみょう……

とりあえずWeb閲覧時のmemo用だなあ。

.

お昼休みはcronの修正をしておわりました。

cronの設定自体は難しくないことはわかったのだけれども

その中のDockerコマンドがややこしいの。

要復習だなあ。

.

夕方はHomebrewでpostgreSQLのinstallをしました。

blogは下記を参照。

macOs Sierra + homebrewな環境でPostgresqlを導入する備忘録

後半のパス設定は要らなそうだったので、とりあえず触らず。

.

そういえば@女子部でターミナル半透明率かなり高くて

真似してみたの、壁紙の色も相まって涼しげになった。

帰りの移動時間は電車内でPythonの動画を観ていました。

以前スクレイピングの本を読みながら書いた時もあったけれども

もう一度きちんと基礎からやろうとおもいます。

ザーッと読んでバババと書いて

またスクレイピングと機械学習の書籍を参考書として

手を動かすことで慣れたい。