2018年11月22日 星期四

不透過交換public key的方式進行遠端操作

最近覺得有點懶惰,為了要再其他電腦更新已經修改好的文件都要輸入密碼,但往往一個專案開發的功能可能會有好幾項檔案要更新,而且更新的電腦要常常重灌,所以對我來說交換key的方式也很不方便,因為對我來說只想用簡單的方式去達到我想要的目的,所以

我找到一個相當方便的套件, 條件是 我只是簡單要交換資料而已,這會讓密碼變明碼,如果你不是要這種簡單交換資料的方式的話,那這篇對你來說就不太適用了。

ubuntu apt download:

apt install -y sshpass

簡單使用方法:
假設要由A端傳輸到B端的資料,你可以這麼做
sshpass -p [password] scp [file] [USER]@[REMOTE TARGET]

如此一來,你就可以直接把local端資料直接丟到遠端電腦啦!

2018年8月13日 星期一

Windows bash autoit

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <Date.au3>


$fh = FileOpen("Test.txt",$FO_APPEND)

If $fh = -1 Then
   MsgBox($MB_OK,"ERROR","")
   Exit 1
EndIf

$Sum = 0
For $i = 1 To 100 Step 1

     FileWriteLine($fh,"Sum =" & $i)
FileWriteLine($fh,"The time is:" & _NowTime())
Send("{^s}")
Sleep(300000)
Next


FileWriteLine($fh,"end loop sucess")
FileClose($fh)

2018年6月24日 星期日

Eclipes 安裝

針對ubuntu 安裝eclipese-inst-linux4.tar.gz說明

1.下載linux版本
https://www.eclipse.org/downloads/download.php?file=/oomph/epp/oxygen/R2/eclipse-inst-linux64.tar.gz

2.到CLI命令列介面解壓縮(檔案再~/Download/)
tar -zxvf eclipse-inst-linux64.tar.gz

3.會遇到不存在jre路徑的問題
兩個方案,一個去下載java包放到本資料夾底下(不詳述)
第二方案:
sudo apt-get install openjdk-8-jre
數字8可能會依版本更新而不同(之前是7)

完成

2018年6月19日 星期二

rsnapshot安裝與簡易使用

安裝
sudo apt-get update
sudo apt-get install rsnapshot -y


安裝後,一個範例設定檔將會被放在 /etc/rsnapshot.conf,但你多數不止把一台主機備份,因此
我們不會採用它。
取而代之,請建立一個目錄來放置你的主機設定檔。請按你的喜好來更改路徑名稱






註:這個部份我在目錄命名的第二個手字母大寫
sudo mkdir /etc/rsnapShot


你也需要一個地方來安置備份,所以請建立一個地方來儲存那些檔案。
sudo mkdir /srv/backUps/





最後,你將會需要一個地方來放置 rsnapshot 所建立、稍後要設置的日誌。請建立一個目錄。
sudo mkdir /var/log/rsnapshot





設置不須密碼的 SSH 登入


在 rsnapshot 伺服器上,你須要建立一對 SSH 金鑰。你可以利用 ssh-keygen 來達至這個目的。
ssh-keygen -t rsa


root@est-testlink:~# ssh-keygen -t rsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):  直接enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 直接enter
Enter same passphrase again: 直接enter
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:wguVbHKpUWVAaQSWRM3itiAQUXMfGs1NxqQt5QQurq4 root@est-testlink
The key's randomart image is:
+---[DSA 1024]----+
|o+ooBXBXO        |
|.  +oBB%o        |
|.  .=o% o        |
|. ..oX .         |
| . o+.o S        |
|   ... o         |
|  . .          |
| .               |
|E..              |
+----[SHA256]-----+


在主機上安裝金鑰
如果你已經有 SSH 存取權,當你在 rsnapshot 伺服器上建立了金鑰後,你可以輕易地將公鑰加進遠端的適當檔案內。切勿加入那條非公開的金鑰。
請從 rsnapshot 伺服器執行以下的指令到你要備份的遠端系統。
cat .ssh/id_rsa.pub | ssh user@192.168.2.213 "cat - >> .ssh/authorized_keys"
這邊我本機沒有開root的遠端權限所以還必須從user複製到root端
cat ~/.ssh/id_dsa.pub | ssh user@192.168.2.213 "cat >> ~/.ssh/authorized_keys2"
cp /home/user/.ssh/authorized_keys2  ~/.ssh/authorized_keys2


也許此刻你會想在遠端系統停用 SSH 的密碼登入,但這是你的決定。假若你想這樣做,編輯 /etc/ssh/sshd_config
請確定 PasswordAuthenticationPermitEmptyPasswords 都是 no。另外,縱使我不是位安全性專家,但你應該把你的 .ssh 目錄及檔案的存取權好
下面般更改。


chmod 700 .ssh; chmod 400 .ssh/authorized_keys2
此步驟我沒實行


設定 rsnapshot 主機



既然你已經初步有一個地方放置設定檔、一個地方放置備份、及能夠不須密碼存取遠端系統,現在你可以建立主機設安檔。

1)主機的 .conf 檔

請為你要備份的主機建立一個檔案來收藏 rsnapshot 專用的設定。請按你的情況取代主機名稱及檔案名稱。


gedit /etc/rsnapShot/host213.rsnapshot.conf


設定檔
config_version 1.2   #參考 /etc/rsnapshot.conf
snapshot_root /srv/backUps/host213/                #你預設存放遠端資料的路徑
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
interval        hourly 6 #小時備份最大存放數
interval daily 7
interval weekly 4
interval monthly 3
verbose 2
loglevel 4
logfile /var/log/rsnapshot/host.log #logfile
exclude_file /etc/rsnapShot/host213.exclude
rsync_long_args --delete --numeric-ids --delete-excluded
lockfile /var/run/rsnapshot.pid
#這邊會備份到/srv/backUps/snapshots/host/hourly.0/hosttest
backup user@192.168.2.213:/ hosttest/      


還有輸入密碼的問題


註:請留意選項數值之間的空位。它們不是空格,而是 tab。此外,目錄必須有後置的斜線。
說明
config_version 1.2 = 設定檔版本
snapshot_root = 儲存備份的目標位置
cmd_cp = 「複製」指令的路徑
cmd_rm = 「刪除」指令的路徑
cmd_rsync = rsync 指令的路徑
cmd_ssh = SSH 的路徑
cmd_logger = 與 syslog 溝通的指命的路徑
cmd_du = 「查詢磁碟用量」指命的路徑
interval hourly = 須保留的每小時備份數量
interval daily = 須保留的每日備份數量
interval weekly = 須保留的每週備份數量
interval monthly = 須保留的每月備份數量
verbose = 不言自明
loglevel = http://ajason0753.blogspot.com/2007/05/printk-log-level.html

logfile = 日誌的路徑
ssh_args = 附加的 SSH 選項,例如不同的連接埠(-p)
exclude_file = 排除檔的路徑(將會有更詳盡解釋)
rsync_long_args = 傳給 rsync 的冗長參數
lockfile = 不言自明
backup = 備份來源的完整路徑,接著是擺放位置的相對路徑
backup_script = 執行腳本的完整路徑,接著是擺放位置的相對路徑
現在你已經有一個可用的主機設定範例,讓我們繼續看排除檔。


2)主機的 .exclude 檔

選擇先排除一切,然後特別指定我需要備份的東西。這樣做的原因是要確保我們只批准所須的東西,及自動拒絕以外的事物。

請建立這個檔案:
gedit /etc/rsnapShot/host213.exclude


由於迴遞的原故,採用排除檔可以是件難對付的事。我不會假裝對 rsync 的迴遞完全理解,因此我的範例也許會不合你心意。
它容許你刻意指定所須的東西,然後排除其它一切。基於 rsync 採用迴遞的方式,與及你擺設架構的樣式(即是 * 與 ** 所配對的有差別),
你也許要先列舉目錄。


當你列出了所須的東西後,請加入 - * 來排除其它一切。這樣只有你列舉的東西才會獲備份。我的排除檔是這樣的:


- /boot
- /etc
+ /home
+ /home/user/
+ /home/user/VirtualBox*
+ /home/user/dirTest
- /home/*
- /home/user/*
- /opt
- /root
- /usr
- /usr/local
- /usr/*
- /var/cache
- /var
- /srv
- /*


請閱讀 rsync 的使用手冊來增進對於樣式配對及迴遞的理解


3)主機備份腳本

最後要解釋的設定選項是我用來傾印資料庫的執行腳本。這個選項讓你在 rsync 結束後執行腳本來加入檔案在備份中。譬如你可以連線到遠端系統
並傾印 MySQL 及/或 PostgreSQL 的資料庫。請建立所需的資料庫傾印腳本


請參閱此方法未實做


建立一個 crontab

自動化操作可以透過簡單的 crontab 項目來達成。請開啟 crontab 並加入以下內容:
crontab -e
建立
00    11   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
30    11   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
00    12   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
30    12   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
00    13   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
30    13   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
00    14   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
30    14   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
00    15   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
30    15   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
00    16   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
30    16   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
00    17   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
30    17   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
00    18   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
30    18   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
00    18   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
30    18   * *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly
15    03   * *       Sun /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf weekly
30    03   1 *       * /usr/bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf monthly
要加入更多主機,請遵照這份指南重複同樣的步驟,並在新增檔案內改用新的主機名稱


手動執行 rsnapshot

手方式建立備份,你可以在指令行配合適當的參數直接執行 rsnapshot
/usr//bin/rsnapshot -c /etc/rsnapShot/host213.rsnapshot.conf hourly {hourly,daily,weekly,monthly}


rsnapshot 的報告

若果你有與趣收到更多訊息,rsnapshot 有一個輕巧實用、容易設置的報告腳本。它會透過一封簡單的電郵向你匯報備份過程。這個報告很精簡。
首先,請複製該腳本到 /usr/local/bin 或某個地方,然後將它設為執行檔。


請參考



rsnapshot的增量備份

情況1:當檔案沒有更動時,直接做hard link,即兩份Hello都指向同一個Address






情況2:當檔案更動時,直接在copy一份

原參考自: