Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

2
リモートマシンでスクリプトを実行すると、ファイル名に疑問符が含まれるのはなぜですか?
現在の日付をフェッチし、PHPスクリプトを実行して、出力(およびエラー)を現在の日付を含むファイル名にリダイレクトする小さなスクリプトがあります。 DATE=$(date +"%Y%m%d") FILE="log/${DATE}.log" php -q script.php >> $FILE 2>&1 このスクリプトをローカルマシン(Windows 7、Aptana IDE)で実行すると、PHPスクリプトは正常に動作し、ログファイルには予期されたファイル名(例:)が含まれます20140502.log。 しかし、そのスクリプトをSFTP経由でリモートマシンにプッシュしてそのスクリプトを実行すると、ファイル名は次のようになります。 20140502?.log? 何が問題でしょうか?これはencondingエラーですか(たとえば、SFTPアップロードのエンコーディングはANSIIであり、UTF-8が期待されます)?または、スクリプト自体で何かを変更する必要がありますか? システム/シェルに関する情報: [foo@bar path]$ sh --version GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu) 面白い事実:そのスクリプトがcronjobによって呼び出された場合、疑問符は発生しません。スクリプトを手動で実行した場合のみ。


2
tarアーカイブ内のファイルの所有権を変更する
私はユーザーとして作業していて、(ルートによって)解凍するとファイルをルート所有権で抽出するtarアーカイブを作成したい(そうしないと、ファイルが抽出された後、ルートごとにファイルの所有権を手動で変更する必要がある)その目的地へ)。 私はfakerootそれがまさにそれをしているように見えることを発見しました。しかし、私は自分のアーカイブを作成するために使用する必要がある構文を見つけることができません。 tar.xzアーカイブを作成して、ルートで解凍したときにファイルがルートの所有権を持つようにするにはどうすればよいですか? do something with fakeroot ... tar cfpJ foo.tar.xz foo/
10 files  permissions  tar 

2
Nginxはポートでリッスンし、ポート80に設定されている場合のみ応答します
OS:Funtoo。NGINXをポート81にバインドし(移行を容易にするために、Apacheサーバーと一緒に短時間実行したい)、ポートでリッスンします(別のポートを指す場合、wgetを使用すると、「接続が拒否されました」と表示されます。しかし、ポート81を使用すると、「接続」されます)が、それは、いかなる種類のHTML応答も提供しません。 ローカルホストからポートでwgetを実行すると、次のようになります。 # wget localhost:81 -2014-04-16 23:56:45- http://localhost:81/ Resolving localhost... 127.0.0.1 Connecting to localhost|127.0.0.1|:81... connected. HTTP request sent, awaiting response... 別のコンピューターで... $ wget 192.168.18.42:81 -2014-04-16 23:57:19- http://192.168.18.42:81/ Connecting to 192.168.18.42:81... connected. HTTP request sent, awaiting response... その後は何も起こりません。ドキュメントが存在し、それは通常のFuntoo nginx.confです。 更新:ポート80をリッスンすることはできますが、どのポートでも機能しないので、まだガタガタです。 netstat -aWn | grep 81 | grep LISTEN tcp 60 0 …

3
1000000個の小さなファイルのコピーを高速化
ディレクトリに1000000 4-20 kbのファイルがあります。そのディレクトリをコピーする必要があります。しかし、私は各ファイルをシークする必要があるようですので、これにはかなり時間がかかります。 これをスピードアップできる方法はありますか? これらのファイルが占有するディスクブロックを取得できたら、それらを並べ替え、近いブロックをマージし(シーケンシャルリードがシークよりも高速であることが多い場合)、これらのブロックを読み取ってRAMにあると考えています。コピーする前にキャッシュ(32 GBのRAMを持っています)。 しかし、そのためには、ファイルがどのブロックにあるかを特定する方法が必要です。 磁気デバイス(つまりSSDではない)でEXT4を使用しています。 編集: これは機能するはずですが、機能しません。 ls | parallel -IOO --pipe "sudo parallel -j100 hdparm --fibmap {}'|tail -n +5'" | sort -nk 2 | perl -ane 'if($u+10000 < $F[1]) { print "$l ",($u-$l),"\n"; $l=$F[1] } $u=$F[2]' | sudo parallel --colsep ' ' dd if=/dev/sda1 skip={1} bs=512 …

2
ホスト名に基づいてtmuxステータスラインの色を設定する
tmuxマシンのホスト名に基づいて動的に色を選択したいのですが。tmux.conf複数のマシンで共有しているので、特に複数のマシンで同時に作業する場合、それらのホストのそれぞれに一意の色を割り当てると、視覚的に便利です。これは可能ですか?
10 tmux  colors 

2
xrandrで両方のnvidiaカード(2 x GTX480、トリプルヘッド)を検出するにはどうすればよいですか?
Linux Mint 16(Petra)を実行しています ディストリビューションに同梱されているデフォルトのドライバーnvidia-319を実行しています 2x GTX480カードを持っています 3台のモニターがあります Nvidiaドライバーを使用すると、すべてのモニターとGPUが独自のユーティリティによって取得されます。 ただし、https://devtalk.nvidia.com/default/topic/719768/linux/304-121-ubuntu-14-04-xrandr-1-4-multi-gpu-not-being-detectedのレポートと同様に/ xrandr --listprovidersを実行すると、単一のプロバイダー(最初のカード)しか表示されません。私はxrandr 1.4を持っているので、両方を表示できるはずです。別のXスクリーンをセットアップしてからxrandr --listproviders --screen 1を実行すると、2番目のカードが表示されます。しかし、私は複数のXスクリーンを望んでいません。モニター間をシームレスに流れるようにしたい。 xineramaはセットアップが面倒なので、xrandrに置き換える必要があるため、実行したくありません。 nouveauドライバーを使用すると、3つの画面すべてを希望どおりに使用できますが、パフォーマンスは良くありません。 だから、私はいくつかの質問があります: 1.)これは仕様によるものですか、バグですか?私はhttp://uk.download.nvidia.com/XFree86/Linux-x86/319.12/README/randr14.htmlで、ドライバがソース出力機能のみをサポートしていることに注意します。xrandrに2つの異なるカードプロバイダーが表示されるのを止めることができますか? 2.)前者が当てはまる場合、これを回避する方法はありますか? 3.)私はさまざまなbasemosaicオプションをいじってみましたが、役に立ちませんでした 私が試した最後の構成は: Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor1" VendorName "Unknown" ModelName "Ancor Communications Inc ASUS VS247" HorizSync …

8
Python 3.4の新しい履歴機能を無効にするにはどうすればよいですか?
Python 3.4へのアップグレード以降、すべてのインタラクティブコマンドはに記録され~/.python_historyます。Pythonでこのファイルを作成したり書き込んだりしたくありません。 へのシンボリックリンクの作成は/dev/null機能せず、Pythonはファイルを削除して再作成します。ドキュメントには、削除することを提案sys.__interactivehook__するが、これはまた、タブ補完が削除されます。この履歴ファイルの書き込みを無効にし、タブ補完を維持するにはどうすればよいですか? 追加の詳細: ディストリビューション:Arch Linux x86_64 readline 6.3-3 python 3.4.0-2

1
IFSのデフォルト値を理解する
私のGNU bashバージョン4.2.8では、IFSにはデフォルトでスペース、タブ、およびラインフィードのデフォルト値があります。 usr@T42 ~ $ echo -n "$IFS" | hexdump -C 00000000 20 09 0a | ..| 00000003 usr@T42 ~ $ そのようなデフォルトのIFSには理由がありますか?さらに、bashビルトインの他にどのユーティリティがIFSを使用しreadますか?
10 bash  shell  quoting 

3
変数に格納されている引数をWGETに渡すにはどうすればよいですか
私は広範囲にwgetを使用するbashスクリプトを書いています。すべての共通パラメーターを1か所で定義するには、変数に格納します。これがコードの一部です。 useragent='--user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0"' cookies_file="/tmp/wget-cookies.txt" save_cookies_cmd="--save-cookies $cookies_file --keep-session-cookies" load_cookies_cmd="--load-cookies $cookies_file --keep-session-cookies" function mywget { log "#!!!!!!!!!# WGET #!!!!!!!!!# wget $quiet $useragent $load_cookies_cmd $@" wget $useragent $load_cookies_cmd "$@" } サッドが機能していません。どういうわけか、変数$ useragent、$ save_cookies_cmd、$ load_cookies_cmd、およびこれらの変数をパラメーターとして渡すcaling wgetにパラメーターを格納する正しい方法がありません。 次のような結果のコマンドラインが必要です。 wget --user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0" --load-cookies /tmp/wget-cookies.txt …

3
32ビットUbuntuシステムで64ビットアプリを実行する
私が見たすべての質問は、64ビットシステムで32ビットアプリを実行することに関するものです。 私は32ビットのUbuntu 12.04(実際にはそれをベースとする基本的なOS Luna)を実行していますが、64ビットのアプリを実行しようとしていますが、これを開くと拒否されます。ランニング: ./64bit_app.run (64bit_app.run私が実行しようとしている64ビットアプリはどこにある)結果は: bash: ./64bit_app.run: no se puede ejecutar el fichero binario これは、「バイナリファイルを実行/実行/開くことができません」に変換されます。 実行できますか?32ビットシステムで64ビットアプリを実行することは可能ですか?もしそうなら、どうですか?
10 linux  ubuntu  64bit  32bit 

3
VIM(BashまたはTmux)のように画面上の単語の補完
画面で最後に一致する識別子を完了するようにBash、Zsh、またはTmuxを構成するにはどうすればよいですか?次の一般的なシナリオを検討してください。 $ git fetch remote: Counting objects: 16, done. remote: Compressing objects: 100% (9/9), done. remote: Total 9 (delta 4), reused 0 (delta 0) Unpacking objects: 100% (9/9), done. From /opt/git/thunder * [new branch] issue540 -> origin/issue547314 e9204cf..4d42c3f v2.1 -> origin/v2.1 issue547CLIでBash / Zsh / Tmuxを簡単に完了するにはどうすればよいですか?Git が問題なく完了したTab後にを押すと、数字を自分で完成させる必要があります。なぜなら、前のすべての数字は実際には既存のGitブランチと一致するからです。$ git checkout isissue …

3
vimで貼り付けたテキストのみを元に戻すにはどうすればよいですか?
TL; DR; バージョン-挿入モードに入ってから入力された他のテキストを取り消すことなく、OSコピーバッファーから貼り付けられたテキストを取り消す方法を教えてください。 長い説明: OSのコピーバッファーに何かを入れます(たとえば、テキストをハイライトしCommand-cてMac で実行します) vim(i)で挿入モードに入ります 何かを入力(例asdf) 挿入モードを終了せずに、コピーバッファーからvimに貼り付けます(Command-vMacの場合) ヒット escape 貼り付けを元に戻します(u) 最後に挿入モードに入ったときからのすべてを元に戻します。つまり、asdf貼り付けたすべてのテキストがクリアされます。 どのように私はないだけに貼り付けたテキストを元に戻しますか?貼り付けたテキストを元に戻すオプションを用意するためだけに、テキストを貼り付ける前に、常に挿入モードを終了して元に戻す必要がありますか?
10 vim  osx 

2
低RAM環境で最適化されたZFSは実現可能ですか?
私は現在ファイルサーバーをセットアップしており、実際にデータドライブをセットアップするようになりました。システムには4つのドライブ(1つのOSディスク、3つのデータディスク)があります。OSディスクはext4としてフォーマットされており、ZFSプールに追加されません(ZFSを実行することを選択した場合)。私の主な関心事は、データの整合性とデータ損失の最小リスクです(BIOSでドライブキャッシュが無効になっています)。このZFSは、Linuxの安定バージョン(正しい?)があり、ハードドライブが同じサイズである必要がないデータの複製、プーリング、およびraidzをサポートしているため、最適な候補のようです。 しかし、ここに私の問題があります。サーバーに搭載されているRAMは2GBのみで、近い将来これをアップグレードすることはできません。現実的には、他のすべてのサービスをインストールした後、実際にZFSにアクセスできるのは1.5のみです。最大で約10のクライアントが一度にそれを使用します(平均で4に近い)。これは安全と見なすには低すぎますか? 私が理解していることから、ZFSはRAMの少ない状況でクラッシュし、プールを使用する可能性があります。スワップがこの問題を軽減するのに役立つかどうかの矛盾する意見を聞きました(20 GBのスワップ専用ドライブがあります)。RAMがほとんどないZFSでデータ損失が発生した人はいますか?それを防ぐためにどのような最適化を行いましたか? 上記を念頭に置いて、ackサイズを減らして少し削減しても、ZFSを実行することは可能ですか?それともリスクが高すぎますか? システム仕様:2GB RAM 20GBスワップドライブOS、Debian 7、最小インストール、FTP、およびXBMC、DNLA(RAM要件を理解するため)。ストレージサーバーと他のデバイスへの音楽メディアストリーミングに使用されます。
10 linux  memory  zfs 

3
Apacheがログファイルを保持する場所を見つけるにはどうすればよいですか?
Apacheがサイトのアクセスログとエラーログを保持している場所を見つける必要があります。 何十ものサイトがホストされているサーバーにrootアクセスできます。これらのサイトの1つをデバッグしようとしています。サイトを閲覧すると、/var/logs/apache2/access.logまたはに表示されません/var/logs/apache2/error.log。(ファイルはそこにあり、他のサイトはそれらに記録されます。実際、何百もの異なるログファイルがあります)。 どちらの結果locate httpd.logも発行find . -iname httpd.logされていません/。 サイトのApache構成は次のとおりです。 ServerName REDACTED.com.br DocumentRoot /var/www/xyz/wiki AssignUserId xyz_wiki xyz_wiki <Directory /var/www/xyz/wiki/data> order allow,deny deny from all </Directory> <Directory /var/www/xyz/wiki/conf> order allow,deny deny from all </Directory> <Directory /var/www/xyz/wiki/bin> order allow,deny deny from all </Directory> <Directory /var/www/xyz/wiki/inc> order allow,deny deny from all </Directory> php_admin_value open_basedir /var/www/xyz/wiki/:/mnt/vdImagem/www/xyz/wiki/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.