cron
https://wp.suwa3.me/2019/12/25/pixela%e3%81%a8%e3%81%84%e3%81%86%e8%8d%89api%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6%e3%80%81wordpress%e3%81%aepv%e6%95%b0%e3%82%92github%e9%a2%a8%e3%81%ab/
こちらのblog内容の続きです。
準備内容だとか箇条書きな感じになっているので
もう少し丁寧に書きます。
まず、GitHub風に草を生やすことができるPixela
超かわいい!!と、見た瞬間一目惚れして
ぜひこれでblogのPV数をサイドバーなどに表示させたいと思いました。
(スマホの場合は下にスクロールしてもらうと記事&検索窓の下に表示されます)
順序としては以下のとおりです。
PixelaでユーザーとIDを作成してグラフを表示させてみる PV数を調べるため、対象blogにGoogleAnalyticsを導入する GoogleAnalytics APIを利用してjsonファイルをDLする PythonでjsonファイルからPixelaの求める出力ができるように整形する ディレクトリをサーバーなどに置いてcron実行させる htmlにで埋め込む PixelaでユーザーとIDを作成してグラフを表示させてみる https://pixe.la/
こちらのサービスですが
基本的にすべてWeb APIで構成されるサービスになるため
ユーザーやIDの登録など、設定もAPIで行います。
初めはユーザー登録からAPIで設定することにハードルの高さを感じたのですが
使ううちに、無駄がなくて洗練されているなぁと感じるようになりました。
以下の
a-know には自分の希望ユーザー名
thisissecret にはパスワードを入力します。
$ curl -X POST https://pixe.la/v1/users -d '{"token":"thisissecret", "username":"a-know", "agreeTermsOfService":"yes", "notMinor":"yes"}' 成功すると以下が表示されます。
{"message":"Success.","isSuccess":true} test-graph には希望するID(URLに使われます)
graph-name には希望する名前
commit には希望する単位(kgやmなどでもOK)
int は、今回はPV数ということで整数を扱うのでそのままです。
shibafu には色を入力します。
green,red,blue,yellow,purple,blackから選べます。
$ curl -X POST https://pixe.la/v1/users/a-know/graphs -H 'X-USER-TOKEN:thisissecret' -d '{"id":"test-graph","name":"graph-name","unit":"commit","type":"int","color":"shibafu"}' 成功すると以下が表示されます。
{"message":"Success.","isSuccess":true} ブラウザで以下にアクセスします。
a-know にはユーザー名 test-graph にはIDを指定してください。
https://pixe.la/v1/users/a-know/graphs/test-graph
(ユーザー名にsuwa3/IDにtest-graphを指定した例)
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.
はあい、本日の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で春って単語を含むものをホニャララしたやつ。(忘れた)
このころはコンテナもクラウドもなんでもかんでも仮想っていうから
仮想わけわからんっておもっていた。懐かしい
本日の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の設定をして、そのコードをまとめました。
隠してあるのはユーザー名と、鍵の置き場所です。
$ vi crontab
これは今いる場所にcrontabというファイルをつくってvimで編集
$ crontab -e
これはcrontabというコマンドの中身をvimで編集。
なんか似ててわからんってなったのでまとめです。
cron.yamlは忘れずgit pushです。
最近git操作も慣れてきたよ。
本日のTODO
やることがどんどん増えている。
早くやりたいい、一日6時間くらい作業時間ほしい。
でも疲れちゃうから、せめて3時間かなあ。
いまは一日に1時間も作業時間ないです。
動画を観る / 技術書を読む
この二つは電車やバスなんかの移動中にもできるので
移動中は、なるべくこの時間にあてよう。
Chromeの拡張機能でEvernote Webクリッパーを登録し
Evernote経由で、PCとスマホ間の画像の連携をはかろうと思いついたのだけれども
Webクリッパーでスクショできるのはブラウザ内だけなの。
ターミナルやエディタのスクショはできないらしい。
び、びみょう……
とりあえずWeb閲覧時のmemo用だなあ。
.
お昼休みはcronの修正をしておわりました。
cronの設定自体は難しくないことはわかったのだけれども
その中のDockerコマンドがややこしいの。
要復習だなあ。
.
夕方はHomebrewでpostgreSQLのinstallをしました。
blogは下記を参照。
macOs Sierra + homebrewな環境でPostgresqlを導入する備忘録
後半のパス設定は要らなそうだったので、とりあえず触らず。
.
そういえば@女子部でターミナル半透明率かなり高くて
真似してみたの、壁紙の色も相まって涼しげになった。
帰りの移動時間は電車内でPythonの動画を観ていました。
以前スクレイピングの本を読みながら書いた時もあったけれども
もう一度きちんと基礎からやろうとおもいます。
ザーッと読んでバババと書いて
またスクレイピングと機械学習の書籍を参考書として
手を動かすことで慣れたい。