平衡点


2014/07/05

_ systemd + squid3 + resolvconf

squid3.service - 平衡点(2014-06-30) の続き. とっても ad hoc な気がしたので, ちょっと変えてみた.

結局 /etc/resolvconf/update-libc.d/squid3 において resolvconf が squid3 が起動していないのに reload し始めるのが原因なので

# source: sh
#!/bin/sh

PATH="/usr/sbin:/usr/bin:/sbin:/bin"

# Make squid aware of changes to resolv.conf
squid3 -k reconfigure 2>/dev/null || true

なんてしてみた訳ですが. ...これで良いのかな?

ついでに squid3.service は以下の通りに修正:

# source: conf
[Unit]
Description=Full featured Web Proxy cache (HTTP proxy)

[Service]
Type=forking
PIDFile=/run/squid3.pid
ExecStartPre=/usr/sbin/squid3 -z -f /etc/squid3/squid.conf
ExecStart=/usr/sbin/squid3 -YC -f /etc/squid3/squid.conf
ExecReload=/usr/sbin/squid3 -k reconfigure

[Install]
WantedBy=multi-user.target

...はてさて.


2014/07/10

_ NetworkManager が新しくなって...

手元で仕込んでいた cron script が動作していなくて、悩むことしばし。

offlineimap を cron で 15分おきに起動するスクリプト内で、 起動前に nm-toolsed なんかをゴニョゴニョして 接続状態を確認していたのだけれど、なんと nm-tool が無くなっていた。

良くみたら nm-online というコマンドがあったので、

# source: sh
# check network is avaliable
nm-online -x || exit 0

としてみた。なんで気がつかなかったのか、といえば そういや apt-listchanges が動いていない気もしないでもない。


2014/07/11

_ 誕生日?

だったみたいです。おいわい下さった皆様、ありがとうございました。

おかげさまで 0x24 歳になりました。今後ともよろしくお願いします。

...ん?

デスヨネー。

精進します。


2014/07/26

_ Conky用のbiffスクリプト

普段はofflineimapでメールを同期し、localhostでdovecot-imapd上げてメールを読んでいる.

折角手元にIMAPサーバがあるのだから、

  • Conkyで未読メール数を表示させる
  • IMAP IDLEに対応する

といった事をやりたくなった.

...のででっち上げてみた.

# source: ruby
#! /usr/bin/env ruby
# -*- coding: utf-8 -*-
# Copyright 2014 Youhei SASAKI <uwabami@gfd-dennou.org>
#
# License: MIT/X11 @see http://opensource.org/licenses/mit-license.php
#
require 'yaml'
require 'net/imap'

$config = YAML.load_file(File.expand_path(File.dirname(__FILE__))+ '/config.yaml')

def openConnection()
  imap = Net::IMAP.new($config['server'], $config['port'], $config['ssl'], $config['certs'])
  imap.login($config['username'], $config['password'])
  imap.select($config['folder'])
  return imap
end

def checkMailbox(imap)
  status  = imap.status($config['folder'], ['UNSEEN','MESSAGES'])
  num_total  = status['MESSAGES']
  num_unseen = status['UNSEEN']
  File.open($config['notifyfile'], "w+"){|f|
    f.puts num_unseen.to_s+ "/" + num_total.to_s
  }
end

# first connection
imap = openConnection()
# update notifyFile
checkMailbox(imap)
# run imap idle
imap.idle do |res|
  begin
    if res.kind_of?(Net::IMAP::UntaggedResponse) and ['EXISTS', 'EXPUNGE', 'FETCH'].include? res.name
      # なんか馬鹿らしいけれど. response から UNSEEN, MESSAGES 取れないかなぁ...。
      checker = openConnection()
      checkMailbox(checker)
      checker.logout
      checker.disconnect
    end
  rescue Exception => err
    puts err
    imap.idle_done
  end
end

設定ファイルはこんな感じ

# source: yaml
server: SERVERNAME
port: PORTNUMBER
ssl: TRUE or FALSE
certs: LOCATION OF CERTIFICATES FILE
username: YOUR USERNAME
password: IMAP PASSWORD
folder: MAILBOX NAME(e.g. INBOX)
notifyfile: OUTPUT FILE FOR CONKY

これを ~/.conky に転がして、パーミッションを適宜調整しておく. あとは ~/.config/autostart あたりに適当なファイル名で

# source: conf
[Desktop Entry]
Type=Application
Exec=/home/uwabami/.conky/mail-checker.rb
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Mail checker use IMAP idle for conky
Comment=Mail checker use IMAP idle for conky, need Ruby >= 1.9.3

なんてしておいて, conky の設定ファイル内では ファイルの中身を cat しておく.

(2014/07/28) checker が無限増殖していたので, disconnect を追加


連絡先など
最近の日記
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|
Back to Top ▲