Syntax for Secure Copy (scp)

What is Secure Copy?

scp allows files to be copied to, from, or between different hosts. It uses ssh for data transfer and provides the same authentication and same level of security as ssh.
Examples
Copy the file “foobar.txt” from a remote host to the local host

scp your_username@remotehost.edu:foobar.txt /some/local/directory

Copy the file “foobar.txt” from the local host to a remote host

scp foobar.txt your_username@remotehost.edu:/some/remote/directory

Copy the directory “foo” from the local host to a remote host’s directory “bar”

scp -r foo your_username@remotehost.edu:/some/remote/directory/bar

Copy the file “foobar.txt” from remote host “rh1.edu” to remote host “rh2.edu”

scp your_username@rh1.edu:/some/remote/directory/foobar.txt 
\your_username@rh2.edu:/some/remote/directory/ 

Copying the files “foo.txt” and “bar.txt” from the local host to your home directory on the remote host

scp foo.txt bar.txt your_username@remotehost.edu:~ 

Copy multiple files from the remote host to your current directory on the local host

scp your_username@remotehost.edu:/some/remote/directory/\{a,b,c\} . 
scp your_username@remotehost.edu:~/\{foo.txt,bar.txt\} . 

scp Performance

By default scp uses the Triple-DES cipher to encrypt the data being sent. Using the Blowfish cipher has been shown to increase speed. This can be done by using option -c blowfish in the command line.

scp -c blowfish some_file your_username@remotehost.edu:~ 

It is often suggested that the -C option for compression should also be used to increase speed. The effect of compression, however, will only significantly increase speed if your connection is very slow. Otherwise it may just be adding extra burden to the CPU. An example of using blowfish and compression:

scp -c blowfish -C local_file your_username@remotehost.edu:~ 

How do I get started with Linux?

I have been asked how does one enter the fruitful land of Linux, well, in a nutshell here it is;

1. Download you favorite iso image from Distrowatch.com.
2. Burn the iso file to a CD using your favorite CD burning software.
Remember to burn the .iso using the “Burn image to CD” option or “Burn CD iso image” option. Check your programs help files for details. Note that you can’t just burn it to a data disc as a file as you normally would, you need to burn it as a bootable image.
3. Set up your BIOS to boot from CD. To enter the BIOS, you need to hit a certain key as your computer starts. Find the boot options page and set “boot from CD” to the highest priority.
4. Put the CD in the drive and restart your computer.
5. The CD will boot either into a live or install environment, you choose from there. A live environment will not change anything on your computer, install will install the distro.

Change Default crontab editor CentOS

 
I was working on some sysadmin tasks on a freshly installed server, and I found out the crontab editor was not what I expected it to be. I really like vi (or vim) for command line editing, so I wanted ‘crontab -e’ to use vim instead of something else. To make that happen, I put this into my roots .bashrc file (location: ~/.bashrc):


export EDITOR=vim
export VISUAL=vim

or from the command line


export EDITOR=/usr/bin/vim
export VISUAL=vim

If using CentOS7 – System Default Editor
During login, a number of scripts are run to setup the environment. In CentOS, a file for each subject is used. These are stored in a system profile directory, /etc/profile.d/. There are two environment variables that control which editor to use.

cat < >/etc/profile.d/vim.sh
export VISUAL="vim"
export EDITOR="vim"
EOF

Per User Default
If a user wishes to set the default editor for themselves, it can be, instead, be done in the user’s bash profile.

cat < >~/.bash_profile
export VISUAL="nano"
export EDITOR="nano"
EOF

Activating Changes
Some of the changes made won’t take effect on the current session. Log out and back in to activate the changes.

Testing
Scheduling jobs is one multi-layer process that uses a text editor. Editing the current user’s scheduled jobs is one way to test which editor is the default.
crontab -e
If it is still nano, use ctrl+x to exit. If you are using vim, congratulations! Use “:q” to exit.

I keep forgetting this, so I decided to blog it. Don’t forget to reload the bashrc by doing this:

source ~/.bashrc

If you are in the same situation and want to change the editor to nano, here is the simple command that will change your default OS editor.

export VISUAL=’pico -w’

Now when you run:

crontab -e

Nano will open up. Don’t forget to logout and log back in to see the changes.

Linux Commands

Privileges

sudo command – run command as root
sudo su – open a root shell
sudo su user – open a shell as user
sudo -k – forget sudo passwords
gksudo command – visual sudo dialog (GNOME)
kdesudo command – visual sudo dialog (KDE)
sudo visudo – edit /etc/sudoers
gksudo nautilus – root file manager (GNOME)
kdesudo konqueror – root file manager (KDE)
passwd – change your password

Display

sudo /etc/init.d/gdm restart – restart X (GNOME)
sudo /etc/init.d/kdm restart – restart X (KDE)
(file) /etc/X11/xorg.conf – display configuration
sudo dpkg-reconfigure -phigh xserver-xorg – reset X configuration
Ctrl+Alt+Bksp – restart X display if frozen
Ctrl+Alt+FN – switch to tty N
Ctrl+Alt+F7 – switch back to X display

This command will usually tell you the vendor and model of your graphic card
list
lspci
lspci -v
lspci -v | less

System Services

start service – start job service (Upstart)
stop service – stop job service (Upstart)
status service – check if service is running (Upstart)
/etc/init.d/service start – start service (SysV)
/etc/init.d/service stop – stop service (SysV)
/etc/init.d/service status – check service (SysV)
/etc/init.d/service restart – restart service (SysV)
runlevel – get current runlevel

Package Management

apt-get update – refresh available updates
apt-get upgrade – upgrade all packages
apt-get dist-upgrade – upgrade Ubuntu version
apt-get install pkg – install pkg
apt-get remove pkg – uninstall pkg
apt-get autoremove – remove obsolete packages
apt-get -f install – try to fix broken packages
dpkg –configure -a – try to fix broken packages
dpkg -i pkg.deb – install file pkg.deb
(file) /etc/apt/sources.list – APT repository list

Network

ifconfig – show network information
iwconfig – show wireless information
sudo iwlist scan – scan for wireless networks
sudo /etc/init.d/networking restart – reset network
(file) /etc/network/interfaces – manual configuration
ifup interface – bring interface online
ifdown interface – disable interface

Special Packages

ubuntu-desktop – standard Ubuntu environment
kubuntu-desktop – KDE desktop
xubuntu-desktop – XFCE desktop
ubuntu-minimal – core Ubuntu utilities
ubuntu-standard – standard Ubuntu utilities
ubuntu-restricted-extras – non-free, but useful
kubuntu-restricted-extras – KDE of the above
xubuntu-restricted-extras – XFCE of the above
build-essential – packages used to compile programs
linux-image-generic – latest generic kernel image
linux-headers-generic – latest build headers

Firewall

ufw enable – turn on the firewall
ufw disable – turn off the firewall
ufw default allow – allow all connections by default
ufw default deny – drop all connections by default
ufw status – current status and rules
ufw allow port – allow traffic on port
ufw deny port – block port
ufw deny from ip – block ip adress

Application Names

nautilus – file manager (GNOME)
dolphin – file manager (KDE)
konqueror – web browser/filemanager (KDE)
kate – text editor (KDE)
gedit – text editor (GNOME)

System

Recovery – Type the phrase “REISUB” while
holding down Alt and SysRq (PrintScrn) with
about 1 second between each letter. Your system
will reboot.
lsb_release -a – get Ubuntu version
uname -r – get kernel version
uname -a – get all kernel information

Moving around in the file system

pwd “Print working directory” – show what dir you’re in.
ls -List the contents of a dir.
ls -l -List the contents of a dir and show additional info of the files.
ls -a -List all files, including hidden files.
cd -Change directory.
cd .. -Go to the parent directory.

Manipulating files and directories

cp -Copy a file.
cp -i -Copy a file and ask before overwriting.
cp -r -Copy a directory with its contents.
mv -Move or rename a file.
mv -i -Move or rename a file and ask before overwriting.
rm -Remove a file.
rm -r -Remove a directory with its contents.
rm -i -Ask before removing a file. Good to use with the -r option.
mkdir -Make a directory.
rmdir -Remove an empty directory.

zipping/taring

tar -cvzf mytar.tar.gz sourcefilesordir – creates a new tar file, verbose options on, runs it through gnuzip,f is the filename
tar -xvf mytar.tar.gz destination – extracts a tar file (this example is compressed with gzip), verbosely, f is the filename
gzip fileordir – compresses a file with gzip.
gunzip file.gz – decompresses a file with gzip.
NB gzip only compresses files, it doesn’t collect them into a single file like a tarball does.

More Commands

Arrow Up: scrolls and edits the command history, press enter to activate.
Shift+pgup: scrolls terminal output up
Shift+pgdown: scrolls terminal output down
CTRL-ALT+DEL reboots the system
Shutdown -h now turns the system off
CTRL C kills the current process
CTRL S Stops the tranfer to the terminal
CTRL Q Resumes the transfer to the terminal
CTRL Z Puts the current process in the background.

hostname – Shows the host name of the system you are on
whoami Displays your login name
date – Displays what your machine thinks the date is
who – Shows who is logged into the machine
rwho-a -Shows all users logged into the server network
finger Shows info on chosen user
last – Show the last users logged into the machine
uptime – Shows the systems uptime
PS – Shows the current user processes
PS -A – Shows all process on the system
uname -A -Displays all info on your host.
free -Shows the free memory in KB
df -h -Shows the disk space details
cat/proc/cpuinfo -Shows the CPU information
cat/proc/filesystems -Shows the file system information in use
cat/etc/printcap -Shows if any printers are hooked up
lsmod -Shows the kernel modules loaded

Install from source

download the source code, unzip it and then compile it.

wget filelocation
tar -xzvf filename
cd newfolder
./configure
make
make install

wget http://voxel.dl.sourceforge.net/sourceforge/clamav/clamav-0.95.1.tar.gz
tar xzf clamav-0.95.1.tar.gz
cd clamav-0.95.1
./configure && make && make install

The ‘&&’ runs commands in a sequence one right after the other

So, technically you could install the software like this:

wget http://voxel.dl.sourceforge.net/sourceforge/clamav/clamav-0.95.1.tar.gz && tar xzf clamav-0.95.1.tar.gz && cd clamav-0.95.1 && ./configure && make && make install

If you install this all the time you could just convert it to a script like this:

touch claminstall.sh

vim claminstall.sh

(paste the following into the new file)

#!/bin/bash
wget http://voxel.dl.sourceforge.net/sourceforge/clamav/clamav-0.95.1.tar.gz && tar xzf clamav-0.95.1.tar.gz && chown -R root.root clamav-0.95.1 && cd clamav-0.95.1 && ./configure && make && make install

:wq to save

chmod +x claminstall.sh
then run
#./claminstall.sh

Error from park wrapper: domain.com is already configured

On a cPanel server if you get the error: Error from park wrapper: domain.com is already configured while adding an add-on domain under cPanel. Make sure to remove the domain.com entries from:

/var/named/domain.com.db
/etc/httpd/conf/httpd.conf
/var/cpanel/users/username  remove (dd) related entries to domain,
/etc/userdomains
/etc/localdomains
vim /etc/named.conf   remove (dd) related entries to domain
remove dns entry in whm
run /scripts/updateuserdomains
(Renaming or commenting will not help; you will have to remove the entries completely.)