sshのログインを自動化する方法

Macだとこうしたら楽だった

aya-air:~ aya$ ssh-keygen -t rsa
これで既に.ssh/id_rsa_key-only.pub と.ssh/id_rsa_key-onlyが出来ている物とする

Terminalを開いて

aya-air:~ aya$ ssh-add .ssh/id_rsa_key-only
Identity added: .ssh/id_rsa_key-only (.ssh/id_rsa_key-only)

この後.ssh/id_rsa.pubがサーバ側に置かれて秘密鍵のみで入れるサーバにsshしてみる

aya-air:~ aya$ ssh key-only.popowa.com
Linux ip-XXX-XXX-XXX-XXX 2.6.32-305-ec2 #9-Ubuntu SMP Thu Apr 15 04:14:01 UTC 2010 i686 GNU/Linux
Ubuntu 10.04.3 LTS

入れます。

MySQL内でurlencodeする方法

MySQLの関数としてデータをURLENCODEしてくれるのはないかなーと探していた所、こんなブログポストが。


urlencode();

DELIMITER ;

DROP FUNCTION IF EXISTS urlencode;

DELIMITER |

CREATE FUNCTION urlencode (s VARCHAR(4096)) RETURNS VARCHAR(4096)
DETERMINISTIC
CONTAINS SQL
BEGIN
DECLARE c VARCHAR(4096) DEFAULT '';
DECLARE pointer INT DEFAULT 1;
DECLARE s2 VARCHAR(4096) DEFAULT '';

IF ISNULL(s) THEN
RETURN NULL;
ELSE
SET s2 = '';
WHILE pointer <= length(s) DO
SET c = MID(s,pointer,1);
IF c = ' ' THEN
SET c = '+';
ELSEIF NOT (ASCII(c) BETWEEN 48 AND 57 OR
ASCII(c) BETWEEN 65 AND 90 OR
ASCII(c) BETWEEN 97 AND 122) THEN
SET c = concat("%",LPAD(CONV(ASCII(c),10,16),2,0));
END IF;
SET s2 = CONCAT(s2,c);
SET pointer = pointer + 1;
END while;
END IF;
RETURN s2;
END;

DELIMITER ;

urldecode();

DROP FUNCTION IF EXISTS urldecode;

DELIMITER |

CREATE FUNCTION urldecode (s VARCHAR(4096)) RETURNS VARCHAR(4096)
DETERMINISTIC
CONTAINS SQL
BEGIN
DECLARE c VARCHAR(4096) DEFAULT '';
DECLARE pointer INT DEFAULT 1;
DECLARE h CHAR(2);
DECLARE h1 CHAR(1);
DECLARE h2 CHAR(1);
DECLARE s2 VARCHAR(4096) DEFAULT '';

IF ISNULL(s) THEN
RETURN NULL;
ELSE
SET s2 = '';
WHILE pointer <= LENGTH(s) DO
SET c = MID(s,pointer,1);
IF c = '+' THEN
SET c = ' ';
ELSEIF c = '%' AND pointer + 2 <= LENGTH(s) THEN
SET h1 = LOWER(MID(s,pointer+1,1));
SET h2 = LOWER(MID(s,pointer+2,1));
IF (h1 BETWEEN '0' AND '9' OR h1 BETWEEN 'a' AND 'f')
AND
(h2 BETWEEN '0' AND '9' OR h2 BETWEEN 'a' AND 'f')
THEN
SET h = CONCAT(h1,h2);
SET pointer = pointer + 2;
SET c = CHAR(CONV(h,16,10));
END IF;
END IF;
SET s2 = CONCAT(s2,c);
SET pointer = pointer + 1;
END while;
END IF;
RETURN s2;
END;

DELIMITER ;


Functionとしては動いたので、実際に正しいかどうかの検証をする

crontab編集モードにしたときJoe's own editor v3.7 というエディターだった時

Crontabを編集しようと思って

crontab -e

としたら
Joe's own editor v3.7 というエディタが立ち上がった。Ubuntuでは有名らしいけど、初めて見ました。

入力は簡単だけど、保存の方法が分からない。
調べたら^K Xらしいです。
マックだとControl + K+X
です。
http://joe-editor.sourceforge.net/manpage.html