Работа с архивами в bash'е
Слить несколько файлов в один без сжатия:
tar -cf tarfile.tar /var/log/syslog /var/log/messages
Заархивировать папку (gzip):
tar -czf file.tar.gz /home/www/
Заархивировать папку (bzip2):
tar -cjf file.tar.bz2 /home/www/
Распаковать архив:
tar -xf file.tar
tar -xzf file.tar.gz
tar -xjf file.tar.bz2
Скопировать папку с локального сервера на удалённый со сжатием данных на лету
tar -czf - /home/www/ | ssh USER@REMOTEHOST tar -xzf -
Заархивировать папку на удалённом сервере и сохранить архив на локальном:
ssh USER@REMOTEHOST "tar -czf - /home/www/" > www.tar.gz
Сделать дамп базы и на лету заархивровать его:
mysqldump -uL_USER -pL_PASSWORD L_DATABASE | gzip > database.sql.gz
Скопировать базу данных с удалённого сервера на локальный:
ssh USER@REMOTEHOST "mysqldump -uR_USER -pR_PASSWORD R_DATABASE | gzip -9" | gunzip | mysql -uL_USER -pL_PASSWORD L_DATABASE
Здесь
REMOTEHOST |
адрес удалённого сервера |
USER |
SSH-пользователь на удалённом сервере |
L_USER |
пользователь локальной СУБД |
L_PASSWORD |
пароль пользователя локальной СУБД |
L_DATABASE |
название базы данных в локальной СУБД |
R_USER |
пользователь удалённой СУБД |
R_PASSWORD |
пароль пользователя удалённой СУБД |
R_DATABASE |
название базы данных в удалённой СУБД |
Примеры взяты из собственного опыта и из этой статьи: http://www.karkomaonline.com/index.php/2005/03/basic-tar-usage-gnu-tar/
Еще полезные линуксовые команды
Сменить юзера, например, на root’a:
su - root
Подсчитать размер текущей папки со всеми подпапками
du -sh
du --si --max-depth=1 #отдельно для каждой папки внутри текущей
Подсчитать свободное место на дисках:
df -h
Подсчитать количество свободных Inode’ов.
Бывает место еще есть, а новые файлы создать уже нельзя.
df -i