遅かれ早かれ、すべての開発者がテスト環境の問題に直面することは確かです。 PCを24時間365日オンにしておくのはあまり便利ではなく、目玉の実験用のソフトウェアであふれさせることさえあります。 一方、あなた自身の好みに合ったホスティングを見つけることは、高価ではなくても、簡単な作業でもありません。 どうする? 解決策があります-自宅でサンドボックスを拡張します。 私が確信したように、これについては以下でさらに説明しますが、高価ではなく、便利で非常に刺激的です。
免責事項: 投稿はiceproのリクエストで公開されているため、 急いでカルマを私に変更するのではなく、招待して良い人を助けてください。 ここでは啓示や予期しない解決策を見つけることはできませんが、この方法で行けば、必要なものすべてを1か所で見つけることができます。
事前に警告します:記事1、強く叩かないでください。
次に詳細を説明します。 事前にひげを生やした管理者とこのトピックのすべての有能な人、私の心をつかむ、性交し、マイナスを入れるために急いでください、私は勉強しているだけで、管理を厳しく扱っていないので、事前にお願いします。 しかし、初心者の方がLinuxのパスを2、3の手順で短縮し、お互いを本当に早く知り合えることを願っています:)
まとめ
詰め物
だから、アイデアがあります、私たちはそれを実装し始めます。 鉄を選ぶ際の私にとっての主な基準は、価格、低消費電力、ノイズの欠如でした(さもなければ、妻が私の砂場をバルコニーに、そしておそらく私と一緒に送るリスクがありました:))。 これはすべて、ターゲットフォームファクターがMiniITXであることを示しています。
オンラインストアをさまよった後、このマザーボードを見つけました: Intel BOXD2500HN 。
Intel Atom D2500プロセッサー(1.86 GHz)に基づいています。 私にとっては、この力で十分でした。 エネルギーを消費-10ワット。 価格は約70ドルです。 パッシブ冷却-ノイズなし。 また、自宅には2 GBのSO-DIMMメモリと半テラバイトのネジがあります。
事件について。 繰り返しますが、私はより少ないノイズを望んでいたので、選択は外部電源の場合に当てはまりました-DELUX E-2012 Black Mini-ITX
合計、唯一のクーラー-40 mm、ハードドライブの上にあります(まあ、定期的な場所があったので、完全に完成させることにしました)。
OS
OSの選択は長くはありませんでした。 以前は、Ubuntuで作業する必要があったため、選択はその基盤であるDebianにかかっていました。 執筆時点では、最新バージョン(インストール済み)は7.0-Wheezyでした。 オフサイトからダウンロードできます。グラフィックシェルに応じていくつかのバリエーションがあります。 裸のコンソールをインストールすることを敢えてしなかったため、提示されたオプションの中で最も軽量なLXDEを選択しました。
すぐに予約します-Debianはソフトウェアリポジトリの豊富さに感銘を受けました。 あなたはその中に何でも見つけることができます。 目的のプログラムを名前で検索するには、次のコマンドを使用します。
インストールのために私たちは実行しますsudo apt-cache search < , >
sudo apt-get install < >
本文の後半で、ソフトウェアのインストールについて言及しますが、その方法はすでに知っています。
Debianのインストールは難しくありません。 イメージをダウンロードして、起動可能なUSBフラッシュドライブを作成します( LinuxLive USB Creatorが作成に役立ちます)。 次に、そこから起動し、グラフィカルインストーラーをオンにします(簡単になります)。 基本的に、インストールはWindowsのインストールに似ています:[次へ]、[次へ]、[次へ]をクリックします。 しかし、まだいくつかのポイントがあります。
-マークアップ選択ステップで、個々のセクションを選択します
-自動パーティションウィザードで提案された構造が表示されたら-同意しないで、RootFS(「/」でもある)を少なくとも数ギガバイトに増やします(現在512 MBあり、パーティションを注意深く監視する必要があります)
-ソフトウェアの選択はそのままにしておきます(「デスクトップ環境」と「標準システム」のダウ、残りは後で設定されます)
それでも段階的なインストール支援が必要な場合は、インターネットでMaunalの「初心者向けDebian GNU_Linux上のWebサーバー」を見つけることをお勧めします。
次に、システムのいくつかの小さな調整が行われました。
須藤
ユーザーがスーパーユーザーに代わってコマンドを実行できるようにするには、そのユーザーをsudoerリストに追加する必要があります。 構成の詳細は、上記の「1.2.1 sudoの基本セットアップ」セクションで説明したドキュメントに記載されています。
リモートアクセス
リモートでアクセスできるようにするために、私はsshのことではなく、デスクトップ、つまりVNCサーバー-x11vncだけをインストールしました。
セットアップは非常に簡単です。最初に認証ファイルを生成します。
x11vnc -storepasswd <pass> <file>
そして、VNCサーバーを自動ロードに追加します(/ etc / xdg / lxsession / LXDE / autostart)
@/usr/bin/x11vnc -dontdisconnect -display :0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/ice/.vnc/passwd
自動ログイン
マザーボードは、電気が中断され再開された後、その状態を復元できます。 ただし、モニターがサーバーに接続されておらず、システムのステータスが表示されていない場合、停電後、再起動後にログイン環境でグラフィカル環境がハングします。 この不便を解消するために、ユーザーに自動ログイン機能を追加します。このために、/ etc / lightdm / lightdm.confファイルに次の行を追加します。
autologin-user=ice autologin-user-timeout=0
ハードウェアモニター
機器を追跡することは役立ちます
lshw lshw-gtk
温度監視のために、lm-sensorsとhddtempを提供しました。
チーム
sensors
ユーティリティを使用する前に、すべてのセンサーを検出する必要があります。これを実行する必要があります。
/usr/sbin/sensors-detect
チーム
hddtemp /dev/sda
最初は、温度やその他のセンサーをチェックするマニアがいたので、データを収集してログに記録する短いスクリプトを作成しました。
#!/bin/bash echo '################## TIME ##################' date echo '################# UP TIME ################' uptime echo '################# MB TEMP ################' sensors echo '################ HDD TEMP ################' sudo hddtemp /dev/sda echo echo
次に、スクリプトを実行するスケジュールを作成しますが、最初にスクリプトを実行する権利を与えます。
visudo ice ALL=NOPASSWD: /home/ice/scripts/monitoring/temp.sh
sudo crontab -e -u ice */10 * * * * sudo /home/ice/scripts/monitoring/temp.sh >> /home/ice/scripts/monitoring/temp.log 2>&1
次のコマンドを使用して、起動が発生することを確認できます。
grep CRON /var/log/syslog
sudo apt-get install logrotate
次に、/ etc / logrotate.d /フォルダーに構成ファイルを作成します。 私はこのように見えます:
/home/ice/scripts/monitoring/temp.log { # daily # missingok # rotate 30 # 30 compress # delaycompress # (.. *.log.1 , *.log.2 ) notifempty # create 640 ice ice # }
その他のささいなこと
- htop-高度なプロセスモニター
- システムパフォーマンスを測定するためのパッケージ、詳細はsysstat 、ここでのチューニングはUbuntu / Debianでsysstat / sarを設定する方法への永続的なリンクです
- lynis-「システムをより詳細に制御および監視する必要がある」という要望を克服するのに役立つユーティリティ、説明-lynis
- rtorrentはコンソールトレントクライアントです(ちなみに、Webフェイスも添付しました。非常に便利です)。設定の詳細については、こちらをご覧ください-Debian / Ubuntuにrtorent + rutorrentをインストールする
- exim4-メールサーバー、GMail SMTP を使用した構成についてはここで説明します-GMail for SMTPを使用するためのUbuntuでのexim4の構成
- proftpd-FTPサーバー(ここで設定を見て、Debianベースのホームサーバーのセットアップ )
- samba-ネットワークファイルシステム(すべてを試してみたかったので、インストールしました)、構成はここにあります-Debian GNU / LinuxおよびUbuntu LinuxでのSambaのインストールと構成
アクセスのために、sambaはシステムユーザーを使用します。コマンドを使用してSMBデータベースに追加できます。
smbpasswd -a ice
- mc-便利なファイルマネージャー
- ssh-コメントはありません
- マウントオプション(/ etc / fstab)にcommit = 60を追加して、ハードドライブ(jbd2プロセス)を常に苦しめている過剰なログと戦う
- htop-高度なプロセスモニター
開発環境
それで、今、最も興味深いのは、この小さな箱に詰め込むことができたことです。
ランプ | nginx | Node.js | MongoDB | Git | Java | Python | ルビー | .NET | ジェンキンス
ランプ
はい、私は積極的なウェブ開発者であり、このプラットフォームがなくても手がありません。 すべてが基本に設定されます:
しかし、インストール直後に失敗しました-PHPファイルはApacheで処理されたくありませんでした。 これを修正するために、次の操作を行いました。sudo apt-get update sudo apt-get upgrade sudo apt-get install apache2 apache2-doc php5 libapache2-mod-php5 php-pear sudo apt-get install mysql-server mysql-client php5-mysql sudo apt-get install php5-curl php5-gd php5-imagick php5-ldap php5-imap php5-memcache php5-common php5-mysql php5-ps php5-tidy imagemagick php5-xcache php5-xdebug php5-xmlrpc php5-xsl
/etc/apache2$ sudo gedit apache2.con # AddHandler application/x-httpd-php .php .php4 .php3 .html AddType application/x-httpd-php .html
便利なphpデバッグのために、 xdebugをインストールして構成しました 。 インストールの詳細については、次のリンクを参照してください。
-PHP開発用のXdebugの構成/ Linux
-PhpStorm上のリモートXdebug
仮想ホストを作成するとき、それらをホストに登録することを忘れないでください
nginx
Apacheのパフォーマンスを改善するには、apgin-backend、nginx-frontendのロールの配布でnginxと組み合わせて使用することをお勧めします。 このような構成を実行する方法は、記事-Nginxのインストールと構成で説明されています。 Nginxフロントエンド+ Apacheバックエンド。
Node.js
特に小さなクライアント/サーバーアプリケーションを作成するための優れたプラットフォーム。 Webソケットだけでも価値があります。 まあ、インストールに戻ります。 node.jsを置くことは少し簡単ですが、難しくはありません-本当の意味で、つまりソースから:
sudo apt-get install python g++ make checkinstall mkdir ~/src && cd $_ wget -N http://nodejs.org/dist/node-latest.tar.gz tar xzvf node-latest.tar.gz && cd node-v* # "v" ./configure checkinstall sudo dpkg -i node_*
ここでインストールについてもう少し詳しく説明します-Node.jsのインストール
モンゴッド
NoSQLコミュニティに参加してみませんか? そこでこの質問をしました。 まあ、多分私はNoSQLをきちんと使用するつもりはありませんでしたが、それを感じるために-なぜですか?
インストール!
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list sudo apt-get update sudo apt-get install mongodb-10gen
...そして実行
sudo /etc/init.d/mongodb start
Git
長い間、私はgithubに公開リポジトリを残したいと思っていました。 そして今、時が来ました。 Gitのインストールは難しくなく、パッケージリポジトリではgitと呼ばれますが、便利な作業のためにGitを構成するのはもう少し複雑です。
-別のユーザーを作成する-git
-リポジトリを管理するためのgioliteのインストール
このビデオは、パテで生成されたキーが無視される状況を克服するのに役立ちました-Puttygenによって生成されたRSA公開キーによって引き起こされた「サーバーがキーを拒否しました」エラーを修正する方法
次に、gioliteリポジトリのクローンを作成します-ssh://git@192.168.1.110:/gitolite-admin.gitと出来上がり、担当者を制御します。
次のリンクは、git + gitoliteのセットアップに役立ちました。
- サーバーのセットアップ。 Gitolite-Gitリポジトリのホスティング
- ゼロから独自のgitサーバー
ブラウザからのリポジトリの便利な概要については、gitwebを参照してください。 インストール方法はここで説明されています-DebianでのGitwebのセットアップ 。
自分から追加します:
apachとgitoliteが友達を作るように。usermod -a -G gitolite www-data
しかし、仮想ホストをセットアップする(動作するまでさまざまなソースからビットごとに収集される)
<VirtualHost *:81> ServerAdmin webmaster@localhost ServerName git-web.loc SetEnv GITWEB_CONFIG /etc/gitweb.conf DocumentRoot /home/git/repositories Alias /static/gitweb.css /usr/share/gitweb/static/gitweb.css Alias /static/git-logo.png /usr/share/gitweb/static/git-logo.png Alias /static/git-favicon.png /usr/share/gitweb/static/git-favicon.png Alias /static/gitweb.js /usr/share/gitweb/static/gitweb.js Alias /git /home/git/repositories ScriptAlias /gitweb.cgi /usr/lib/cgi-bin/gitweb.cgi DirectoryIndex gitweb.cgi <Directory /home/git/repositories/> Allow from All Options +ExecCGI AllowOverride All AuthType Basic AuthName "Private Repository" AuthUserFile /home/ice/stuff/keys/.htpasswd-gitweb Require valid-user AddHandler cgi-script .cgi DirectoryIndex gitweb.cgi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.* /gitweb.cgi/$0 [L,PT] </Directory> SetEnv GIT_PROJECT_ROOT /home/git/repositories SetEnv GIT_HTTP_EXPORT_ALL ErrorLog ${APACHE_LOG_DIR}/git_web_error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/git_web_access.log combined </VirtualHost>
味の基本的な許可は、無効にすることができます。
Java
Javaプラットフォームに移りましょう。 最初のステップは、openjdkを削除してJava 7をインストールすることです
sudo apt-get remove openjdk* su - # java echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886 apt-get update # Oracle software license echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections # Oracle JDK7 apt-get install oracle-java7-installer # root exit # java java -version
上記で、次のソフトウェアを追加しました。
-scala(サーバーで練習しない理由を学んでいます)
-glassfish-最も活発に開発された(ほとんどではないにしても)アプリケーションサーバーの1つ
*ポート8080がビジー状態であるためにGlassfishが起動しない場合(それが判明したため)、デフォルトのポートを変更しましょう。 これを行うには、GlassFish_Server \ glassfish \ domains \ domain1 \ configでポートを見つけ、別のポートを設定します。
<network-listener name="http-listener-1" port="8081" protocol="http-listener-1" thread-pool="http-thread-pool" transport="tcp"</network-listener>
Python
Pythonは次にdjangoを使用しました。 リポジトリからの取り出しは非常に簡単です。 ここで使いやすさを確認できます- 最初のDjangoアプリを書く
ルビー
Pythonのように、フレームワークであるRailsでもカットを設定します。 置くのが少し難しいので、手順を説明します。
また、$ PATHにレールを追加することを忘れないでください:apt-get install build-essential libapache2-mod-passenger ruby rdoc ruby-dev libopenssl-ruby rubygems gem install fastthread gem install rails --version 3.0.4
PATH=".../var/lib/gems/VERSION/bin"
まあ、それを使用するのと同じくらい簡単です-Railsを始めよう
内部のニーズのために、バグトラッカーを展開することも決定され、 Redmineになりました。
次のように配置します。
# aptitude install libmagickcode-dev aptitude install libmagickwand-dev aptitude install ruby1.9.1-dev aptitude install libmysqlclient-dev # redmine cd /opt wget http://files.rubyforge.vm.bytemark.co.uk/redmine/redmine-2.3.1.tar.gz tar -zxvf redmine-2.3.1.tar.gz cd /var/www ln -s /redmine-2.3.1/public redmine chown -R www-data:www-data /opt/redmine-2.3.1
mysqlクライアントに移動して、データベースとユーザーを作成します。
CREATE DATABASE redmine_default CHARACTER SET utf8; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my-password'; GRANT ALL PRIVILEGES ON redmine_default.* TO 'redmine'@'localhost';
データベース構成を作成する
cd /redmine-2.3.1/config cp database.yml.example database.yml vi database.yml
そしてそれを埋める
production: adapter: mysql2 database: redmine_default host: localhost username: redmine password: my-password encoding: utf8
設定ファイルを作成します。
cd /redmine-2.3.1/config cp configuration.yml.example configuration.yml vi configuration.yml
構成します(構成の利点はコメントでいっぱいです)。
今ルビーバンドルを入れて
gem install bundler bundle install --without development test postgresql sqlite rake generate_secret_token bundle install
データベースを準備します。
RAILS_ENV=production rake db:migrate RAILS_ENV=production rake redmine:load_default_data
このすべての後、Apacheで仮想ホストを構成する必要があり、それを使用できます。
設定(リポジトリからコミットに関する情報を取得する)については、ここで説明します-Redmine設定 Cは、Cronを使用して、リポジトリの自動ポーリングを構成するオプションを選択しました。
.NET
.NETプラットフォームについて忘れないでください。 主なコンポーネントは、モノラルプラットフォーム自体であり、XSP(ASP.NETサーバー)は次のようにインストールされます。
sudo apt-get install mono-common mono-xsp4
これで、.NETのほぼすべての機能を利用できるようになりました。
詳細はこちら: Debian for Mono 。
ジェンキンス
そして、このすべてがcrown冠されます-CIサーバー。 それをどのように配置して設定するかを見てみましょう... PHP:
ジェンキンスを入れます
sudo apt-get update sudo apt-get install php5-cli php5-xdebug php-pear ant git php -r 'echo "Xdebug loaded? "; echo (extension_loaded("xdebug")) ? "yes" : "no"; echo chr(10);' wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo bash -c "echo 'deb http://pkg.jenkins-ci.org/debian binary/' > /etc/apt/sources.list.d/jenkins.list" sudo apt-get update sudo apt-get install jenkins
プラグインを追加する
wget http://localhost:8080/jnlpJars/jenkins-cli.jar java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin checkstyle java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin cloverphp java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin dry java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin htmlpublisher java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin jdepend java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin plot java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin pmd java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin violations java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin xunit java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin git java -jar jenkins-cli.jar -s http://localhost:8080 safe-restart
PHPUnitと追加ツールをインストールする
sudo pear upgrade PEAR sudo pear channel-discover pear.pdepend.org sudo pear channel-discover pear.phpmd.org sudo pear channel-discover pear.phpunit.de sudo pear channel-discover components.ez.no sudo pear channel-discover pear.symfony-project.com sudo pear install pdepend/PHP_Depend sudo pear install phpmd/PHP_PMD sudo pear install phpunit/phpcpd sudo pear install phpunit/phploc sudo pear install PHPDocumentor sudo pear install PHP_CodeSniffer sudo pear install --alldeps phpunit/PHP_CodeBrowser sudo pear install --alldeps phpunit/PHPUnit
構成:
-http : //jenkins-php.org/から/build.xmlをダウンロードし、プロジェクト用に編集します
-PMDルールhttp://phpmd.org/をダウンロードし、プロジェクトに/build/phpmd.xmlとして配置します
-オプションで、 http: //pear.php.net/のルールを追加し、プロジェクトに/build/phpcs.xmlとして配置できます。
-/tests/phpunit.xmlでPHPUnitを構成します
-タスクテンプレートをダウンロードする
cd /var/lib/jenkins/jobs/ sudo git clone git://github.com/sebastianbergmann/php-jenkins-template.git php-template sudo chown -R jenkins:nogroup php-template/ sudo /etc/init.d/jenkins stop sudo /etc/init.d/jenkins start
-テンプレートから新しいタスクを作成し、リポジトリにバインドします(バージョン管理システム用のプラグインを追加する必要がある場合があります)。
バックアップ
機器の故障を回避することは不可能であることは明らかですが、データのバックアップコピー(さらには新鮮なもの)がある場合、この考えではまったく異なる感覚が生じます。
プロセス自体は2つのタイプに分けられます。
-完了(多くの変更がシステムに渡され、それを保存する必要があると感じたときに選択的に行います)
-部分的(毎日の変更の対象となるすべてのシステムノード:データベース、ソースコードなど)
remastersysスクリプトを使用して完全なダンプを収集しています。
スクリプトを表示
#!/bin/bash # start=`date +%s` echo '[FULL BACK UP Start]' DATE_NOW=`date +%F` echo '[FULL BACK UP Dump Creation]' # sudo remastersys backup install-$DATE_NOW.iso echo '[FULL BACK UP Dump Saving]' # sudo cp /home/remastersys/remastersys/install-$DATE_NOW.iso /home/backups/system-iso/install-$DATE_NOW.iso sudo cp /home/remastersys/remastersys/install-$DATE_NOW.iso.md5 /home/backups/system-iso/install-$DATE_NOW.iso.md5 echo '[FULL BACK UP Clean up]' # tmp sudo remastersys clean echo '[FULL BACK UP End]' end=`date +%s` runtime=$((end-start)) echo 'Backup time =' $runtime 'sec(s)'
部分的なスクリプトは、cronで毎晩実行されます。
スクリプトを表示
どうやら-私は最後の7つのコピーを保持します。
#!/bin/bash start=`date +%s` echo '[BACK UP Start]' DATE_PREF=`date +%F` echo '[BACK UP Config]' # BACKUP_MYSQL_DIR=/home/backups/mysql/$DATE_PREF BACKUP_WWW_DIR=/home/backups/www/$DATE_PREF BACKUP_GIT_DIR=/home/backups/git/$DATE_PREF echo '[BACK UP Clean up]' # find /home/backups/mysql/ -mtime +7 -print -mindepth 1 -delete >/dev/null 2>&1 find /home/backups/www/ -mtime +7 -print -mindepth 1 -delete >/dev/null 2>&1 find /home/backups/git/ -mtime +7 -print -mindepth 1 -delete >/dev/null 2>&1 echo '[BACK UP Not Clened Items]' ls /home/backups/mysql/ ls /home/backups/www/ ls /home/backups/git/ echo '[BACK UP Back Up Hosts]' # tar cpzf $BACKUP_WWW_DIR\-www.tgz /home/www/ >/dev/null 2>&1 echo '[BACK UP Back Up Repositories]' # tar cpzf $BACKUP_GIT_DIR\-git.tgz /home/git/ >/dev/null 2>&1 echo '[BACK UP Back Up MySQL]' # mysqldump -q -u root -p<password> -h localhost tt_rss | gzip -c > $BACKUP_MYSQL_DIR\-tt_rss.sql.gz mysqldump -q -u root -p<password> -h localhost test | gzip -c > $BACKUP_MYSQL_DIR\-test.sql.gz mysqldump -q -u root -p<password> -h localhost redmine | gzip -c > $BACKUP_MYSQL_DIR\-redmine.sql.gz mysqldump -q -u root -p<password> -h localhost phpmyadmin | gzip -c > $BACKUP_MYSQL_DIR\-phpmyadmin.sql.gz mysqldump -q -u root -p<password> --skip-lock-tables -h localhost performance_schema | gzip -c > $BACKUP_MYSQL_DIR\-performance_schema.sql.gz mysqldump -q -u root -p<password> --skip-lock-tables -h localhost information_schema | gzip -c > $BACKUP_MYSQL_DIR\-information_schema.sql.gz mysqldump -q -u root -p<password> --events -h localhost mysql | gzip -c > $BACKUP_MYSQL_DIR\-mysql.sql.gz echo '[BACK UP New Items]' ls /home/backups/mysql/ | grep $DATE_PREF ls /home/backups/www/ | grep $DATE_PREF ls /home/backups/git/ | grep $DATE_PREF echo '[BACK UP End]' end=`date +%s` runtime=$((end-start)) echo 'Backup time =' $runtime 'sec(s)' echo '========================================================='
どうやら-私は最後の7つのコピーを保持します。
よろしくお願いします! おもしろかったです!
PS質問の場合-私は助けてうれしいです。
PPSどうぞ、招待してください。