linuxの一般的な問題解決
1. シェルスクリプトで^ Mを削除する方法
解決:
sed -i’s / ^ M // g’ script.sh(入力 “^ M” Ctrl + vで, Ctrl + m)
2.crontab出力制御の問題:
rootユーザーでスクリプトを実行できるかどうか,時限タスクは実行されません,環境変数を確認する必要があります。
/var / pool / clientmqueueディレクトリは100Gを超えるスペースを占有します
理由:cronで実行されたプログラムは出力を持っています,出力はcronユーザーに電子メールで送信されます,
また、sendmailが開始されていないため、/ var / pool / clientmqueueディレクトリ内のファイルが生成されます。,
蓄積するとディスクが破損する可能性があります。
解決する:
1)手動で直接削除する:ls |xargs rm -f ;
2)それを完全に解決する:cronの自動実行ステートメントの後に追加します >/dev / null 2>&1 ———————————————————————————————————————————
3.Telnetが非常に遅い/ sshが非常に遅い
問題:ある日、R&Dの同僚が、10.52memcachedサービスへの10.50アクセスが異常であると言いました,
ネットワーク/サービス/システムに異常がないか確認してみましょう。システムが正常であることを確認します,
サービスは正常です,10.50ping10.52も正常です,しかし、10.50 telnet10.52は非常に遅いです。
同時に、マシンの名前が機能していないことがわかりました。
理由:PCはIPに対してDNSの逆引き参照を行わないため…
Linuxボックスにtelnet / ftpで接続するとき, それはあなたにDNSルックアップを行います。
解決する:
1)/ etc / hostsを変更して、hostnameとipを対応させます;
2)/etc/resolv.confでネームサーバーをコメントアウトするか、「ライブ」ネームサーバーを見つけます。 ———————————————————————————————————————————
4.読み取り専用ファイルシステム
問題:私の同僚はmysqlでテーブルを作成できませんでした,プロンプトは次のとおりです:
mysql>テーブルwosontestを作成します (colddname1 char(1));
エラー 1005 (HY000): テーブル「wosontest」を作成できません (errno: 30)。
mysqlのユーザー権限と関連するディレクトリの権限を確認した後、問題はありません;エラー30のプロンプトメッセージは次のとおりです。:
OSエラーコード 30: 読み取り専用ファイルシステム
考えられる原因:
1)ファイルシステムの破損;
2)ディスク上の不良セクタ;
3)fstabファイル構成エラー,パーティションフォーマットエラーなど(ntfsをfatとして記述します)、設定手順などのスペルミス。。
解決する:
1)試験機なので,マシンを再起動した後に回復する;
2)インターネットでは、マウントで解決できます。
———————————————————————————————————————————
5.ファイルが削除され、ディスク容量が解放されません。問題:
ある日、マシンdf-hの使用ディスク容量が90Gであることが判明しました。,また、du -sh / *は、使用されているすべてのスペースの合計が30Gにすぎないことを示しています。,
おっとっと。 理由:多分誰かがrmを使って書かれているファイルを削除します,ファイルが削除されたが、ディスク領域が解放されなかった問題
解決する:
1)システムを再起動するか、関連サービスを再起動するのが最も簡単です。
2)プロセス/ usr / sbin / lsofを強制終了します|grepはoraを削除しました 25575 データ33uREG
65,65 4294983680 /oradata / DATAPRE / UNDOTBS009.dbf (削除されました)
lsofの出力から,pidが25575のプロセスがファイル記述番号(fd)を保持していることがわかります。
ファイル/oradata/DATAPRE/UNDOTBS009.dbfが33で開かれました。我々はそれを見つけた
このファイルの後、プロセスを終了することにより、占有スペースを解放できます。:
エコー > /proc / 25575 / fd / 33 3)書き込まれているファイルを削除するには、通常、cat / dev / null > ファイル——————————————————————————————————————————
6.パフォーマンスを向上させるファイルを見つける
問題:tmpディレクトリにpicture_ *を含む一時ファイルが多数あります,毎晩2:30前日へ
ファイルのクリーンアップ。crontabで次のスクリプトを実行する前に,しかし、スクリプトは非常に非効率的であることがわかりました,実行されるたびに
負荷が急増,他のサービスに影響を与える。
#!/bin / sh find / tmp -name“ picture_ *” -mtime +1 -exec rm -f {} ;
理由:ディレクトリにはたくさんのファイルがあります,検索の使用は非常にリソースを消費します。
解決する: #!/bin / sh cd / tmp time = `date -d“ 2日前”“ +
%b%d” `ls -l|grep「画像」 |グリップ「$時間」|awk ‘{$ NFを印刷する}’|xargs rm -rf
———————————————————————————————————————————
7.ゲートウェイのMACアドレスの問題を取得できません:2.14から3.65(マップされたアドレス2.141)まで、ネットワークに障害が発生します,
しかし、サードエンドの他のマシンから3.65ネットワークまでOK。
理由: # arpアドレスHWタイプHWアドレスフラグマスクIface 192.168.3.254
エーテル不完全CM
bond0の表面的な現象は、マシンがゲートウェイのMACアドレスを自動的に取得できないことです。,ネットワークエンジニアは、ネットワーク機器に問題があると述べました,
不明。
解決する: arpバインディング,arp -i bond0 -s 192.168.3.254 00:00:5e:00:01:64 ———————————————————————————————————————————
8.httpサービスの例を開始できません:ある日、R&Dの同僚が、Webサイトのhttpフロントエンド環境を開始できないと言いました。,
上がって見てみました。
次のエラーを報告してください:
/etc / init.d / httpd starthttpdの開始: [1月(土) 29 17:49:00 2011] [警告] モジュール
antibot_moduleはすでにロードされています, スキッププロキシ転送をリモートIPとして使用 :
true. アンチボット除外パターン : .*.[(js|css|jpg|gif|png)] アンチボットシードチェックパターン
: ログインする (98)すでに使用されているアドレス: make_sock: アドレスにバインドできませんでした [::]:7080
(98)すでに使用されているアドレス: make_sock: アドレスにバインドできませんでした 0.0.0.0:7080
使用可能なリスニングソケットはありません, シャットダウンログを開くことができません [失敗しました]
理由:
1)ポートが占有されています:表面では、ポート7080が占有されています,したがって、netstat -npl|grep7080を見てみました
7080が占有されていないことがわかりました; 2)構成ファイルでポートを複製します,次の2つのファイルを同時に書き込む場合
聴く 7080 /etc / httpd / conf / http.conf /etc/httpd/conf.d/t.10086.cn.conf
解決する: コメントアウト/etc/httpd/conf.d/t.10086.cn.confで聞く 7080,リブート,OK。 ———————————————————————————————————————————
9.開いているファイルが多すぎます
問題:開いているファイルのエラーが多すぎます
解決する:究極のソリューション
エコー "" >> /etc / security / limits.conf
echo“ * soft nproc 65535” >> /etc / security / limits.conf
echo“ * hard nproc 65535” >> /etc / security / limits.conf
echo“ * soft nofile 65535” >> /etc / security / limits.conf
echo“ * hard nofile 65535” >> /etc / security / limits.conf
エコー "" >> /root / .bash_profile
エコー「ulimit-n65535」 >> /root / .bash_profile
エコー「ulimit-u65535」 >> /root / .bash_profile
最後にマシンを再起動するか、ulimit-uを実行します 655345 && ulimit -n 65535 ———————————————————————————————————————————
10. プロンプトなしでファイルを上書きする
次のコマンドを直接入力することで実現できます
[root @ linuxtest〜]# \cp -rf zongguofeng linuxzgf
[root @ linuxtest〜]#
11.ibdata1とmysql-binによって引き起こされるディスクスペースの問題:2.51ディスク容量アラーム,調査の結果、ibdata1
また、mysql-binログはスペースを取りすぎます(ibdata1が120Gを超える場合),mysql-binが80Gを超えています)
理由:ibdata1はストレージ形式です,INNODBタイプのデータ状態,ibdata1は、ファイルデータとインデックスを格納するために使用されます,
ライブラリ名のフォルダ内のテーブルファイルは単なる構造です。
innodbストレージエンジンには2つのテーブルスペース管理方法があります,
それぞれ:
1)共有表スペース(複数の小さな表スペース・ファイルに分割できます),これは、現在ほとんどのデータベースで使用されている方法です。;
2)独立表スペース,各表には個別の表スペース(ディスク・ファイル)があります
2つの管理方法の場合,それぞれに長所と短所があります,
詳細は以下の通り:
①共有表スペース: 利点:表スペースは複数のファイルに分割して、異なるディスクに保管できます(表スペースのファイルサイズ)
テーブルサイズによる制限なし,同期されていないファイルにテーブルを配布できます)。 不利益:すべてのデータとインデックスはに保存されます
ファイル内,データが増えるにつれて,大きなファイルがあります,大きなファイルを複数に分割することはできますが
小さなファイル,ただし、複数の表と索引が表スペースに混在しています,したがって、テーブルに対して多数の削除が行われた場合
操作後のテーブルスペースには多くのギャップがあります。共有表スペース管理用,表領域が割り当てられると,ない
再び引っ込めることができます。一時索引が作成されるか、一時表が作成されると、表スペースが拡張されます。,関連するものを削除することです
時計はスペースのその部分を縮小することはできません。
②独立したテーブルスペース:構成ファイル(my.cnf)で設定: innodb_file_per_table
特徴:各表には、独自の独立した表スペースがあります;各テーブルのデータとインデックスは、独自のテーブルスペースに格納されます。
利点:表スペースに対応するディスク・スペースを再利用できます(表のドロップ操作により、表スペースが自動的に再利用されます),の場合
大量のデータを削除した後、テーブルを渡すことができます:テーブルの変更tbl_nameengine = innodb;未使用スペースを撤回する。
不利益:単一のテーブルが増えすぎる場合,100G以上の場合,パフォーマンスも影響を受けます。このような状況下で,使用する場合
共有表スペースはファイルを分離できます,しかし、同じ問題があります,訪問の範囲が大きすぎる場合、同じものが訪問されます
複数のファイル,遅くなります。別の表スペースを使用する場合,パーティションテーブルの使用方法を検討できます,ある意味で
問題を軽減する。 加えて,独立表領域モードが有効になっている場合,innodb_open_filesを合理的に調整する必要があります
パラメータ設定。 解決する: 1)Ibdata1データが大きすぎます:ダンプのみ,データベースを構築するためのSQLステートメントをエクスポートします,再び
再構成法。
2)Mysql-binログが大きすぎます:
①手動で削除する: ログを削除する:mysql>マスターログを「mysql-bin」にパージします.010′;
特定の前日からログを削除する:mysql>2010年12月22日より前のマスターログのパージ 13:00:00′;
②/ etc / my.cnfに設定して、N日間のbin-logログのみを保存しますexpire_logs_days = 30 //バイナリログ
自動的に削除された日 ———————
この記事はKISSING_huのCSDNブログからのものです ,
全文アドレスについては、をクリックしてください:https://blog.csdn.net/KISSING_hu/article/details/42113261?utm_source = copy