PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : چطور یک دستور SHH را به صورت Shell Script اجرا کنیم ؟



Desperados
June 4th, 2010, 16:28
سلام به دوستان

یک دستور SSH هست به این صورت :


rsync -avz -e ssh /copy/me/ login@serverip:/where/to

این دستور یک پوشه از سرور رو به پوشه ای در سرور دیگه انتقال میده.

می خوام این دستور به صورت یک shell Script باشه که بزارمش داخل CronTAB و هر شب اجرا بشه چطوری این دستور رو تبدیل کنم به شل ؟ B-) موردی هم که هست این دستور هنگام اجرا پسورد روت سرور مقصد رو سوال میکنه که باید توسط shell یکجوری بهش پسورد رو حالی کنیم دیگه :59:


ممنون.

---------- Post added at 04:28 PM ---------- Previous post was at 04:23 PM ----------

یک سوال دیگه هم در مورد ین دستور rsync داشتم اون هم اینکه چطور یک فرمت خاص از فایل های موجود در یک پوشه را انتقال بدیم مثلاً در دستور پست قبل تمام فایل های موجود در پوشه /copy/me/ منتقل می شوند چطور یک ف ی ل ت ر قرار بدیم که فقط فایل های tar.gz به عنوان مثال منتقل شوند

مرسی.

Vahid
June 4th, 2010, 18:31
سلام :d

می خوام این دستور به صورت یک shell Script باشه که بزارمش داخل CronTAB و هر شب اجرا بشه چطوری این دستور رو تبدیل کنم به شل ؟ شما وقتی وارد SSH شدی یه فولدر بساز و توی فولدر یه ادیتور باز میکنی مثلا :

root@linux [/shell]# mkdir /shellscript
root@linux [/shell]# cd /shellscript
root@linux [/shell]# nano backup.sh

وقتی وارد ادیتور شدی اولین خط این کد رو کپی کن


#!/bin/bash
و بعد دستور ها رو مینویسی !

موردی هم که هست این دستور هنگام اجرا پسورد روت سرور مقصد رو سوال میکنه که باید توسط shell یکجوری بهش پسورد رو حالی کنیم دیگه :59:من تا یادمه Rsync پسورد رو میشد از توی یه فایل بهش داد حالا من سرچ میکنم برات میزارم

یک سوال دیگه هم در مورد ین دستور rsync داشتم اون هم اینکه چطور یک فرمت خاص از فایل های موجود در یک پوشه را انتقال بدیم مثلاً در دستور پست قبل تمام فایل های موجود در پوشه /copy/me/ منتقل می شوند چطور یک ف ی ل ت ر قرار بدیم که فقط فایل های tar.gz به عنوان مثال منتقل شوند
ببین تو میتونی grep کنی فایل هایی که میخوای ببری مثلا با این دستور


ls -la | grep "tar.gz"
این دستور فقط نشون میده فایل های .tar.gz که میتونی با grep کردن فقط فایل های لازم رو ببری

Desperados
June 4th, 2010, 18:36
سلام :d
شما وقتی وارد SSH شدی یه فولدر بساز و توی فولدر یه ادیتور باز میکنی مثلا :

root@linux [/shell]# mkdir /shellscript
root@linux [/shell]# cd /shellscript
root@linux [/shell]# nano backup.sh

وقتی وارد ادیتور شدی اولین خط این کد رو کپی کن


#!/bin/bash
و بعد دستور ها رو مینویسی !
من تا یادمه Rsync پسورد رو میشد از توی یه فایل بهش داد حالا من سرچ میکنم برات میزارم

ببین تو میتونی grep کنی فایل هایی که میخوای ببری مثلا با این دستور


ls -la | grep "tar.gz"
این دستور فقط نشون میده فایل های .tar.gz که میتونی با grep کردن فقط فایل های لازم رو ببری








سلام وحید جان مرسی عالی بود :D
فقط این جریان پسورد رو اگر بشه بهش حالی کرد دیگه چیز باحالی میشه http://www.jpeghoster.com/images/m9g6ihxeh597l8n7n9.gif

Vahid
June 4th, 2010, 19:04
-pasword-file=/file.txt



---------- Post added at 07:04 PM ---------- Previous post was at 06:54 PM ----------



#

Identify the server that initially contains the files (we will call this the SOURCE server), and the serverto which you want to transfer the files (we will call this the TARGET server). Confirm that you can log in to the SOURCE server, that you can log in to the TARGET server, and that while logged into the TARGET server, you can use ssh to login to the SOURCE server using your password.
#
Step 2

Log into the TARGET server. Execute the command

[mikeular@targethost~]$ ssh-keygen -t dsa

ssh-keygen will ask you where you want to save the key. Accept the default directory, which will be ~/.ssh/id_dsa . Next it will ask you for a passphrase, leave this entry blank.

Your private key file will be saved to ~/.ssh/id_dsa and your public key will be saved to ~/.ssh/id_dsa.pub. Careful! Anyone who obtains a copy of your id_dsa file will be able to login to the SOURCE server as you, without authenticating themselves. Make sure that it's stored securely!
#
Step 3

Now you will configure the SOURCE server to accept the key. Once this step is complete, anyone with the id_dsa file will be able to log into the SOURCE server without providing a password.

Log into the SOURCE server and create the ssh directory:

[mikeular@sourcehost~]$ mkdir ~/.ssh
[mikeular@sourcehost~]$ cd ~/.ssh

Using vi or another text editor, create a file in ~/.ssh named authorized_keys2 . Now switch over to the TARGET server and copy the contents of the file id_dsa.pub and paste them into authorized_keys2 on the SOURCE server. Save the text file.
#
Step 4

Make sure that the authorized_keys2 cannot be changed by other users on the SOURCE server:

[mikeular@sourcehost~]$ chmod 644 ~/.ssh/authorized_keys2
#
Step 5

Now you can test your setup. Go back to the TARGET server and connect to the source.

[mikeular@targethost~]$ ssh username@sourcehost.com
[mikeular@sourcehost~]

Your ssh connection is now working correctly.
#
Step 6

Test your rsync over ssh connection by copying a file from SOURCE to TARGET. Enter the following command all on one line, being sure to substitute in the correct pathnames, username, and hostname.

[mikeular@targethost~]$ rsync -avz -e/usr/bin/ssh username@sourcehost.com:/home/username/testfile /home/mikeular/

This should copy the file "testfile" from your home directory on sourcehost to your home directory on targethost.
#
Step 7

All that's left is to setup your cron job. Plenty of documentation is available online.

Desperados
June 4th, 2010, 19:16
مرسی وحید جان کارت درسته با کلید عمومی یا همان Public Key ردیف شد D: