Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Помощь в написании shell-скрипта  (Прочитано 652 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Jivchik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
  • Ubuntu 9.10 & WindowsXP SP3
    • Просмотр профиля
Помощь в написании shell-скрипта
« : 25 Март 2010, 21:53:09 »
Здравствуйте вот есть вопрос, кто может подсказать как написать shell-скрипт, который в свою очередь мог бы выводить общий размер всех файлов для заданного пользователя ???

Заранее спс!
Удача сопутствует дерзким!!!

Оффлайн athost

  • Старожил
  • *
  • Сообщений: 1897
    • Просмотр профиля
Re: Помощь в написании shell-скрипта
« Ответ #1 : 25 Март 2010, 22:01:11 »
Это каких? Размер /home/username , что ли? Или размер всех файлов, которые принадлежат пользователю?
« Последнее редактирование: 25 Март 2010, 22:03:35 от athost »

Оффлайн Jivchik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
  • Ubuntu 9.10 & WindowsXP SP3
    • Просмотр профиля
Re: Помощь в написании shell-скрипта
« Ответ #2 : 25 Март 2010, 22:10:50 »
размер всех файлов, к. принадлежат пользователю :(
Удача сопутствует дерзким!!!

Оффлайн athost

  • Старожил
  • *
  • Сообщений: 1897
    • Просмотр профиля
Re: Помощь в написании shell-скрипта
« Ответ #3 : 25 Март 2010, 22:34:30 »
#!/bin/bash
awk 'BEGIN{
 path="/"
 user="username"
 total=0
 cmd="find "path" -type f -user "user" -printf \"%s\\n\""
 while (( cmd |getline line) >0){ total+=line }
 close(cmd)
 print "total size by user: "user" is: "total" bytes"
}'

Оффлайн Jivchik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
  • Ubuntu 9.10 & WindowsXP SP3
    • Просмотр профиля
Re: Помощь в написании shell-скрипта
« Ответ #4 : 25 Март 2010, 22:44:38 »
#!/bin/bash
awk 'BEGIN{
 path="/"
 user="username"
 total=0
 cmd="find "path" -type f -user "user" -printf \"%s\\n\""
 while (( cmd |getline line) >0){ total+=line }
 close(cmd)
 print "total size by user: "user" is: "total" bytes"
}'


Оперативно как, спс огромное!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Только можно еще чуток понаглеть?! Поясните пожалуйста данный код в виде комментариев напротив строк, начиная с cmd="find "path" -type f -user "user" -printf \"%s\\n\""
Удача сопутствует дерзким!!!

Оффлайн athost

  • Старожил
  • *
  • Сообщений: 1897
    • Просмотр профиля
Re: Помощь в написании shell-скрипта
« Ответ #5 : 25 Март 2010, 22:47:53 »
Из меня скриптописатель, как из говна -- пуля. Я это в гугле нашел ;)

Оффлайн Jivchik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
  • Ubuntu 9.10 & WindowsXP SP3
    • Просмотр профиля
Re: Помощь в написании shell-скрипта
« Ответ #6 : 25 Март 2010, 22:50:32 »
Из меня скриптописатель, как из говна -- пуля. Я это в гугле нашел ;)


Блин вот я "нуб невдалый", вроде бы искал в yandex, сюда в посл. очередь обратился, все равно вам спасибо!!!

Пользователь решил продолжить мысль 26 Март 2010, 16:36:14:
Спасибо Yurror, предоставил след. ответ:

можно например так
Код:

du -hs /home/<имя пользователя>

это только если все его файлы в одном каталоге лежат если разбросаны по всей файловой системе то только скрипт!!!
« Последнее редактирование: 26 Март 2010, 16:36:14 от Jivchik »
Удача сопутствует дерзким!!!

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Помощь в написании shell-скрипта
« Ответ #7 : 26 Март 2010, 16:43:40 »
#!/bin/bash
awk 'BEGIN{
 path="/"
 user="username"
 total=0
 cmd="find "path" -type f -user "user" -printf \"%s\\n\""
 while (( cmd |getline line) >0){ total+=line }
 close(cmd)
 print "total size by user: "user" is: "total" bytes"
}'


Оперативно как, спс огромное!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Только можно еще чуток понаглеть?! Поясните пожалуйста данный код в виде комментариев напротив строк, начиная с cmd="find "path" -type f -user "user" -printf \"%s\\n\""

Запускаем команду find (см. man find), чтобы искала с все файлы (-type f), принадлежащие юзеру (-user "user"), и печатала их размер в байтах (-printf "%s\n") по одному на строке. В цикле while вывод этой команды читается и суммируется в переменной total.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Jivchik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
  • Ubuntu 9.10 & WindowsXP SP3
    • Просмотр профиля
Re: Помощь в написании shell-скрипта
« Ответ #8 : 26 Март 2010, 21:18:09 »
#!/bin/bash
awk 'BEGIN{
 path="/"
 user="username"
 total=0
 cmd="find "path" -type f -user "user" -printf \"%s\\n\""
 while (( cmd |getline line) >0){ total+=line }
 close(cmd)
 print "total size by user: "user" is: "total" bytes"
}'


Оперативно как, спс огромное!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Только можно еще чуток понаглеть?! Поясните пожалуйста данный код в виде комментариев напротив строк, начиная с cmd="find "path" -type f -user "user" -printf \"%s\\n\""

Запускаем команду find (см. man find), чтобы искала с все файлы (-type f), принадлежащие юзеру (-user "user"), и печатала их размер в байтах (-printf "%s\n") по одному на строке. В цикле while вывод этой команды читается и суммируется в переменной total.


Спасибо!
Удача сопутствует дерзким!!!

 

Страница сгенерирована за 0.056 секунд. Запросов: 24.