konto usunięte

Temat: skrypt kopiujący

potrzebuje nadpisać jeden plik w katalogach użytkowników, chciałbym to zrobić za pomocą skryptu
napisałem cos takiego, choć raczej nie do końca o to chodzi i idea jest chyba błędna...

#! /bin/bash
$ostatni_user = "user" //ostatni user
$katalog_usera = * //home katalog usera

while true;
do
cp /katalog/plik home/$katalog_usera/plik
if [ $katalog_usera = $ostatni_user ]
then
cp /katalog/plik home/$ostatni_user/plik
exit 0
done

czyli skrypt ma podmienić jeden plik we wszystkich domowych katalogach użytkowników i zakończyć działanie, gdy dojdzie do ostatniego i go podmieni.

Pomoże ktoś??Piotr Nowicki edytował(a) ten post dnia 16.07.08 o godzinie 14:05
Piotr P.

Piotr P. Software Developer

Temat: skrypt kopiujący

Może zacznijmy od tego co właściwie chcesz zrobić. Chcesz zamienić plik(i) we wszystkich katalogach użytkowników? Czy tylko w tym jednym, ostatnio dodanym?

BTW, skrypt który tu podałeś to nawet Ci się uruchomił? ;)

konto usunięte

Temat: skrypt kopiujący

we wszystkich już istniejących

nie testowałem skryptu, bo wiem, że nie jest poprawnie napisany
Piotr P.

Piotr P. Software Developer

Temat: skrypt kopiujący

na szybko:

HOME_DIR="/home"
USERS_DIRS=`ls ${HOME_DIR}`

for USER in $USERS_DIRS; do

cp some_file "${HOME_DIR}/${USER}/"

done

konto usunięte

Temat: skrypt kopiujący

wyrzuca komunikat:
USERS_DIRS: command not found

dla linijki:
USERS_DIRS=`ls ${HOME_DIR}`
Piotr P.

Piotr P. Software Developer

Krystian Zubel

Krystian Zubel Manager w firmie
Opera Software

Temat: skrypt kopiujący

Piotr Nowicki:
wyrzuca komunikat:
USERS_DIRS: command not found

dla linijki:
USERS_DIRS=`ls ${HOME_DIR}`
Podejrzewam, że już z pastebin skopiowałeś dobrze :). Taki błąd pojawia się, gdy zrobisz spację przed "=", wtedy bash/sh/inny shell traktuje to jako komendę, a nie przypisanie zmiennej. To tak na przyszłość :).
Adam Łagoda

Adam Łagoda Główny architekt
organizacji

Temat: skrypt kopiujący

Piotr P.:
na szybko:
(ciach)

Będzie działać jeśli katalogi są po /home. Ja ostatnio walczyłem troszkę z Solarisem i katalogami w /exports, może dlatego raczej pojechałbym po /etc/passwd wycinając cutem katalogi domowe i ifem userów z id<500. Choć to chyba skażenie, nawet OpenSolaris domyślnie zdaje się wrzuca w /home ;)

Ot, takie rozszerzenie dla dowolnego systemu Unixopodobnego i dowolnej struktury katalogowej.

Pozdrawiam, AdamAdam Łagoda edytował(a) ten post dnia 17.07.08 o godzinie 20:34

konto usunięte

Temat: skrypt kopiujący

Adam Łagoda:
Będzie działać jeśli katalogi są po /home. Ja ostatnio walczyłem troszkę z Solarisem i katalogami w /exports, może dlatego raczej pojechałbym po /etc/passwd wycinając cutem katalogi domowe i ifem userów z id<500.
cut? if? go awk, *way* more elegant (-:
Ot, takie rozszerzenie dla dowolnego systemu Unixopodobnego i dowolnej struktury katalogowej.
Prawie dowolnej. Nie wszyscy trzymają użytkowników w /etc/passwd i okolicach.

Just my $0.02 (co lada moment będzie pewnie mniej warte niż trzy grosze ;->)
Piotr P.

Piotr P. Software Developer

Temat: skrypt kopiujący

Jakub J.:
Ot, takie rozszerzenie dla dowolnego systemu Unixopodobnego i dowolnej struktury katalogowej.
Prawie dowolnej. Nie wszyscy trzymają użytkowników w /etc/passwd i okolicach.

Heh :) grupa traktuje o Linux'ie a nie o posix'ie generalnie. Poza tym Piotr wyraźnie zasugerował katalog home. Przynajmniej ja się tak zasugerowałem :)

konto usunięte

Temat: skrypt kopiujący

#!/bin/bash
# plik ktory trzeba skopiowac np: /etc/services
file1=/etc/services
# nazwa pod jaka nalezy skopiowac np: etc_services
file2=etc_services

# lokalizacja katalogow domowych uzytkownikow
home_dirs=/home/

for DIR in `ls ${home_dirs}`; do
# -f usuwa istniejące pliki!
cp -f ${file1} ${home_dirs}/${DIR}/${file2}
# zmiana uprawnien do pliku
chown --reference ${home_dirs}/${DIR} ${home_dirs}/${DIR}/${file2}
done

Zmienia takze uprawnienia do skopiowanych plikow.

Pozdrawiam,
Robert

konto usunięte

Temat: skrypt kopiujący

Piotr P.:
Jakub J.:
Ot, takie rozszerzenie dla dowolnego systemu Unixopodobnego i dowolnej struktury katalogowej.
Prawie dowolnej. Nie wszyscy trzymają użytkowników w /etc/passwd i okolicach.

Heh :) grupa traktuje o Linux'ie a nie o posix'ie generalnie.
Po pierwsze primo: Linuksie, POSIX-ie.
Po drugie primo: gdzie jest napisane, że w Linuksie użytkowników można trzymać jedynie w /etc/passwd?
Poza
tym Piotr wyraźnie zasugerował katalog home. Przynajmniej ja się tak zasugerowałem :)
Po trzecie primo: odnosiłem się nie do wypowiedzi Piotra, ale Adama, który zasugerował, że wygrzebanie katalogów domowych z /etc/passwd to byłoby rozszerzenie na *dowolny* system i *dowolną* strukturę katalogów :-)
Piotr P.

Piotr P. Software Developer

Temat: skrypt kopiujący

Jakub J.:
Heh :) grupa traktuje o Linux'ie a nie o posix'ie generalnie.
Po pierwsze primo: Linuksie, POSIX-ie.

Tak wiem, Polski nie dla Polaków.
Ale jestem zwolennikiem właczania telewizora zamiast włączania.
Skoro 95% ludności tego kraju tak mówi, to niech ten język się zmienia.

Nie mam pojęcia jak odmieniać zagramaniczne słowo używając poprawnej polszczyzny. Po czym wnosisz, że *Linuksie* i *POSIX-ie*?
Po drugie primo: gdzie jest napisane, że w Linuksie użytkowników można trzymać jedynie w /etc/passwd?

Nie wiem :) Ty wiesz? :)
Poza
tym Piotr wyraźnie zasugerował katalog home. Przynajmniej ja się tak zasugerowałem :)
Po trzecie primo: odnosiłem się nie do wypowiedzi Piotra, ale Adama, który zasugerował,

Aj... tak mi się cytat wywinął :)
że wygrzebanie katalogów domowych z /etc/passwd to byłoby rozszerzenie na *dowolny* system i *dowolną* strukturę katalogów :-)

Trzeba było po prostu od razu podać gotowy skrypt. Temat byłby już zamknięty :)

konto usunięte

Temat: skrypt kopiujący

Piotr P.:
Jakub J.:
Heh :) grupa traktuje o Linux'ie a nie o posix'ie generalnie.
Po pierwsze primo: Linuksie, POSIX-ie.
Tak wiem, Polski nie dla Polaków.
Ale jestem zwolennikiem właczania telewizora zamiast włączania.
"Właczania"? Chyba "uwłaczania", ale wtedy "telewizorowi" :-P
Skoro 95% ludności tego kraju tak mówi, to niech ten język się zmienia.
Tego typu argument zawsze przywołuje mi na myśl powiedzenie "Jedzmy gówno, miliony much nie mogą się mylić!" ];->

Ale owszem, język ewoluuje.
Nie mam pojęcia jak odmieniać zagramaniczne słowo używając poprawnej polszczyzny. Po czym wnosisz, że *Linuksie* i *POSIX-ie*?
To dość skomplikowane, nie przeczę. Jeśli chodzi o odmianę "Linux" to zerknij tu: http://thecamels.org/2008/01/15/odmiana-slowa-linux-w-...
Natomiast jeśli chodzi o skrótowce pisane wersalikami to generalna zasada jest taka, że odmieniamy poprzez dodanie odpowiedniej końcówki, rozdzielając ją od skrótowca myślnikiem.
Po drugie primo: gdzie jest napisane, że w Linuksie użytkowników można trzymać jedynie w /etc/passwd?

Nie wiem :) Ty wiesz? :)
Ja obstawiam, że nigdzie. Ale to chyba Ty powinieneś wiedzieć, skoro użyłeś argumentu "grupa traktuje o Linuksie" na moje "nie wszyscy trzymają użytkowników w /etc/passwd". :-)
że wygrzebanie katalogów domowych z /etc/passwd to byłoby rozszerzenie na *dowolny* system i *dowolną* strukturę katalogów :-)

Trzeba było po prostu od razu podać gotowy skrypt. Temat byłby już zamknięty :)
Nie bardzo mam na to czas. Po prostu nie chciałem dopuścić, żeby ta grupa służyła do propagowania nie-do-końca-prawdziwych tez. (-8
Piotr P.

Piotr P. Software Developer

Temat: skrypt kopiujący

Jakub J.:
Tak wiem, Polski nie dla Polaków.
Ale jestem zwolennikiem właczania telewizora zamiast włączania.
"Właczania"? Chyba "uwłaczania", ale wtedy "telewizorowi" :-P

No właśnie. Większość Polaków wypowiada to w taki sposób, że nie wiem jak to napisać :)
Nie mam pojęcia jak odmieniać zagramaniczne słowo używając poprawnej polszczyzny. Po czym wnosisz, że *Linuksie* i *POSIX-ie*?
To dość skomplikowane, nie przeczę. Jeśli chodzi o odmianę "Linux" to zerknij tu: http://thecamels.org/2008/01/15/odmiana-slowa-linux-w-...
Natomiast jeśli chodzi o skrótowce pisane wersalikami to generalna zasada jest taka, że odmieniamy poprzez dodanie odpowiedniej końcówki, rozdzielając ją od skrótowca myślnikiem.

Na stronie http://www.fil.us.edu.pl/ijp/poradnia/baza_archiwum.php, znalazłem taki oto cytat: "Wielki słownik ortograficzny PWN w regule 27 zaleca spolszczenie pisowni -x przed końcówką gramatyczną."

Link do tejże reguły: http://so.pwn.pl/zasady.php?id=629334.

Język polski trudnym językiem jest :)
Enyłej, dzięki. Muchy się uczą przez całe życie :)
Trzeba było po prostu od razu podać gotowy skrypt. Temat byłby już zamknięty :)
Nie bardzo mam na to czas. Po prostu nie chciałem dopuścić, żeby ta grupa służyła do propagowania nie-do-końca-prawdziwych tez. (-8

Fakt. Moja wina. Po prostu użyłem skrótowca myślowego :)

konto usunięte

Temat: skrypt kopiujący

Piotr Nowicki:
potrzebuje nadpisać jeden plik w katalogach użytkowników, chciałbym to zrobić za pomocą skryptu
napisałem cos takiego, choć raczej nie do końca o to chodzi i idea jest chyba błędna...

#! /bin/bash
$ostatni_user = "user" //ostatni user
$katalog_usera = * //home katalog usera

while true;
do
cp /katalog/plik home/$katalog_usera/plik
if [ $katalog_usera = $ostatni_user ]
then
cp /katalog/plik home/$ostatni_user/plik
exit 0
done

czyli skrypt ma podmienić jeden plik we wszystkich domowych katalogach użytkowników i zakończyć działanie, gdy dojdzie do ostatniego i go podmieni.

Pomoże ktoś??Piotr Nowicki edytował(a) ten post dnia 16.07.08 o godzinie 14:05

find /home -name <nazwa_pliku> -exec cp <nowy_plik> {} \;
Adam Łagoda

Adam Łagoda Główny architekt
organizacji

Temat: skrypt kopiujący

Hej,
Prawie dowolnej. Nie wszyscy trzymają użytkowników w /etc/passwd i okolicach.

Zgoda, choć domyślnie chyba wszystkie mają tam listę. Że da się gdzie-bądź-kolwiek, to ja wiem, a jeśli ktoś zmiany takowej dokona, to skopiowanie czegokolwiek z katalogu domowego problemu nie sprawi :)

A co do sposobów - każdy ma inny, lepszy czy gorszy, grunt żeby robiły co zamyślił administrator. Ile systemów i adminów, tyle pewnie odpowiedzi ;)

Jeszcze co do awka - może wygodniej i szybciej z niego skorzystać, ja preferuję (przy swojej wciąż słabej znajomości basha) skrypty, gdzie po drodze mogę wrzucić echo i sprawdzić czy wychodzi po drodze co miało wyjść. Jedyny sposób, by moje skrypty działały :D

Pozdrawiam, Adam

konto usunięte

Temat: skrypt kopiujący

Krystian Zubel:
Piotr Nowicki:
wyrzuca komunikat:
USERS_DIRS: command not found

dla linijki:
USERS_DIRS=`ls ${HOME_DIR}`
Podejrzewam, że już z pastebin skopiowałeś dobrze :). Taki błąd pojawia się, gdy zrobisz spację przed "=", wtedy bash/sh/inny shell traktuje to jako komendę, a nie przypisanie zmiennej. To tak na przyszłość :).

dzięki, typowy błąd początkującego, po usunięciu spacji działa :)

oczywiście chodzi o mój błąd podczas przepisywania, jestem w trakcie nauki :)Piotr Nowicki edytował(a) ten post dnia 21.07.08 o godzinie 13:25

konto usunięte

Temat: skrypt kopiujący

Adam Łagoda:
A co do sposobów - każdy ma inny, lepszy czy gorszy, grunt żeby robiły co zamyślił administrator. Ile systemów i adminów, tyle pewnie odpowiedzi ;)
Albo i więcej :-> TIMTOWTDI
Jeszcze co do awka - może wygodniej i szybciej z niego skorzystać, ja preferuję (przy swojej wciąż słabej znajomości basha) skrypty, gdzie po drodze mogę wrzucić echo i sprawdzić czy wychodzi po drodze co miało wyjść. Jedyny sposób, by moje skrypty działały :D
Wypisanie katalogów domowych z typowej struktury /etc/passwd dla UID-ów większych lub równych od 500:
awk -F: '$3 >= 500 {print $6}' /etc/passwd
Piękne w swojej prostocie, nieprawdaż? (-;

Następna dyskusja:

Aktualizacja bazy danych SQ...




Wyślij zaproszenie do