Category Archives: BSD

FreeBSD GNU Alias list

0
Filed under BSD, WEB-DEV-LOG
Tagged as

FreeBSD by default installs GNU tools with a ‘g’ prefix. In order not to break the built in tools use profile aliases

Read More »

BSD GNU PACKS

0
Filed under BSD, WEB-DEV-LOG
Tagged as

pkg_add -r gtar
pkg_add -r p5-Convert-Recode
cd /usr/ports/devel/binutils/ && make install clean
pkg_add -r gettext
pkg_add -r gmake
pkg_add -r gawk
cd /usr/ports/lang/gcc44/ && make install clean
pkg_add -r findutils
pkg_add -r gnu-watch
pkg_add -r gnuls

postfix commands

0
Filed under BSD, postfix, WEB-DEV-LOG
Tagged as

To see mail queue, enter:
# mailq

To remove all mail from the queue, enter:
# postsuper -d ALL

To remove all mails in the deferred queue, enter:
# postsuper -d ALL deferred

Perl module

0
Filed under BSD
Tagged as

Located in Ports

Perl module Net::Server

/usr/ports/net/p5-Net-Server/ && make install clean

Step by step install Engine X (nginx) and php-fpm in FreeBSD

0
Filed under BSD, phpBB, server side
Tagged as

1. Install nginx

# cd /usr/ports/www/nginx
# make install

choose :

HTTP_MODULE
HTTP_REWRITE_MODULE
HTTP_SSL_MODULE
HTTP_STATUS_MODULE
.....

2. Install php

# cd /usr/ports/lang/php5
# make install

choose :

CLI
CGI
SUHOSIN
IPV6
FASTCGI
PATHINFO
.....

3. Install php-fpm freebsd ports

# wget

save.

edit /usr/local/etc/nginx/nginx.conf

Find this lines in nginx.conf and adjust :

root /usr/local/www/nginx;

location / {
index index.php index.html index.htm;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;
include fastcgi_params;
}

Edit /usr/local/etc/php-fpm.conf

Find these lines :

nobody –>
nobody –>

change nobody into www (or your www user)

www
www

Run the services

# /usr/local/etc/rc.d/php-fpm start
# /usr/local/etc/rc.d/nginx start

5. Testing

# cd /usr/local/www/nginx

# nano info.php

save.

done.

Compatible with Apache’s log file format

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

FROM HERE

PHP mrcypt.so libltdl.so.4 error

0
Filed under BSD
Tagged as

Error after update
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613/mcrypt.so’ – Shared object “libltdl.so.4″ not found, required by “mcrypt.so” in Unknown on line 0

/usr/local/lib/libltdl.so.7
/usr/local/lib/libltdl.so
make a sym link from libltdl.so.4 –> libltdl.so
libltdl.so is a link to libltdl.so.7

ln -s /usr/local/lib/libltdl.so /usr/local/lib/libltdl.so.4



Starting php_fpm.
PHP Warning:  PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613/wddx.so’ – /usr/local/lib/php/20060613/wddx.so: Undefined symbol "ps_globals" in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613/sqlite.so’ – Cannot open "/usr/local/lib/php/20060613/sqlite.so" in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613/mcrypt.so’ – Shared object "libltdl.so.4" not found, required by "mcrypt.so" in Unknown on line 0

The following line has been added to your /usr/local/etc/php/extensions.ini
configuration file to automatically load the installed extension:

extension=sqlite.so

php5-mcrypt-5.2.10
php5-wddx-5.2.10

PHP Warning:  PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613/mcrypt.so’ – Shared object "libltdl.so.4" not found, required by "mcrypt.so" in Unknown on line 0

/usr/local/lib/libltdl.so.7
/usr/local/lib/libltdl.so

Adding IP aliases in FreeBSD

0
Filed under BSD
Tagged as

Example:
Server’s primary IP: 192.168.1.5
Additional IP’s to add: 192.168.1.10, 192.168.1.15, and 192.168.1.20

Boot-time configuration:
Add it to /etc/rc.conf first (so you don’t forget). In this example, we have a Realtek card called rl0:
ifconfig_rl0=”inet 192.168.1.5 netmask 255.255.255.0″
ifconfig_rl0_alias0=”inet 192.168.1.10 netmask 255.255.255.0″
ifconfig_rl0_alias1=”inet 192.168.1.15 netmask 255.255.255.0″
ifconfig_rl0_alias2=”inet 192.168.1.20 netmask 255.255.255.0″

UBER-IMPORTANT NOTE: Start with the number 0 (zero) any time that you make IP alias configurations in /etc/rc.conf.
This is BAD form:

ifconfig_rl0=”inet 192.168.1.5 netmask 255.255.255.0″
ifconfig_rl0_alias1=”inet 192.168.1.10 netmask 255.255.255.0″
ifconfig_rl0_alias2=”inet 192.168.1.15 netmask 255.255.255.0″
ifconfig_rl0_alias3=”inet 192.168.1.20 netmask 255.255.255.0″

If you do it the wrong way (which means starting alias with anything but alias0), only the primary comes up. Keep that in mind.

Bringing up the new IP’s:
You can do things the extraordinarily dangerous way:
# /etc/rc.network restart

Or, you can follow the recommended steps:
# ifconfig rl0 alias 192.168.1.10 netmask 255.255.255.0
# ifconfig rl0 alias 192.168.1.15 netmask 255.255.255.0
# ifconfig rl0 alias 192.168.1.20 netmask 255.255.255.0

Test your work:
Any good system administrator knows to test things once their configured. Make sure to ping your new IP’s from a source on your network and outside your network (if possible/applicable).

Backing up system

0
Filed under BSD, WEB-DEV-LOG
Tagged as

Ok, this is defiantly worth writing… especially for new users

Here i will cover how to backup/restore (to file) FreeBSD using native utilities called dump and restore

note: dump and restore works only for UFS (aka FFS)

Backing up system

To backup system you need to use dump utility

backup:

Code:
$ dump -0Lauf /path/to/backups/ad0s1d.dump /dev/ad0s1d

Backup and compress on the fly

Code:
$ dump -0Lauf - /dev/ad0s1d | bzip2 > /path/to/backups/ad0s1d.dump

-0 – means to backup entire filesystem

-f name – output to file/device, or to stdout if you use -

-a – you need this if you output to file.

-L – needed if you backup mounted filesystem

Restoring system

to restore system restart in single user mode

format filesystem that you want to restore

in backup example, we backed up /dev/ad0s1d, so let’s format it now

Code:
$ newfs -U /dev/ad0s1d

now you need to mount it

Code:
$ mkdir /mnt/target
$ mount /dev/ad0s1d /mnt/target

Let’s imagine you backed up files to usb stick (da0, in root directory)

we need to mount it

Code:
$ mount -t msdosfs /dev/da0 /mnt/usb

Important note: you need space in temp to be able to restore

if you run out of space in tmp, mount some filesystem somewhere and

create symbolic links from /tmp and /var/tmp to that mount point

now to restore from backup you need to cd to dir where you mounted partition that you want to restore

Code:
$ cd /mnt/target

to restore from uncompressed backup

Code:
$ restore -rf /mnt/usb/ad0s1d.dump

to restore from compressed backup

Code:
$ bzcat /mnt/usb/ad0s1d.dump.bz2 | restore -rf -

And that is it

now you can delete file dumpdates (or something like that, check for weird file in target directory, in our case /mnt/target)

now unmount filesystems and reboot

Some notes

you can do incremental backups – backup everything and then backup only files that have changed since (on current backup level) see manual for more info

you can use dump/restore to clone your system to other PC’s

you will probably need to copy Master Boot Record (MBR) as well

to backup MBR:

Code:
$ dd if=/dev/ad0 of=/path/to/mbr.img bs=512 count=1

to restore MBR:

Code:
$ dd if=/path/to/mbr.img of=/dev/ad0 bs=512 count=1

Tips

* I prefer to compress backup, you can guess why

* if you backup /usr you may delete content of ports directory

this will speed up backup process, and reduce size of backup…

It’s good thing because by the time you will restore /usr from backups

/usr/ports will be outdated, and you will need to update them anyway.

And portsnap works very well (fast) in fetching ports

* I prefer to do full backups, that way you can be 100% sure, there won’t

be any confusing situations

* if you want to do backups while using filesystem, make sure you haven’t

deleted .snap directory, on partition that you want to backup

* if you have backed up encrypted drive, you need to somehow encrypt backups

because if someone gets these files, he can restore them to his pc, and read your files at will. (I used this method in FreeBSD + Geli guide, to encrypt drive, but process can be reversed)

Resources

dump(8)

restore(8)

Update 1

Moving system

You can move system from disk to disk on fly with

Code:
$ newfs -U /dev/ad2s1a
$ mount /dev/ad2s1a.... /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a  | restore -rf -

you can do the same using sudo

Code:
$ sudo echo
$ sudo dump -0Lauf - /dev/ad1s1a  | sudo restore -rf -

Update 2

as OpenBSD suggests using gzip instead of bzip2 will seed up compression at cost of larger (very little) archives

so now i suggest using gzip to compress and zcat to uncompress on fly

I’ve tested it, and i was amazed.

No more Bzip2 for me

STOLEN FROM HERE

BACKUP BASICS

.bashrc

0
Filed under BSD
Tagged as

By default the shell for root is csh. Choose the configure option followed by the User Management, where you add users and groups. After creating users, it will ask for the shell for the users. Choose bash (easiest Shell in FreeBSD). Assuming that you have installed bash, now login as the unprivileged user (non-root) and create. bashrc and .bash_profile files in the home directory.

Edit these files to contain the following. In .bashrc put these statements.

# .bashrc – Bourne Again Shell configuration file # for interactive shells. # file permissions: rwxr-xr-x umask 022 BLOCKSIZE=K; export BLOCKSIZE EDITOR=pico; export EDITOR PAGER=/usr/bin/more; export PAGER

# some useful aliases alias h=’fc -l’ alias j=jobs alias m=$PAGER alias ll=’ls -laFo’ alias ls=’ls -la -G’ alias g=’egrep -i’ alias ll=’ls -laFo’ alias ls=’ls -la -G’ alias g=’egrep -i’

# set prompt PS1=”u@ w $> “

Now for .bash_profile put the following statements:

# .bash_profile – Bourne Again Shell configuration file # for login shells. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/bin: # file permissions: rwxr-xr-x umask 022 BLOCKSIZE=K; export BLOCKSIZE EDITOR=pico; export EDITOR PAGER=/usr/bin/more; export PAGER

# set ENV to a file invoked each time bash is started # for interactive use. ENV=$HOME/.shrc; export ENV # some useful aliases alias h=’fc -l’ alias j=jobs alias m=$PAGER alias ll=’ls -laFo’ alias ls=’ls -la -G’ alias g=’egrep -i’

# set prompt PS1=”u@w $> “

The above line sets the prompt like this: addy@ ~ $> When you change directory to the following cd /usr/bin, it looks like: addy@ /usr/bin $>

You can also make changes in these files to alter the editor option, as people have their own favourite editors like vi, emacs, pico etc. Also add the following to your .login file in your home directory exec /bin/bash. Here my bash is symbolically linked to /usr/local/bin/bash. Login after that to get bash running .

Now whenever a user (non-root ) wants to use a system administrator command or perform tasks that can be done only by root, he has to `su to root’ using the `su’ command. In order to be a super user (root), the user must be member of group wheel. Normally this is done when you add a user or put the username at the end of the line containing wheel :*: 0: root in /etc/group.

For eg. if user addy is a member of the group wheel. wheel:*:0:root,addy So addy is able to `su to root’. Now is the time for accessing floppy disks.

FROM HERE

.bashrc

0
Filed under BSD
Tagged as

# .bashrc – Bourne Again SHell configuration file for interactive shells.

# file permissions: rwxr-xr-x
umask 022

#BlockSize in K. Environment variable.

BLOCKSIZE=K; export BLOCKSIZE

#Default editor. In this case its VIM, but you don’t have it yet installed. EDITOR=/usr/local/bin/vim; export EDITOR

#The pager. Again environment variable

PAGER=/usr/bin/less; export PAGER

# some useful aliases

#User friendly alias for updatedb in Linux systems.
alias updatedb=’/usr/libexec/locate.updatedb’

#Shutdown alias.
alias down=’shutdown -h now’

#Alias to show the recent history commands.
alias h=’fc -l’

#Alias to show the jobs.
alias j=jobs

#Alias to pager.
alias m=$PAGER

#Egrep alias.
alias g=’egrep -i’

#renew alias which will read the .bashrc and executes it

alias renew=’source ~/.bashrc’

#Colorful ls alias. Procuses nice colors :)
alias ls=’/bin/ls -aFG’

#Ailas to disksize i.e df command.
alias disksize=’df -kh’

#Same for the current dir.
alias dirsize=’du -h -d 1 .’

#alias to free command in Linux
alias free=’top -d1 | head -5 | tail -2′

#Display the path variable.
alias showpath=’echo $PATH | tr -s ”:” ”\012”’

#Counts the files in the directory i.e ls -la | wc -l
alias llc=’echo Total number of files `ll | wc -l` in `pwd`’

#Alias to vim instead of the default vi.
alias vi=vim

# set prompt. A very nice colors :)
PS1=”[�33[1;30m][[�33[1;34m]u[�33[1;30m]@[�33[0;35m]h[�33[1;30m]] [�33[0;37m]W [�33[1;30m]$[�33[0m] ”

#Three functions to ease your admin tasks. Found them out in the internet. Credits – unknown.

function findfile() { find . -type f -iname ‘*’$*’*’ -ls ;}
function findtext() { find . -exec egrep $* {} /dev/null ; ; }
function finddir () { find . -type d -iname ‘*’$*’*’ -ls ; }