ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

サービスの操作

systemctl配下で動くサービス一覧 # systemctl list-units 自分用サービスユニットファイル例 1 2 3 4 5 6 7 8 9 10 11 12 # cat /etc/systemd/system/gvis.service [Unit] Description = gvis daemon [Service] ExecStart = /gvis/script/000_serviceStart.sh Restart = no Type = simple [Install] WantedBy = multi-user.target サービス開始例 # systemctl start docker.service サービス停止例 # systemctl stop docker.service サービス有効化例 # systemctl enable gvis.service サービス無効化例 # systemctl disable gvis.service サービス有効かどうか確認 # systemctl is-enable xrdp

rcloneでgoogle drive活用

google driveの自分の利用領域へlinuxのフォルダを同期コピーさせる。 rcloneというのはコマンドラインのことで、google drive以外にもawsとかazureとか同期処理ができるらしい。 性能はcyberduckのコピーよりもかなり速い(cyberduckは検算もしてるし丁寧ではあるが・・・)。 手元PCの中に100GBのzipファイルが2つ3つあったとして、9:00に初めたら昼には終わる。 Google Cloudの中からだったらもっと速い。転送レートはローカルの2.5~3倍は出る。 いつか壊れるバックアップ置き場をローカルで数TB確保するより、壊れないし速いしずっといい。 rcloneのインストールとmanの展開 curlで取ってきて/usr/binに展開しmandbに追加 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 $ cd $ mkdir rclone $ cd rclone $ curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 12.3M 100 12.3M 0 0 8717k 0 0:00:01 0:00:01 --:--:-- 8717k $ ls rclone-current-linux-amd64.zip $ unzip rclone-current-linux-amd64.zip Archive: rclone-current-linux-amd64.zip creating: rclone-v1.53.3-linux-amd64/ inflating: rclone-v1.53.3-linux-amd64/README.html inflating: rclone-v1.53.3-linux-amd64/rclone.1 inflating: rclone-v1.53.3-linux-amd64/rclone inflating: rclone-v1.53.3-linux-amd64/README.txt inflating: rclone-v1.53.3-linux-amd64/git-log.txt $ ls rclone-current-linux-amd64.zip rclone-v1.53.3-linux-amd64 $ cd rclone-v1.53.3-linux-amd64/ $ ls git-log.txt rclone rclone.1 README.html README.txt $ ls -l total 40200 -rw-r--r-- 1 nari docker 1935 Nov 20 02:13 git-log.txt -rwxr-xr-x 1 nari docker 37654528 Nov 20 02:15 rclone -rw-r--r-- 1 nari docker 1177819 Nov 20 02:04 rclone.1 -rw-r--r-- 1 nari docker 1282524 Nov 20 02:04 README.html -rw-r--r-- 1 nari docker 1037677 Nov 20 02:04 README.txt $ sudo cp rclone -p /usr/bin/ $ sudo chown root:root /usr/bin/rclone $ sudo chmod 755 /usr/bin/rclone $ mkdir -p /usr/local/share/man/man1 $ sudo cp rclone.1 /usr/local/share/man/ $ sudo mandb $ rclone version rclone v1.53.3 - os/arch: linux/amd64 - go version: go1.15.5 $ rcloneするosユーザの作成 googleアカウントとdriveは事前に作っておく。 ここではgvisDriveとして識別させてる。 ...

 ⭐️

linuxの基礎

忘れそうなコマンド類のメモ。 crontabで定期実行する例 指定は分、時、日、月、曜日を指定。 毎日11:00にとあるシェルを動かす場合 00 11 * * * /bin/sh /gvis/script/hogehoge.sh 1月15日と6月15日の11:00にとあるシェルを動かす場合 00 11 15 1,6 * /bin/sh /gvis/script/hogehoge.sh 毎週月曜から金曜の11:00にとあるシェルを動かす場合 00 11 * * 1-5 /bin/sh /gvis/script/hogehoge.sh 5分おきにとあるシェルを動かす場合 */5 * * * * /bin/sh /gvis/script/hogehoge.sh crontabのコマンドライン crontabの登録内容をテキストに書き出して保存。 crontab -l > res.txt テキストからcrontab登録。 crontab ./res.txt ほとんど使わないけど、crontabの直接編集。 オッサンはnanoじゃなくviに慣れてるので、いったんテキストファイルをviで編集してからでないと登録しない。 crontab -e 変更前と変更後を維持したいから、直接編集は使わない。 業務利用だったら、diffで比較して差分が必要な箇所だけになってることを確認するのも理由。 ローカルlinuxのcrontab 実際のrootのcrontab設定。 シェルは間違って動くと困るものもあるので、実行権はつけてない。 (dockerのエンジン停止とか困る) 代わりに/bin/shで呼び出す。 ちゃんと書けば、書いておいたタイミングで確実に動いてくれる。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #daily shutdown 59 23 * * * /bin/sh /gvis/script/901_OSstop.sh > /dev/null 59 11 * * 1-5 /bin/sh /gvis/script/901_OSstop.sh > /dev/null #Timely procdure 00,10,20,30,40,50 * * * * sync 01,11,21,31,41,51 0-23 * * * /bin/sh /gvis/script/903_ping_kanshi.sh 172.16.17.15 Yamaha_rtx1210 > /dev/null 05,15,25,35,45,55 0-23 * * * /bin/sh /gvis/script/802_CHKdiskStat.sh > /dev/null 06,16,26,36,46,56 6-21 * * * /bin/sh /gvis/script/803_CHKonlchkStat.sh > /dev/null 07,17,27,37,47,57 0-23 * * * /bin/sh /gvis/script/804_CHKsyslogStat.sh > /dev/null 09,19,29,39,49,59 6-23 * * * /bin/sh /gvis/script/805_CHKgavann-it.sh > /dev/null ### */2 0-23 * * * /bin/sh /gvis/script/808_CHKnetlogStat.sh > /dev/null */2 0-23 * * * /bin/sh /gvis/script/808_CHKnetlogStat2.sh > /dev/null #monthly GoogleDrive every Weekday 30 9 * * 1-5 /bin/sh /gvis/script/gdr/003_SyncNari.sh > /dev/null #daily Report 11 5 * * * /bin/sh /gvis/script/801_daily_report.sh > /dev/null 11 10 * * * /bin/sh /gvis/script/801_daily_report.sh > /dev/null #daily rm 00 7 * * * /bin/find /gvis/ -name ".*DS_Store" -print -exec rm {} ";" 01 7 * * * /bin/find /gvis/ -name "Thumbs.db" -print -exec rm {} ";" 02 7 * * * /bin/find /nari/ -name ".*DS_Store" -print -exec rm {} ";" 03 7 * * * /bin/find /nari/ -name "Thumbs.db" -print -exec rm {} ";" fsckしてからマウント ディスクの不整合を整えてマウントする。 ...

Dockerでサービス設定

systemctlのdocker.serviceファイル 何が正解かを見つけるのは道半ば。自信のない個所や試せてない箇所も多い。 設定ファイルはsystemctlで確認できる。 /lib/systemd/system/docker.serviceって書いてある。 1 2 3 4 5 # systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled) : (省略) 書き換えたら、必ず実行必要。でもいつも忘れる。 # systemctl daemon-reload Dockerでサービス停止するときにsocketのメッセージ docker利用環境をcent8からubuntu20に引っ越した頃、systemctlでサービス停止するときに「ソケットまだ生きてんでー」みたいなメッセージが出るようになった。 Warning: Stopping docker.service, but it can still be activated by: docker.socket とりあえずコンフィグレーションコメント化。 修正前)Requires=docker.socket containerd.service 修正後)# Requires=docker.socket containerd.service あとは"-H fd://“を外す。 ...

ubuntuで最初にaptした内容

centos7から8にバージョンアップしたとき、docker使いにくくなったのとxrdpがエラーばっかり出すようになってつながらんから、ubuntu20に切り替えたときからのメモ。 ubuntu22になっても必要な箇所選んでやってった。 最初のapt 物理マシンでも仮想マシンでもrdpコンテナでも選んでaptしてく。 1 2 3 4 5 6 7 8 9 10 apt-get install open-vm-tools apt-get install nmon apt install openssh-server apt install xrdp apt install mailutils apt update apt install postfix apt install nkf apt-get install apt-transport-https ca-certificates gnupg apt-get update && sudo apt-get install google-cloud-sdk 仮想マシンにopen-vm-toolsは必須。 ...

 ⭐️