Linuxコンソールツールを使用したDoubleGISの更新

はじめに



画像

多くの場合、ユーザーがDoubleGIS(広告とは見なさない)ディレクトリをインストールするように求められます。特に、ユーザーが出張に出かける場合、他の都市の人と通信する場合です。



他のシステム管理者と同様に、私はすべての都市のDublGISを自動的に一元的に更新することを考えていました。



いくつかの理由により、Linuxを使用してこれを行うことが決定されました。

その理由の1つは、このオペレーティングシステムの集中更新の解決策がなかったことです。

もう1つは、Linuxユーザー用の1つのアーカイブにすべてのデータベースとシェルがあるサイトにファイルがないことです。



この記事では、Linuxコンソールツールを使用してすべての都市のDublGISを更新する方法を説明します。



何が必要ですか?







スクリプトを書く



ここに私が得たスクリプトがあります。



市へのリンクを含むWebページをダウンロードします。

wget --no-proxy --html-extension -P/root/2gis 'http://www.2gis.ru/how-get/linux/'







ダウンロードしたすべてのhtmlファイル、リンクのあるすべての行から選択し、並べ替え、重複を削除し、一時的なindex.tmpファイルに書き込みます。

cat /root/2gis/*.html | grep http:\/\/ |sort |uniq >/root/2gis/index.tmp







Webページを削除します-不要になりました。

rm -f /root/2gis/*.html







この不気味なチームでは、Index.tmpを処理して、how-get行のすべてのリンクを取得し、これらのリンクからすぐにWebページをダウンロードしました。

cat /root/2gis/index.tmp | grep -o [\'\"\ ]*http:\/\/[^\"\'\ \>]*[\'\"\ \>] | sed s/[\"\'\ \>]//g | grep how-get | xargs wget --no-proxy -r -p -np -l1 -P/root/2gis --tries=10 --html-extension --no-directories --span-hosts --dot-style=mega







index.tmpを削除しました-邪魔になります。

rm -f /root/2gis/index.tmp







html拡張子を持つすべてのファイルを1つのindex2.tmpに貼り付けました。

cat /root/2gis/*.html >/root/2gis/index2.tmp







ダウンロードしたWebページを削除します。

rm -f /root/2gis/*.html







ここで最も興味深いのは、更新プログラムへのリンクを引き出して、それらのファイルをダウンロードすることです。



「/ last / linux /」という文字列のリンクのindex2.tmpを処理し、並べ替え、重複を削除し、新しいファイルのみを2gis.archフォルダーにすぐにダウンロードします

cat /root/2gis/index2.tmp | grep -o [\'\"\ ]*http:\/\/[^\"\'\ \>]*[\'\"\ \>] | sed s/[\"\'\ \>]//g | grep "/last/linux/" | sort | uniq | xargs wget --no-proxy -nc -P/root/2gis.arch --tries=3 --html-extension --no-directories --span-hosts --dot-style=mega







すべての一時ファイルを削除します。

rm -fr /root/2gis/index*







アーカイブフォルダーからすべてのzipファイルをターゲットフォルダー/ root / 2gis /

unzip -o /root/2gis.arch/\*.zip -d /root/2gis/





重複しないように、20日より古いアーカイブを削除します

find /root/2gis.arch/ -name * -mtime +20 |xargs rm -fr







/ root / 2gisフォルダーには、すべての都市用の解凍されたDoubleGISがあり、/ root / 2gis.archフォルダーには、サイトからダウンロードしたLinuxユーザー用のアーカイブがあります。

cronで実行するスクリプトを配置します。

毎日設定しますが、スクリプトは不要なファイルをダウンロードしません。



おわりに



DublGISのサイト構造は絶えず変化しています。スクリプトが更新をダウンロードしない可能性があります。 これを定期的に監視することをお勧めします。



2011年12月31日更新



スクリプトを編集しました。 不要なものをすべて削除しました。



新しいオプション。

wget -O - 'http://www.2gis.ru/how-get/linux/' 2>/dev/null | sed "s/^.*\(http:\/\/[^\"\'\ ]*\/how-get\/linux\/\).*$/\1/g" |\

grep "how-get\/linux"|sort|uniq|xargs wget -p -O - 2>/dev/null |sed "s/^.*\(http:\/\/[^\"\'\ ]*\/last\/linux\/\).*$/\1/g"|grep "last\/linux"| sort|uniq|\

xargs wget -N -P/root/2gis.arch

unzip -o /root/2gis.arch/\*.zip -d /root/2gis/









PS建設的な批判をしてくれたkriomantに感謝します。

明けましておめでとうございます!



All Articles