揮発性のメモ2

http://d.hatena.ne.jp/iww/

Linux

expectで、ログを取りながらログインする

#!/usr/bin/expect -f set IPADDR "192.168.0.2" set USERID "hoge" set USERPW "piyo" set LOGFILE "test.log" # エラー・タイムアウト用関数 proc ABORT {} { exit 1 } # ログ取得開始 log_file $LOGFILE # expectのタイムアウトを30秒とする set timeout …

let's encrypt の証明書を取得する

ユーザーガイド - Let's Encrypt 総合ポータル 動き certbot-auto 証明書をダウンロードしてインストールしてくれるスクリプト 実行すると、このスクリプトが /var/www/.well-known/ 配下に適当な一時ファイルを作成する。 let's encrypt の人が http://exam…

expectで、日付を求める

年月日時分秒を取得したい dateコマンドを使う #!/usr/bin/expect -f set NOW [ exec date "+%Y%m%d%H%M%S" ] puts "--$NOW--" clock関数を使う #!/usr/bin/expect -f set NOW [ clock format [ clock seconds ] -format "%Y%m%d%H%M%S" ] puts "--$NOW--" …

自分用bashrc

~/myrc # ~/myrc として保存し、 # ~/.bash_profile の最後に . myrc を足す # パスを通す export PATH=$PATH:~/bin # sudo で vi使う export EDITOR=vi # less で 色付きエスケープ有効 export LESS='-R' # less で 日本語読む [ -z "$LESSCHARSET" ] && ex…

sSMTPの設定

# # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=postmaster # メールサーバのIPアドレスかホスト名。ポート番号もつけれる mailhub=example.com:587 # ログインID…

あるディレクトリ以下でファイルを開いていそうな人一覧

lsof +D /var/log 「開いている間に削除されてしまった見えないファイル」を見たいときは 諦めて引数なしの lsof を実行するほかない

grepで見つかった最初の1行だけ表示する

-mオプションで、指定した行数分見つかったら検索をやめる。 1を指定すれば最初の1行だけになるMan page of GREP -H ファイル名を必ず表示 -h ファイル名を必ず非表示 -n 行番号を表示 -I *1 バイナリを対象外 -m X X行マッチしたらそのファイルの検索をやめ…

rsyslogdがログファイルを掴んで離さない

ディスクが見えないファイルに圧迫されていたので lsof で確認したところ、 rsyslogdがでかいログファイルを掴んで離さないのが発見された。 rsyslogd 511 root 4r REG 0,3 0 4026531924 /proc/kmsg rsyslogd 511 root 5w REG 8,1 4873859072 262184 /var/lo…

FAT領域をパーミッション全開でマウントする

普通にマウントするとrootしか書けないのでオプションを指定する # mount -o umask=000 /dev/mmcblk0p1 /mnt/ # ls -ld /mnt/ drwxrwxrwx 3 root root 4096 Jan 1 1970 /mnt/ Windowsファイルの読み書き設定(FAT,FAT32の設定) (FedoraCore6)

メモリリーク

strdupが使われている個所でメモリリークが起きていた。Man page of STRDUP Man page of BASENAME char *dirc, *basec, *bname, *dname; char *path = "/etc/passwd"; dirc = strdup(path); basec = strdup(path); dname = dirname(dirc); bname = basename(…

cppcheckの使い方

apt install cppcheck$ cd src $ cppcheck . ・・・ Checking p_tester.cpp... [p_tester.cpp:87]: (error) Memory leak: keep 97/99 files checked 99% done ・・・ enableオプション --enable=warning warning エラーになりそうな書き方の指摘未初期化変数…

connmanでDNSサーバを指定する

/var/lib/connman/hoge.conf にて設定する [service_piyo] Type=ethernet IPv4=192.168.200.2/255.255.255.0/192.168.200.1 IPv6=off Nameservers=192.168.200.1, 8.8.8.8 # ←★カンマ区切りで列挙する もし、IPv4をdhcpにしていたら ここに書いたDNSサーバの…

connman使用時の resolv.conf

connman使用時の resolv.conf は lrwxrwxrwx 1 root root 24 Sep 21 20:50 /etc/resolv.conf -> /run/connman/resolv.confこんなんなっててびっくりした しかも実態は存在しないし

connmanctlでよく出るエラー

~# connmanctl disable eth0 Error eth0: Method "SetProperty" with signature "sv" on interface "net.connman.Technology" doesn't exist テクノロジー(wifiとかethernetとか) を指定するべきところで、うっかりインターフェース(eth0)を書いてしまってい…

connmanのリファレンスマニュアル

connman(8) — connman — Debian stretch — Debian Manpages connmanctl(1) — connman — Debian stretch — Debian Manpages connman.conf(5) — connman — Debian stretch — Debian Manpages connman-service.config(5) — connman — Debian stretch — Debian M…

connmanで無線LANをテザリング対象にする

~# connmanctl tether wifi on HOGEHOGE PIYOPIYO Wifi SSID set Wifi passphrase set Enabled tethering for wifi SSID HOGEHOGE キー PIYOPIYO

connmanで有線LANをテザリング対象にする

有線LANをテザリングしようとしてもエラーになる # connmanctl tether ethernet on Error enabling ethernet tethering: Not supported /etc/connman/main.conf を編集し、有線LANもテザリングできるようにする # リブートしてもテザリングを有効化するか Pe…

タイムゾーン設定

タイムゾーンは /etc/localtime で決まる # ls -l /etc/localtime lrwxrwxrwx 1 root root 30 Sep 21 17:45 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo シンボリックリンクを直接書き換えてしまうか、デビアンっぽくコマンド使う # dpkg-reconfigure…

SSID一覧取得

端末からアクセスポイントの情報を調べるには? iwlistコマンド:ネットワーク管理の基本Tips - @IT iwlist wlan0 scan| perl -nle '/ESSID:"(.*)"/ && print $1' 近頃は nmcli というかっこいいコマンドがあるらしいけれど、network-managerパッケージにあ…

WSGIでpythonを動かすやつ

linux4.9, debian9.5, apache2.4, python3.5 WSGI Web Server Gateway Interface pythonを動かすために作られたFastCGIのパチモン。 拡張子は .wsgi にしておくとよい。 要求に応じて.wsgiファイルの中の application関数*1 が呼び出される。 デーモンモード…

apache2.4でCGIを動かすやつ

bashとかpythonとか普通じゃないやつで遊ぶ用 mod_cgid.so を有効にする コマンドで有効化する(21世紀なので、シンボリックリンクを手で書いたりしない) sudo a2enmod cgid よくある設定 Alias "/hoge" "/home/unko/project/hoge" <Directory "/home/unko/project/hoge"> # 拡張子.cgi をCGIとみ</directory>…

timespec の足し算引き算

#include <time.h> // clock_gettime #include <stdio.h> // printf struct timespec *timessub(const struct timespec *A, const struct timespec *B, struct timespec *C) { C->tv_sec = A->tv_sec - B->tv_sec; C->tv_nsec = A->tv_nsec - B->tv_nsec; if(C->tv_nsec<0){ C</stdio.h></time.h>…

flock

ファイルロックを使ったプロセス間での排他制御 // gcc -Wall -lpthread test_flock.c #include <fcntl.h> // O_CREAT #include <sys/file.h> // flock #include <stdio.h> // printf #include <unistd.h> // sleep int main() { int fd = open("/tmp/hoge", O_CREAT, 0600); printf("ロック\n"); flo</unistd.h></stdio.h></sys/file.h></fcntl.h>…

pthread_mutex_lock

Pスレッドのmutexを使ったプロセス間での排他制御 // gcc -Wall -lpthread test_mutex.c -lrt // 動かんときは rm /dev/shm/hoge #include <fcntl.h> // O_CREAT #include <stdio.h> // printf #include <unistd.h> // sleep #include <sys/mman.h> // mmap #include <stdlib.h> // exit #include <pthread.h> // pthread #</pthread.h></stdlib.h></sys/mman.h></unistd.h></stdio.h></fcntl.h>…

sem_init

共有メモリ上の名前なしセマフォを使ったプロセス間での排他制御 // gcc -Wall -lpthread test_seminit.c -lrt // 動かんときは rm /dev/shm/hoge #include <fcntl.h> // O_CREAT #include <semaphore.h> // sem_wait #include <stdio.h> // printf #include <unistd.h> // sleep #include <sys/mman.h> // mmap #i</sys/mman.h></unistd.h></stdio.h></semaphore.h></fcntl.h>…

sem_open

名前付きセマフォを使ったプロセス間での排他制御 // gcc -Wall -lpthread test_sem.c // 動かんときは rm /dev/shm/sem.unko #include <fcntl.h> // O_CREAT #include <semaphore.h> // sem_wait #include <stdio.h> // printf #include <unistd.h> // sleep int main() { // 1を指定するとバイナリセ</unistd.h></stdio.h></semaphore.h></fcntl.h>…

プロセス間での排他制御

生成 ロック アンロック 共有メモリ 備考 ファイルロック open flock(fd,LOCK_EX) flock(fd,LOCK_UN) 不要 他言語と連携可 600 名前付きセマフォ sem_open sem_wait sem_post 不要 -pthread 16 名前なしセマフォ sem_init sem_wait sem_post 必要 -pthread 1…

connman で無線LANの接続設定をする

BeagleBone Green Wirelessの初期設定 :: WASP株式会社 connmanctl command man page - connman | ManKier ConnMan - ArchWiki connmanctlコマンドでいったん接続してしまえば、設定が保存されて次から自動接続するようになる。 # connmanctl connmanctl> te…

connman 無線LAN接続設定ファイル

/var/lib/connman/wifi_112233445566_484f4745484f4745_managed_psk/ に保存される この長い名前は wifi_MACアドレス_SSID_managed_psk という構成settings と data という二つのファイルが保存される settings こんな感じ。 省略可能な項目はほぼないので、…

sudo: sudo を実行するには tty がなければいけません。すみません

sudo: sudo を実行するには tty がなければいけません。すみませんsudo: sorry, you must have a tty to run sudo - 揮発性のメモ