ラベル ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル ubuntu の投稿を表示しています。 すべての投稿を表示

2015年8月3日月曜日

Ubuntuデスクトップのフォルダの英語化

Ubuntu14.04 LTS デスクトップのフォルダが、デフォルトで日本語になっているので、
コンソールから使うといろいろ不便…。

同僚から聞いたのが、下記のコマンド

$ LANG=C xdg-user-dirs-gtk-update

そのままコンソールから実行。
実行後、ダイアログが出る(デスクトップ→Desktop、ダウンロード→Download、etc)ので
問題なければOK。

すでにデスクトップやダウンロードなどのフォルダにファイルがあるのであれば、
デスクトップとDesktopというように日本語と英語のフォルダが2つ存在してしまう。
その場合は、適宜、英語名のほうのフォルダにコピーしてあげる。

そのあと、マシンを再起動。
再起動しないと、デスクトップにファイルが置けなかった。
デスクトップという日本語のフォルダを探しに行っていたので。。。
(もしかしたらダウンロードファイルも置けないのかもしれない。)

問題なければ、ファイルコピー後の日本語フォルダを削除。

2015年7月1日水曜日

Ubuntuのapt-get update エラー

$ sudo apt-get update
E: ロック /var/lib/apt/lists/lock が取得できませんでした - open (11: Resource temporarily unavailable)

aptのプロセスが利用中かどうか確認する。
$ ps aux | grep apt
root     16076  0.0  0.4  20352  2252 ?        S     2014  57:53 apt-get -qq -y update

なんか、それっぽいものがいるので、killする。
$sudo kill -9 16076

改めて
$ sudo apt-get update

2012年11月8日木曜日

cronで実行するとエラーになる

手動で実行すればエラーにならないのに、cronから実行するとエラーになる。
過去に2-3度同じことがあったので、メモっておきます。

前提
・環境はUbuntu10.04
・/etc/crontab にcron定義

問題1
<現象>
・日本語のメール送信が化ける
・日本語を含むファイルやフォルダにて、日本語が文字化けして読み込めない

<対処法>
下記をcrontabに追加 。
    LANG=ja_JP.UTF-8
エラーログが/etc/crontab で実行した際に表示されていなかったが、
crontab -e では、表示されたので気づいた。

問題2
<現象>
・broken pipeエラーが発生
 Javaでは、こんなエラーだったり…
   Caused by: java.net.SocketException: Broken pipe
 Rubyでは、こんなエラーだったり…
   #<Errno::EPIPE: Broken pipe>

<対処法>
/dev/nullに出力を捨てる!
"command > /dev/null 2>&1"



2012年3月8日木曜日

cronから実行すると文字化け

忘れた頃にハマるのでメモっておきます。

cronからスクリプト等を実行する時は

    export LANG=ja_JP.UTF-8

をcrontabに書いておきましょう!

書かないと、実行した際に日本語が文字化けします。
cronだと環境変数が異なるんですよね。
手動で実行すると大丈夫なのに、cronからだと文字化けする時はまずここをチェック!

2012年2月24日金曜日

Ubuntuにユーザの追加

ユーザを追加するには2つの方法があります。
adduser と useradd という紛らわしい名前のコマンド。

adduserのほうは、こんな感じ。
$ sudo adduser tester
ユーザ `tester' を追加しています...
新しいグループ `tester' (1001) を追加しています...
新しいユーザ `tester' (1001) をグループ `tester' に追加しています...
ホームディレクトリ `/home/tester' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しいUNIXパスワードを入力してください:
新しいUNIX パスワードを再入力してください:
passwd: password updated successfully
Changing the user information for tester
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y

もう片方は/home/testerは生成されません。
$ useradd tester

2012年1月17日火曜日

"unable to resolve host ..."って何?

この概要は表示できません。投稿を閲覧するには ここをクリック してください。

2011年8月30日火曜日

ufwの使い方

アクセス制限をかけるために、ufw(Uncomplicated Fire Wall)を使ってみよう!、ということで、はじめての設定を行います。
以前iptableを使ったことがあるのですが、使いづらく、ufwのほうが楽だと思いました。


ステータスの確認
初めてなので、非アクティブになっています。
$ sudo ufw status
状態: 非アクティブ

有効にする設定
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
ファイアウォールはアクティブかつシステムの起動時に有効化されます。

$ sudo ufw status
Status: active

無効にする設定
$ sudo ufw disable
ファイアウォールを無効にし、システム起動時にも無効にします
$ sudo ufw status
状態: 非アクティブ

すでに用意されているルールが2つあります。
$ cd /etc/ufw/applications.d
$ ls
apache2.2-common openssh-server

何が書かれているのか見てみましょう。
$ ls
apache2.2-common openssh-server

$ cat apache2.2-common
[Apache]
title=Web Server
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=80/tcp

[Apache Secure]
title=Web Server (HTTPS)
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=443/tcp

[Apache Full]
title=Web Server (HTTP,HTTPS)
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=80,443/tcp

ルールの設定
ためしにルールを設定を設定してみます。
ルールの設定には、 sudo ufw allow ARGS を利用します。
ARGSは、上記のファイルの[]かっこ内に定義した名称です。
% sudo ufw allow "Apache Full"
ルールを追加しました
% sudo ufw allow "OpenSSH"
ルールを追加しました

$ sudo ufw status
Status: active

To Action From
-- ------ ----
Apache Full ALLOW Anywhere
OpenSSH ALLOW Anywhere

追加した定義の削除
削除するには、ufw delete allow RULE を用います。
$ sudo ufw delete allow "Apache Full"
ルールを削除しました

$ sudo ufw status
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere

特定のIPとPortを追加する場合
あるIP:Portからのアクセスを許容することもできます。
$ sudo ufw allow from 10.20.30.40 to any port 2011
ルールを追加しました
$ sudo ufw status
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
2011 ALLOW 10.20.30.40

追加した特定のIPとPortを削除する場合
$ sudo ufw delete allow from 10.20.30.40 to any port 2011
ルールを削除しました
$ sudo ufw status
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere

コマンドがわからなくなったらヘルプを見ましょう!
$ sudo ufw help

2011年8月25日木曜日

パスワードなしでサーバーにログイン

あるサーバーへパスワードなしでログインする場合の方法です。
ここでの例は、AのコンピュータからBのサーバーへ
パスワードなしでログインします。


0. サーバーBへログインできることを確認します。
ログインできなかった、では話になりませんので…。
この時はパスワードが求められます。
$ ssh userb@serverb
userb@serverbs password:


1. 公開キーと秘密キーのペアを生成します。
ログインなしにするため、パスワード(passphrase)部分は
何も入力しないでEnterを押します。
例) Aのコンピュータにて実行

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/servera/.ssh/id_rsa):
Created directory '/home/servera/.ssh'.
Enter passphrase (empty for no passphrase): ★何も入力しない
Enter same passphrase again:         ★何も入力しない
Your identification has been saved in /home/servera/.ssh/id_rsa.
Your public key has been saved in /home/servera/.ssh/id_rsa.pub.
The key fingerprint is:
c3:e2:e5:c8:4b:b3:dd:d3:e2:a9:09:3c:c4:ad:8a:71 usera@computera
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| . o |
| + S |
| = * . |
| . E @ . . |
| + o B oo.. |
| . . o +o+o |
+-----------------+

2. 生成された公開キーのほうをSCP転送します。
例) AのコンピュータからBのサーバへ転送
$ scp id_rsa.pub userb@serverb:/home/userb/id_rsa.pub

3. 転送されてきた公開キーをauthorized_keysにマージします。
例) BのサーバーでAから送られてきた公開キーをauthorized_keysにマージ
$ cat id_rsa.pub >> authorized_keys 

4. authorized_keys のファイル権限は600にします。
$ chmod 600 authorized_keys

5. ログインしてみて、パスワードを求められないことを確認します。
$ ssh userb@serverb

2011年8月22日月曜日

ログアウトをしてもscpが切れないようにする方法

SSHで時間のかかるscpでファイルを転送してると、SSHが切れるとファイル転送も切れてしまう。これでは転送が終わるまで帰れなくなってしまうことになります。
このような問題を解消するためにはどうすれば良いのでしょう?

scpを行うときは相手のサーバーパスワードが必要になるので、cronで実行ができないし、コマンドの最後に&をつけてもうまくいかない…。
(公開キーを使えばという案もありますが…)
そんな時は、nohup bg コマンドで対応できることを知りました。
どちらも初めてのコマンドです。


$ nohup scp -r xyz root@10.3.2.1:/opt/xyz
nohup: appending output to `nohup.out'
root@10.3.2.1's password: <パスワードを入力する>

Ctrl+z でジョブをサスペンド
[1]+ Stopped nohup scp -r xyz root@10.3.2.1:/opt/xyz
実行中のジョブを確認する。
$ jobs -l
[1]+ 19003 停止しました nohup scp -r xyz root@10.3.2.1:/opt/xyz

サスペンドしたジョブ「1」をバックグラウンドで実行再開する方法がbgコマンド。
$ bg 1
[1]+ nohup scp -r xyz root@10.3.2.1:/opt/xyz

ジョブの状態を確認する。
$ jobs -l
[1]+ 19003 Running nohup scp -r xyz root@10.3.2.1:/opt/xyz

とすると、ログアウトしても scp は止まらずに転送を継続してくれるのです。


こちらはまさに参考になりました。ありがとうございます。
http://d.hatena.ne.jp/yohei-a/20100212/1265950974

2011年8月11日木曜日

Ubuntuでのバージョンチェック

入れたモジュールのバージョンをチェックする場合のコマンドです。
Ubuntuインストール時にLAMPでついでに入れてしまおう、といった場合、
バージョンいくつだっけ?という時に必要になりました。

◆ Apache2
$ apache2 -v
Server version: Apache/2.2.14 (Ubuntu)
Server built:   Nov 18 2010 21:19:09
他のLinuxだとhttpd -vとかあって統一されてないようです…


◆ MySQL
$ mysql --version
mysql  Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (x86_64) using readline 6.1


◆ Ubuntu
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.3 LTS
Release:        10.04
Codename:       lucid


◆ ruby
$ ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]

2011年8月10日水曜日

VMWareのUbuntuのクローン作成後の作業(ネットワークエラー対応)

vSphere Clientというツールを使ってVMのクローンを作ったら
ネットワーク周りでエラーが発生…。

なにこれ…。
eth0: ERROR while getting interface flags: No such device


IPを設定するのに、下記ファイルを編集

$ vi /etc/network/interfaces

その後

$ sudo /etc/init.d/networking restart

を実行したら

eth0: ERROR while getting interface flags: No such device

という経緯。


下記ファイルを開いてみると、コピー元のMACアドレスがeth0にあって、
eth1には、エラーのあるサーバーのMACアドレスが記載されてました。

$ vi /etc/udev/rules.d/70-persistent-net.rules

とりあえず、両方とも(SUBSYSTEM=="net"で始まる部分)コメントアウト。

$ sudo reboot

したら、無事認識!
70-persistent-net.rules のファイルにはeth0とeth1がうまくマージされた行が
1行追加されてました。
昔のMACアドレスが残っていたのが問題だったみたいなので、
きっとそれだけ削除すれば良かったのかも、と後から思い
昔のMACアドレスが定義されていた行(eth0)を削除して、
新規に追加された行のeth1をeth0に変更したら大丈夫でした。


こちらのサイトを参考にさせていただきました!
http://namahage.dip.jp/blog/2107

◆ VMをクローンしたら何したら良いのかをまとめると

・hostnameの変更
$ sudo vi /etc/hostname

・hostsの変更
$ sudo vi /etc/hosts
新IPと新hostnameに合わせましょう。
合わせないとsudoした時にsudoはできますが、エラーメッセージが出ます。

・IPの設定
$ sudo vi /etc/network/interfaces

・ethデバイスの再定義
$ vi /etc/udev/rules.d/70-persistent-net.rules
eth0とMACアドレスをあわせ、不要のものは削除 (上記の対応)

・reboot
$ sudo reboot

2011年8月9日火曜日

ある階層以下を検索結果に表示させない

Linuxのコマンドを使って、あるディレクトリ以下を検索させないようにするには、どうすれば良いのでしょうか?
よくあるのが、Subversionからチェックアウトしてきたファイルに .svn が含まれていて、それを省きたい場合です。

◆カレントディレクトリのファイル全部を見る場合
find . -type f

◆一部のディレクトリを省く場合
-prune のオプションを使うことで、指定したディレクトリ以下は対象にしません。
find . -name '.svn' -prune -o -type f

しかし、これだけだと、
./.svn
がまだ残ってしまうのです…。

そんな時は、最後に-printを付けます
理由はmanを見てね(^^;
find . -name '.svn' -prune -o -type f -print   

◆ 複数ディレクトリを対象にする場合
ORを用いて、-o -name 'XXXXX' -prune のセットを追加していきます。

find . -name '.svn' -prune -o -name 'XXXXX' -prune -o -type f -print   


2011年7月26日火曜日

proxy経由のwget

proxy経由でwgetする場合、Ubuntuでは下記の設定を行います。

% sudo vi /etc/wgetrc

そのファイルにて、下記を追加します。

# httpのサイトから取得
http_proxy = http://10.20.30.40:8000/

# httpsのサイトから取得
https_proxy = http://10.20.30.40:8000/

2011年6月27日月曜日

Apacheインストール "E: Couldn't find package apache2"

UbuntuにApacheをインストールしたら、見たことのないエラーがでた。
 
$ apt-get install apache2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Couldn't find package apache2
 
調べてみると、apt-get update を実行すれば良いとのこと
 
$ apt-get update
$ apt-get install apache2
$ which apache2
/usr/sbin/apache2
 
無事入りました!

2011年6月15日水曜日

Ubuntuでzipを解凍

Ubuntuでは、zipとunzipのパッケージを別途インストールする必要があります。
% sudo apt-get install zip unzip
解凍するには、unzipコマンド用います。
% unzip xxx.zip