Auch wer noch keine Linux-Erfahrung hat, kann sich schnell in die Linux-Shell einarbeiten. Hier gibts drei hilfreiche Links:

Windows-User arbeiten häufig Remote auf Linux-Server. Dazu gibts die SSH-Suite:

  • SSH Einführung von Ubuntu.
  • WinSCP: Ein SCP-Client, mit dem man Dateien ähnlich wie mit einem FTP-Client hochladen kann.
  • Putty: Eine SSH-Konsole für Windows.

Und zum Schluss noch etwas für Ubuntu-Admins:

  • Ein Ubuntu-Cheatsheet mit den wichtigsten Administrations-Befehlen wie apt-get, sudo und so weiter..

Coding locally and testing on a remote server, is often troublesome.
For example, forgetting to update the server results in useless tests.
Easiest way is to automatically synchronize the wanted folders.

For Windows I use WinSCP, which allows to easily to keep a remote directory updated.
For Linux, there is a script from Lukas Meyer:

  • livesync
    #!/bin/bash
    #infinite loop, we can end the script hitting ctrl+c
    #define options as array
    declare -a options#set first empty position with new value
    options[${#options[*]}]=”site1″;
    options[${#options[*]}]=”site2″;
    options[${#options[*]}]=”site3″;while [ true ] ; do
    #we create a menu to select which site to update
    select site in “${options[@]}” ; do
    #based on the selection, the syncscript with the proper arguments is called
    case ${site} in ${options[0]})
    syncscript /site1/local/folder server_ip1 username1 password1 /var/www ;
    ;;
    (site2)
    syncscript site2/local/folder server_ip2 username2 password2 site2/remote/folder ;
    ;;
    (site3)
    syncscript site3/local/folder server_ip3 username3 password3 site3/remote/folder ;
    ;;
    esac;
    done
    done
  • syncscript
    #!/usr/bin/expect -f
    #the she bangs line, to find out the path to expect on your system, type "which expect" on the shell
    #we get the command line arguments
    set localfolder [lrange $argv 0 0]
    set server_ip [lrange $argv 1 1]
    set username [lrange $argv 2 2]
    set password [lrange $argv 3 3]
    set remotefolder [lrange $argv 4 4]#this disables the timeout, so our script waits as long as it takes for the transfer
    set timeout -1
    #this calls rsync based on the command line args
    spawn rsync -r -a -v $localfolder $username@$server_ip:$remotefolder –exclude .svn
    #this avoids that if the output is to large, the earlier bytes won’t be fotgotten
    match_max 100000#we’re expecting the password prompt, we use a pattern so it can be anything that contains password: or Password
    expect “*?assword:*”
    #after we get the prompt we send the password
    send — “$password\r”
    #then we send a newline to make sure we get back to the command line
    send — “\r”#wait for the end-of-file in the output
    expect eof