سلام به همه دوستان
يه سوال :
مي خوام با استفاده از scriptbash يه برنامه بنويسم كه 2 تا فايل را اول در homedir كاربر 1 و سپس در ماربر 2 كپي كند !!
با تشكر
Printable View
سلام به همه دوستان
يه سوال :
مي خوام با استفاده از scriptbash يه برنامه بنويسم كه 2 تا فايل را اول در homedir كاربر 1 و سپس در ماربر 2 كپي كند !!
با تشكر
با دستور cp هست
فقط باید بگی محل قرار گرفتن فایل و username ها مشخصه یا باید از ورودی گرفته بشه یا ...
این خیلی سادست مشکل شما چیه؟
نگاهی به مطلب زیر بندازید،نقل قول:و کلا منبع زیر، برای مطالعه بسیار مناسب هست:کد:http://www.gabrielserafini.com/archives/2006/12/14/bash-script-to-copy-all-files-in-a-directory-and-convert-uppercase-characters-to-lowercase/
کد:http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
ممنون
مشكل اينه كه مي خوام كاربر جاري من (كه فايل هاي shadow و passwd قراره اول در مسير جاري كاربر اول backup گرفته بشه و سپس در مسير جاري كاربر دوم bachup گرفته بشه )، متغير باشه...
نقل قول:
ممنون
مشكل اينه كه مي خوام كاربر جاري من (كه فايل هاي shadow و passwd قراره اول در مسير جاري كاربر اول backup گرفته بشه و سپس در مسير جاري كاربر دوم bachup گرفته بشه )، متغير باشه...
ببین بهتره که خودت تحقیق کنی و بری یاد بگیری - آخه ۲ خط که دیگه اسکریپت نمی خواد
اگه نمي خواي بگي يه مرجع معرفي كن من برم اون تو خودم پيدا كنم.نقل قول:
صرفا به عنوان یک ایده ی ابتدایی خودتون برای اجازه ها روش کار کنید..
کلش رو در فایلی .sh. ذخیره کنید و با name/. اجراش کنید.کد:#! /bin/sh
x=0
echo -n "Source Location [/folder/filename.txt]: "
read P
if [ "$P" = "" ]; then
P="/folder/filename.txt"
fi
N=`basename $P`
echo -n "Where is your users folder [/home/]: "
read D
if [ "$D" = "" ]; then
G="/home/"
D="/home/*"
else
D=$G
D="$D/*"
fi
for F in $D
do
if [ -d $F ]
then
cp -i $P $D
x=`expr $x + 1`
fi
done
echo
echo File copied $x times
سلامنقل قول:
taia جان می شه بیشتر توضیح بدی؟
فکر نمی کنم کار کنه
شل اسکریپت برای خودکارسازی و اینکه بخواهیم یکسری فرمانها رو پشت سر هم انجام بدیمنقل قول:
منبع که در پست قبلی گفته شد ولی حالاکد:http://en.wikipedia.org/wiki/Shell_script
الان واست می نویسم
یک ادیتور باز کن و اینها رو توش کپی کن با هر اسمی که دوست داشتیکد:#!/bin/bash
rootcp ()
{
su-to-root -c "cp $f /home/$u"
return
}
usercp ()
{
cp $f /home/$u
return
}
while :
do
echo -n "specify source file. e.g: [/folder/filename]: "
read f
if [ ! -f "$f" ]; then
echo "you'r wrong, this is not a file"
exit 1
fi
echo -n "which user?: "
read u
if [ ! -d /home/$u ]; then
echo "this user dosen't exist or dosen't have a home directory"
exit 1
fi
orper=`stat $f -c %A | cut -c8`
grper=`stat $f -c %A | cut -c5`
fownerg=`stat $f -c %G`
fmem=`cat /etc/group | grep $fownerg | sed -n '/$USER/ p'`
owper=`stat /home/$u -c %A | cut -c9`
gwper=`stat /home/$u -c %A | cut -c6`
uownerg=`stat /home/$u -c %G`
umem=`cat /etc/group | grep $uownerg | sed -n '/$USER/ p'`
if [ "$u" != "$USER" ]; then
if [ "$owper" != "w" ]; then
if [ "$gwper" != "w" ]; then
rootcp
else
if [ "$umem" = "" ]; then
rootcp
fi
fi
fi
fi
if [ "$orper" != "r" ]; then
if [ "$grper" != "r" ]; then
rootcp
else
if [ "$fmem" = "" ]; then
rootcp
fi
fi
fi
usercp
echo -n "do you want to copy other file?[y/n]: "
read q
case $q in
y) ;;
n) exit 0;;
*) echo "your choice is not correct, script will terminate"
exit 1;;
esac
done
بعد با دستور chmod +x بهش اجازه اجرا بده و بعد اجراش کن
من تا حالا برای کسی کد ننوشتم اینم عجله ای شد
همش شد if
حق دسترسی ها هم توش رعایت شده