ec2 でcrontabを確認

crond statusで動いているかをチェック

$ /etc/rc.d/init.d/crond status
crond (pid  2648) is running...

runningですね。

$ chkconfig --list crond
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

2~5がonになっています。

実行権限をみる。

$ ls -la /etc/crontab
-rw-r--r-- 1 root root 457 Jan  6  2012 /etc/crontab

root? これでいいのか?わからない。先に進む。

cronの実行ログを確認

 sudo tail -f /var/log/cron
Jun 23 19:01:01 ip- run-parts(/etc/cron.hourly)[5578]: finished 0anacron
Jun 23 20:01:01 ip- CROND[5666]: (root) CMD (run-parts /etc/cron.hourly)
Jun 23 20:01:01 ip- run-parts(/etc/cron.hourly)[5666]: starting 0anacron
Jun 23 20:01:01 ip- run-parts(/etc/cron.hourly)[5675]: finished 0anacron
Jun 23 21:01:01 ip- CROND[5801]: (root) CMD (run-parts /etc/cron.hourly)
Jun 23 21:01:01 ip- run-parts(/etc/cron.hourly)[5801]: starting 0anacron
Jun 23 21:01:01 ip- run-parts(/etc/cron.hourly)[5810]: finished 0anacron
Jun 23 22:01:01 ip- CROND[5918]: (root) CMD (run-parts /etc/cron.hourly)
Jun 23 22:01:01 ip run-parts(/etc/cron.hourly)[5918]: starting 0anacron
Jun 23 22:01:01 ip- run-parts(/etc/cron.hourly)[5927]: finished 0anacron

なんだこれは? /etc/cron.hourlyが実行されているように見える。あれ、日付今日?とりあえず、timezone変更が必要だ。

とりあえず/var/localで作業するため、ec2-userの権限を変える。

$ sudo chown -R ec2-user:www /var/local
$ sudo chmod 2775 /var/local
$ find /var/local -type d -exec sudo chmod 2775 {} \;
$ find /var/local -type f -exec sudo chmod 0664 {} \;

crontabでスマホの売上ランキングをmailに送る

スマホの売上ランキング、いつ見たいか?
金曜日は特に見たくないので、月~木のうちのどれかでしょうか。
ということで、

$ crontab -e

localでバッチ処理します。

05     02      *       *       1   cd /home/hoge/local/device/ ; /usr/local/bin/php index.php

う~ん、月曜朝の楽しみが一つ増えました。
ヨシ、OK、この際、後学のため、売れてる機種の並行輸入もやっちゃいましょう♪

写真にgridを入れる

menuの View -> Show -> Grid

これこれ、やりたかったの。

うんうん、OK!
gridの種類を変えたいね。

preference -> Guide, Grid & Sliceですね。
dash, dotにしたり、色をcustomしたり、幅をpixel単位で開けられます。

次はワイヤーにgridを入れる。
なるほど、こういうことか。

1.ワイヤーからphotoshopへ落としていく作業
2.photoshopからコーディングへ落としていく作業
この2つがイマイチ見えん → まずはプロに頼んで成果物ベースで学ぶ。

スマホ売れ筋ランキングをAWSから毎週Gmailに送りたい

Web系の仕事をしていると、どの端末がどれ位売れているか、常に把握しておかないと、話にならない。ということで、、、

foreach($model_data as $value){
	$k = $i + 1;
	echo $k ."位 ".$value . " ". $name_data[$i] . " (".$date_data[$i].")<br>";
	$i++; 
}

まずは、mb_send_mailの実装からか。

凄く簡単だが、

$i = 0;
foreach($model_data as $value){
	$k = $i + 1;
	$body .= $k ."位 ".$value . " ". $name_data[$i] . " (".$date_data[$i].")\n";
	$i++; 
}

mb_language("Japanese");
mb_internal_encoding("utf-8");

$email = "hogehoge@gmail.com";
$subject = "週間スマホランキング";
$to = "hogehogehoge@hotmail.com";

mb_send_mail($to, $subject, $body, "From:".$email);

vagrantからは送れる。

ec2からmb_send_mailを使いたい。使えるか?というか、使えないと困る。
とりあえずテストか。

Elastic IPでお名前.comのドメインとEC2のインスタンスを紐づける

Elastic IP アドレスは、動的なクラウドコンピューティングのために設計された静的 IPv4 アドレス
Elastic IP アドレスを使用すると、アドレスをアカウント内の別のインスタンスに迅速に再マップして、インスタンスやソフトウェアのエラーを隠すことができる

IPv4:Internet Protocolの一種で、OSI参照モデルにおいてネットワーク層に位置付けられるプロトコル

インスタンスのサイドメニューから選択する

インスタンスに割り当てる

では、お名前.comで適当に、capital-technology.xyz を取得します。

Route53
Hosted zonesでお名前.comで取得したドメインを入力する。

create record setのvalueのところにEC2インスタンスを割り当てたElasticIPをかくらしい

で、create

お名前.com
対象のドメインのDNSレコードの設定

digする。

おおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
what’s goin on?
とりあえず、ec2に紐づいたみたいだ!とりあえず。。よっしゃあああああああああああああああああ!

さて、では、つぎはec2でスクレイピングかな。
待て待て。落ち着け。

ec2でphpファイルが認識されない

/var/www/htmlのphpファイルがphpと認識されない。

php.iniを開きます。

short_open_tagをonにします。

short_open_tag = On  

httpdを再起動

# service httpd restart

来たー!
落ち着け、落ち着け

続いて、お名前.comで取得したドメインのルーティングを設定したい。

ec2にmysql5.7をインストール

rpmを入れて、community-serverを入れる。

sudo yum -y install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
sudo yum -y install mysql-community-server

–versionでバージョンを確認する。

mysql --version

mysql –version
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper

service start

$ sudo service mysqld start
Initializing MySQL database:                               [  OK  ]
Starting mysqld:                                           [  OK  ]

初期パスワードが自動生成されているらしい。mysqld.logをみる。

$ cat /var/log/mysqld.log

するとずらずらとログが表示されるので、中から、
A temporary password is generated for root@localhost:
を探して、mysql -u root -p でログイン。

$ mysql -u root -p

ログイン出来ました。

/etc/my.cnfに文字コードを追加します。

sudo service mysqld restart でrestart

passwordを変える。

ALTER USER root@localhost IDENTIFIED BY ''

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| sys |
+——————–+
4 rows in set (0.00 sec)

OK!来た!
次は、var/www/html のページ編集です。

>ec2-user が Apache ウェブサーバーのデフォルトルートディレクトリにあるファイルを管理できるようにするには、/var/www ディレクトリの所有権とアクセス許可を変更する必要がある。
なに!?

>EC2 インスタンスに www という名前のグループを追加し、そのグループに /var/www ディレクトリの
>所有権を付与してグループへの書き込み許可を追加します。
>そのグループの任意のメンバーは、ウェブサーバーに対してファイルの追加、削除、および変更ができるようになります。
なるほど!