এফটিপি কমান্ডে ব্যবহারকারীর নাম এবং পাসওয়ার্ড কীভাবে নির্দিষ্ট করবেন?


9

আমি শেল স্ক্রিপ্টে এফটিপি করার জন্য একটি কল স্বয়ংক্রিয় করতে চাই। যদি আমি টাইপ করি

$ftp somehost.domain.com

আমি একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড জিজ্ঞাসা করা হয়। আমি এফটিপিতে কলটির অংশ হিসাবে সেই ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিতে চাই। Man পৃষ্ঠা FTP আমি FTP প্রম্পটে একটি ব্যবহারকারী কমান্ড ইস্যু করতে পারে বলে - কিন্তু আমি এক বারেই সব FTP লগইন করতে চাই। এটা কি সম্ভব? আমি এফটিপিপির জন্য পতাকাগুলিতে কিছু দেখতে পাচ্ছি না। আমি দেখতে পাচ্ছি যে -s অপশনটি আমার কাছে এফটিপি প্রম্পট হয়ে গেলে কিছু ftp কমান্ড নির্দিষ্ট করার বিকল্প দেয় - তবে প্রম্পটে যাওয়ার জন্য আমার ব্যবহারকারীর নাম দেওয়া দরকার ...


expect(একটি tcl / tk প্রকারের প্রসার) একটি প্রোগ্রাম যা এই ধরণের জিনিসগুলির জন্য আদর্শ - যেমন। কিছু প্রম্পটের জন্য অপেক্ষা করুন; একটি প্রতিবেদন দিন ... একটি উত্তরের জন্য অপেক্ষা করুন; একটি নতুন প্রতিক্রিয়া দিন ... expect"ওগিন:" এর জন্য অপেক্ষা করুন এবং আপনাকে ব্যবহারকারীর নাম প্রেরণ করুন, তারপরে এটি "এসওয়ার্ড:" এর জন্য অপেক্ষা করে এবং আপনার পাসওয়ার্ডটি প্রেরণ করবে।
বার্ড কোপার্পিউড

উত্তর:


10

.netrcআপনার হোম ডিরেক্টরিতে একটি ফাইল ব্যবহার করুন ।

বিষয়বস্তুটি হ'ল:

# machine <hostname> login <username> password <password>
machine ftp.example.com login myuser password $ecret

আপনি যদি প্রোগ্রাম থেকে এটি করছেন এমন কিছু হয় .netrcতবে সংযোগের আগে লিখুন , কাজ শেষ হয়ে গেলে মুছুন।


এই ফাইলটি নির্দিষ্ট ftpবা এটি অন্যান্য প্রোগ্রামগুলি দ্বারা পড়া হয়?
টেরডন

netrc(5)মানুষ পৃষ্ঠাটি জানাচ্ছে এটাই "জন্য ftp(1)" কিন্তু আমি নিশ্চিত যে নই ftpশুধু এটি ব্যবহার করবে।
বাহামাত

আপনি যদি আপনার ".netrc" ফাইলটি সন্ধান করতে চান তবে এই কমান্ডটি ব্যবহার করুন:locate '.netrc'
17:55

1

আপনি এখানে একটি ডক ব্যবহার করে এসি শেল স্ক্রিপ্টও লিখতে পারেন যা এরকম কিছু হতে পারে:

#!/bin/sh
HOST='someftpserver.com'
USER='username'
PASSWD='password'
FILES='*.txt'
#
ftp -nv $HOST>$FTPLOG <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd somedirectory
binary
mget $FILES
quit
END_SCRIPT

0

আপনি আপনার প্রয়োজনের উপর নির্ভর করে বিকল্প হিসাবেও বিবেচনা করতে পারেন wputবা wgetহিসাবে বিবেচনা করতে পারেন ।

আমি wgetসম্প্রতি ব্যবহার wputকরি নি তবে আমি ব্যবহার করেছি কারণ আমি পূর্বের কয়েকটি উত্তরে প্রস্তাবিত ফাইলগুলি তৈরি বা সংশোধন করতে চাইনি।

জন্য wput, বাক্য গঠনটি হ'ল:

wput <filename> ftp://<username>:<password>@<address>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.