[Question] Làm sao để truyền password vào trong shell script ! |
26/09/2012 13:58:22 (+0700) | #1 | 269723 |
cafecoc85
Member
|
0 |
|
|
Joined: 20/01/2007 18:36:49
Messages: 14
Offline
|
|
Hi mọi người,
Mình có một script lấy thông tin về CPU, Memory, Hard disk Usage OS Linux (SUSE Linux)
Mục đích topic là nhờ mọi người chỉ dẫn cách truyền tham số vào trong 1 shell script để có thể thêm nó vào crontab chạy định kỳ.
Nội dung script như sau :
#! /bin/bash
# Total memory space details
echo "Memory Space Details"
free -t -m | grep "Total" | awk '{ print "Total Memory space : "$2 " MB";}'
free -t -m | grep "Total" | awk '{ print "Memory Usage space : "$3 " MB";}'
total_mem=$(free -t -m | grep "Total" | awk '{ print $2 }')
mem_used=$(free -t -m | grep "Total" | awk '{ print $3 }')
percent1=$((($mem_used*100)/$total_mem))
echo "Memory Usage : $percent1%"
free -t -m | grep "Swap" | awk '{ print "Total Swap space : "$2 " MB";
print "Used Swap Space : "$3" MB";
print "Free Swap : "$4" MB";
}'
Tuy nhiên mỗi lần chạy thì mình phải gõ password mới chạy được, như bên dưới :
test:~ # ssh root@192.168.1.1 'bash -s' < /home/scripts/memLinux.sh
root@192.168.1.1's password: xxxx
Memory Space Details
Total Memory space : 65207 MB
Memory Usage space : 31438 MB
Memory Usage : 48%
Total Swap space : 32773 MB
Used Swap Space : 2161 MB
Free Swap : 30611 MB
Mình đã thử chạy thêm thẳng password trong lệnh ssh nhưng vẫn không được, nó vẫn hỏi password :
test:~ # ssh root:root@192.168.1.1 'bash -s' < /homescripts/memLinux.sh
root:root@192.168.1.1's password:
Memory Space Details
Total Memory space : 65207 MB
Memory Usage space : 31340 MB
Memory Usage : 48%
Total Swap space : 32773 MB
Used Swap Space : 2161 MB
Free Swap : 30611 MB
Có cách nào để khắc phục việc này bằng cách truyền tham số để script tự động assign giá trị password hay không ?
Cám ơn mọi người đã đọc qua.
|
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
26/09/2012 17:53:29 (+0700) | #2 | 269727 |
Stanley_00
Member
|
0 |
|
|
Joined: 01/03/2011 06:21:38
Messages: 74
Offline
|
|
Bạn có thể xem "man ssh" mục AUTHENTICATION. Thân. |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
27/09/2012 08:07:40 (+0700) | #3 | 269732 |
|
Ikut3
Elite Member
|
0 |
|
|
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
|
|
Sao không dùng Nagios để làm việc này ? |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
28/09/2012 13:37:05 (+0700) | #4 | 269769 |
thuank51cc
Member
|
0 |
|
|
Joined: 13/01/2012 03:44:56
Messages: 26
Offline
|
|
mình nghĩ bạn có thể tham khảo về mục này ssh-keygen. không cần truyền pass
http://troy.jdmz.net/rsync/index.html |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
30/09/2012 17:22:49 (+0700) | #5 | 269803 |
|
F10
Member
|
0 |
|
|
Joined: 01/12/2008 23:38:12
Messages: 89
Offline
|
|
Tuỳ chỉnh SSH dùng khoá bất đối xứng(không dùng passpase) để xác thực giữa 2 host là gọi lệnh remote không cần password. |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
01/10/2012 08:17:22 (+0700) | #6 | 269804 |
cafecoc85
Member
|
0 |
|
|
Joined: 20/01/2007 18:36:49
Messages: 14
Offline
|
|
Ikut3 wrote:
Sao không dùng Nagios để làm việc này ?
Mình cũng đang test dùng Nagios để monitor, nhưng bị vấp phải lỗi không install NDOutils + Nagios để lưu dữ liệu vào MySQL Database.
Có một số thiết bị mình không được install third-party tools nên mình dùng cách này để có thể monitor đấy mà. |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
01/10/2012 08:19:07 (+0700) | #7 | 269805 |
cafecoc85
Member
|
0 |
|
|
Joined: 20/01/2007 18:36:49
Messages: 14
Offline
|
|
thuank51cc wrote:
mình nghĩ bạn có thể tham khảo về mục này ssh-keygen. không cần truyền pass
http://troy.jdmz.net/rsync/index.html
Cám ơn bạn, mình sẽ đọc về link gợi ý của bạn. |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
01/10/2012 08:26:54 (+0700) | #8 | 269806 |
ruby3000
Member
|
0 |
|
|
Joined: 13/09/2012 22:39:19
Messages: 1
Offline
|
|
mình nghĩ do đường truyền hay phần mền khi cài |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
01/10/2012 13:04:33 (+0700) | #9 | 269810 |
renominh
Member
|
0 |
|
|
Joined: 20/04/2009 16:27:14
Messages: 12
Offline
|
|
Có cái này xài cũng được này expect
Còn muốn biết chi tiết thì thử google hoặc man coi sao.
|
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
01/10/2012 14:32:08 (+0700) | #10 | 269813 |
cafecoc85
Member
|
0 |
|
|
Joined: 20/01/2007 18:36:49
Messages: 14
Offline
|
|
Hi bạn renominh,
Mình cũng thử dùng expect theo link này : http://bash.cyberciti.biz/security/expect-ssh-login-script/
Tuy nhiên khi chạy thì bị lỗi này, do mình mới mò mẫm shell nên hok rành, bạn nào bít code shell chỉ mình hộ với.
#!/usr/bin/expect -f
# set Variables
set password [lrange $argv 0 0]
set ipaddr [lrange $argv 1 1]
set scriptname [lrange $argv 2 2]
set arg1 [lrange $argv 3 3]
set timeout -1
$scriptname = /tmp/memLinux.sh
$ipaddr = '203.113.168.11'
$password = kh0ngc0g!~
# now connect to remote UNIX box (ipaddr) with given script to execute
spawn ssh root@$ipaddr $scriptname $arg1
match_max 100000
# Look for passwod prompt
expect "*?assword:*"
# Send password aka $password
send -- "$password\r"
# send blank line (\r) to make sure we get back to gui
send -- "\r"
expect eof
Khi chạy thì nó báo :
[root@template tmp]# ./expect_Memory.sh
invalid command name ""
while executing
"$scriptname = /tmp/memLinux.sh"
(file "./expect_Memory.sh" line 23)
Cái link đến script thì ko liên quan đến nhé, vì mình đã move cái script memLinux vào cùng thư mục với expect_Memory.sh rồi. |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
01/10/2012 14:48:26 (+0700) | #11 | 269814 |
cafecoc85
Member
|
0 |
|
|
Joined: 20/01/2007 18:36:49
Messages: 14
Offline
|
|
cafecoc85 wrote:
thuank51cc wrote:
mình nghĩ bạn có thể tham khảo về mục này ssh-keygen. không cần truyền pass
http://troy.jdmz.net/rsync/index.html
Cám ơn bạn, mình sẽ đọc về link gợi ý của bạn.
Đã thực hiện được theo gợi ý của bạn, mình theo hướng dẫn ở link này : http://www.linuxproblem.org/art_9.html
Khá đơn giản để thực hiện. |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
04/10/2012 00:22:27 (+0700) | #12 | 269873 |
|
DarkOS
Member
|
0 |
|
|
Joined: 17/04/2011 01:17:01
Messages: 26
Location: /dev/null
Offline
|
|
Giả sử trường hợp thế này:
1. Có một ứng dụng phục vụ cho lượng (rất rất) lớn người dùng, các server mới phải được thêm vào hàng tuần (ngày).
2. Mỗi server mới được clone ra và mật khẩu root là như nhau cho tất cả các server.
Công việc của bạn là phải setup/config các servives/apps trên mỗi server mới để thêm vào hệ thống lớn đó. Cho rằng việc setup/config này có thể được làm tự động, thời gian hoàn thành là 5 phút.
Vậy, bạn sẽ làm thế nào khi hàng ngày nhận 10 con server mới? ssh từng con, gõ password truy cập, sau đó copy public key lên từng con, rồi tiếp sau đó là chạy cái script cài đặt tự động kia.
Một ngày kia, lượng người dùng tăng lên đột biến, phải thêm vào 20 con server ngay lập tức. Thời gian để cài đặt 20 con mới kia cũng chỉ là 5 phút (chạy parallels), nhưng thời gian "ssh+gõ password+copy public key" ... sẽ là bao nhiêu? Hệ thống "cỡ bư" đó down time vì quá tải sẽ thiệt hại bao nhiêu? Mỗi ngày bạn sẽ mất bao nhiêu thời gian cho công việc lặp đi lặp lại như thế?
|
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
06/10/2012 17:05:50 (+0700) | #13 | 269940 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
cafecoc85 wrote:
Có cách nào để khắc phục việc này bằng cách truyền tham số để script tự động assign giá trị password hay không ?
1. http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/
2. http://sourceforge.net/projects/sshpass/ |
|
Let's build on a great foundation! |
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
09/10/2012 08:05:02 (+0700) | #14 | 269995 |
cafecoc85
Member
|
0 |
|
|
Joined: 20/01/2007 18:36:49
Messages: 14
Offline
|
|
DarkOS wrote:
Giả sử trường hợp thế này:
1. Có một ứng dụng phục vụ cho lượng (rất rất) lớn người dùng, các server mới phải được thêm vào hàng tuần (ngày).
2. Mỗi server mới được clone ra và mật khẩu root là như nhau cho tất cả các server.
Công việc của bạn là phải setup/config các servives/apps trên mỗi server mới để thêm vào hệ thống lớn đó. Cho rằng việc setup/config này có thể được làm tự động, thời gian hoàn thành là 5 phút.
Vậy, bạn sẽ làm thế nào khi hàng ngày nhận 10 con server mới? ssh từng con, gõ password truy cập, sau đó copy public key lên từng con, rồi tiếp sau đó là chạy cái script cài đặt tự động kia.
Một ngày kia, lượng người dùng tăng lên đột biến, phải thêm vào 20 con server ngay lập tức. Thời gian để cài đặt 20 con mới kia cũng chỉ là 5 phút (chạy parallels), nhưng thời gian "ssh+gõ password+copy public key" ... sẽ là bao nhiêu? Hệ thống "cỡ bư" đó down time vì quá tải sẽ thiệt hại bao nhiêu? Mỗi ngày bạn sẽ mất bao nhiêu thời gian cho công việc lặp đi lặp lại như thế?
Cái đó tuỳ thuộc vào tình hình thực tế, do số lượng server của mình ít, ko biến đổi lớn như trường hợp mà bạn đề cập. Nếu gặp t/h như thế mình sẽ tìm giải pháp khác tốt hơn. Cái cơ bản là mình chỉ hỏi cách ssh mà ko cần truyền tham số password thôi.
Cám ơn bạn đã góp ý ! |
|
|
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
11/10/2012 14:01:45 (+0700) | #15 | 270074 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
11/10/2012 14:02:00 (+0700) | #16 | 270075 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
[Question] Làm sao để truyền password vào trong shell script ! |
12/10/2012 10:25:01 (+0700) | #17 | 270100 |
|
DarkOS
Member
|
0 |
|
|
Joined: 17/04/2011 01:17:01
Messages: 26
Location: /dev/null
Offline
|
|
Toàn là những "thằng" nặng ký và theo mình thì nó có quá nhiều tính năng dư thừa không dùng tới, lại phải dùng thêm agent.
Mình thì dùng thằng này, thích dùng cái gì thì thêm vô mà dùng, đơn giản vô cùng, cũng không cần agent, chỉ dựa vô những cái có sẵn mà chiến thôi fabfile.org |
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|