วิธีการ copy file จาก ใน path นึงๆ ไปทุกๆ user

วิธีการ copy file จาก ใน path นึงๆ ไปทุกๆ user

for i in `ls -d /home/*/domains/*/public_html`; do

cp -v path/* $i

done

foce overwrite

yes | cp -v path/* $i

Thank @ Credit Icez

สำหรับ Script http://www.cyberciti.biz/tips/linux-unix-shell-batch-copy.html

Copy Single File To All Users Home Directory

#!/bin/bash

UHOME="/home"

FILE="/etc/skel/.newconfig-file"

USERS=$(cut -d':' -f1 /etc/passwd) # get list of all users

for u in $USERS

do

   /bin/cp $FILE ${UHOME}/${u}

   chown $(id -un $u):$(id -gn $u) /${UHOME}/${u}/${FILE}

done


Copy Multiles File To All Users Home Directory

You can also copy multiple files using inner and outer loop concept:



UHOME="/home"

FILES="/etc/skel/.newconfig-file /etc/skek/.update-config /chroot/jail/.force.conf"

USERS=$(cut -d':' -f1 /etc/passwd) # get list of all users

for u in $USERS

do

  for f in $FILES

  do

     /bin/cp ${f} ${UHOME}/${u}

     chown $(id -un $u):$(id -gn $u) /${UHOME}/${u}/${f}

  done

done

ขอบคุณครับที่ทำได้แล้วโพสไว้ เวลาคนอยากทำได้มารื้อดู

ขอบคุณมากครับ ความรู้ใหม่เลยนะครับนี้

+1 ให้ครับ

force copy บน Linux ทำแบบนี้ก็ได้

จาก

yes | cp -v path/* $i

[color=#1C2837][size=2]

[/size][/color]

เป็น

/bin/cp -fv path/* $i

แบบนี้ผมก็ลองครับพี่วัฒน์ /bin/cp -fv path/* $i

แต่ไฉง path มันไม่เป็นไปดังคิดก็ไม่รู้เหมือนกัน ครับไม่รู้ผมไปผิดตรงไหน ^^

ติด alias ป่ะครับ

alias cp=‘cp -i’

แต่ถ้าใส่ full path น่าจะไม่ติดแหะ

ก๊อบทุกไฟล์ใน folder ถ้ามี folder ย่อยก็เอาไปด้วย ( cp -R )

ถ้าจะให้ทับโดยไม่ต้องถามก็ใส่ -f เข้าไปด้วย ( cp -Rf )



for i in `ls -d /home/*/domains/*/public_html`; do

  /bin/cp -Rv /sourcepath/* $i

done


เนื่องจากการเรียก cp เฉยๆนั้น หากใน profile มีการสร้าง alias ไว้ก็จะมีผล จึงควรอ้าง path เต็มๆเพื่อเลี่ยง alias



/bin/cp -Rfv


โค๊ดง่ายๆใช้แค่ sh ก็พอไม่ต้องถึงมือ bash เอาไปใช้ได้ทุกเครื่อง

ควรตรวจสอบด้วยว่ามี /home/user อยู่หรือเปล่า เพราะ list user ออกมาจากไฟล์ passwd จะมี system user ออกมาด้วย

Copy Single File To All Users Home Directory



#!/bin/sh

UHOME="/home"

FILEPATH="/etc/skel/"

FILENAME=".newconfig-file"

USERS=$(cut -d':' -f1 /etc/passwd) # get list of all users

for u in $USERS; do

   if [ -d $UHOME/$u ]; then

      /bin/cp -f $FILEPATH/$FILENAME $UHOME/$u/

      chown $(id -un $u):$(id -gn $u) $UHOME/$u/$FILENAME

   fi

done


Copy Multiles File To All Users Home DirectoryYou can also copy multiple files using inner and outer loop concept:



UHOME="/home"

FILES="/etc/skel/.newconfig-file /etc/skek/.update-config /chroot/jail/.force.conf"

USERS=$(cut -d':' -f1 /etc/passwd) # get list of all users

for u in $USERS; do

   if [ -d $UHOME/$u ]; then

  	for f in $FILES; do

     	/bin/cp $f $UHOME/$u/

     	fn=`echo $f | awk -F'/' '{print $NF}'`

     	chown $(id -un $u):$(id -gn $u) /$UHOME/$u/$fn

  	done

   fi

done


แก้ bug ให้ครับ

ขอบคุณพี่ๆ ทุกท่านครับ เป็นอีกความรู้ ที่น่าบันทึกไว้ให้น้องๆ ได้ใช้งานกันครับ

Thank you krab

Update ความรู้ผมตกกระทู้นี้ไปได้ยังไง

มีคำสั่งก๊อบหัวใจไปแจกน้องๆในสังกัตทุกคนปะหะ

  • -"

เหอๆ ให้ช่วยไหม

เทรนเด็กไปถึงไหนแระหะ

อย่าเบี่ยงประเด็นในห้องนี้ครับท่าน